🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

angular-errorz

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-errorz

An error handling service for AngularJS

2.1.0
latest
Source
npm
Version published
Weekly downloads
3
200%
Maintainers
1
Weekly downloads
 
Created
Source

Angular-Errorz

GitHub version

An error handling service for AngularJS

Features

  • Unique handling of each HTTP status code
  • Batch handling of HTTP status codes
  • Prevents handled errors from bubbling up (no unexpected errors in dependencies -- like promises)
  • Configurable flood control to prevent spamming of duplicate errors

Quick Start

AngularJS ~1.2 is required

Installation

npm install angular-errorz

Add module reference

var exampleApp = angular.module("exampleApp", ["ttErrorz"]);

Configuration

Configure the service within your app module's run block:

exampleApp.run(["errorz", function (errorz) {
    errorz.addHandler(/* see Examples */);
}]);

Functions

addHandler(status, handler)

Add a handler for an HTTP status code

Arguments

ParamTypeDetails
statusNumberThe HTTP status code to handle.
handlerFunctionThe function the service should call when handling the specified HTTP status code.

Returns

errorz: for chaining.

addBatch(statuses, handler)

Add a handler for multiple HTTP status codes

Arguments

NameTypeDetails
statusesArrayThe HTTP status codes to handle.
handlerFunctionThe function the service should call when handling the specified HTTP status codes.

Returns

errorz: for chaining.

handled(status)

Determines whether the service has been configured to handle the specified status

Arguments

ParamTypeDetails
statusNumberThe HTTP status code to check.

Returns

Boolean: true when the service contains a handler for the specified status.

statusCodes()

Gets the list of HTTP status codes the service has been configured to handle.

Arguments

None

Returns

Array[String]: an array of HTTP status codes.

Properties

NameTypeDetails
floodControl.thresholdNumberThe number of milliseconds the service will wait before calling handlers for identical HTTP status codes. Setting this to undefined, null, or 0 will disable Flood Control. Defaults to 1000.

Examples

1. Handle server error 500

Capture HTTP status code 500, and output the error to the browser's console.

errorz.addHandler(500, function (rejection) {
    console.error("Please try again.", "Server Error 500");
});

2. Handle multiple server errors

Capture HTTP status codes: -1, 0, 500, using the same handler for all of them. Outputting the error to the browser's console.

errorz.addBatch([-1, 0, 500], function (rejection) {
    console.error("Please try again.", "Server Error " + rejection.status);
});

You can do the same thing with multiple calls to addHandler instead of addBatch. Impractical, for this use case, but here it is for demonstrative purposes:

errorz.addHandler(-1, handler)
    .addHandler(0, handler)
    .addHandler(500, handler);

var handler = function (rejection) {
    console.error("Please try again.", "Server Error " + rejection.status);
};

3. Handle server errors conditionally

Similar to Example 2, but handle HTTP status code 404 conditionally within the same handler.

errorz.addBatch([-1, 0, 404, 500], function (rejection) {
    rejection.status === 404 && console.warn(rejection.config.url, "404 Not Found")
        || console.error("Please try again.", "Server Error " + rejection.status);
});

4. Add a handler after the fact

Effectively the same end result as Example 3, just spread out.

errorz.addBatch([-1, 0, 500], function (rejection) {
    console.error("Please try again.", "Server Error " + rejection.status);
});

Then, elsewhere/elsewhile...

errorz.addHandler(404, function(rejection) {
    console.warn(rejection.config.url, "404 Not Found");
});

5. Handle server errors (with toast)

Same as Example 3, but notify the user with toastr instead of logging to the console. We also enable flood control with a threshold equal to toastr's timeout, to prevent spamming the user with toast when there is a flood of identical errors.

errorz.addBatch([-1, 0, 404, 500], function (rejection) {
    rejection.status === 404 && toastr.warning(rejection.config.url, "404 Not Found")
        || toastr.error("Please try again.", "Server Error " + rejection.status);
}).floodControl.threshold = +toastr.options.timeOut;

Keywords

angular

FAQs

Package last updated on 24 Jan 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts