angular-error-shipper
Version:
An error interceptor and shipper for AngularJS
1 lines • 1.1 kB
JavaScript
;angular.module("ngErrorShipper",[]).provider("$exceptionHandler",{$get:["errorLogService",function(a){return a}]}).factory("errorLogService",["$log","shippers","buildShipperPayload",function(a,b,c){return function(d,e){a.error.apply(a,arguments),b.ship(c(d,e))}}]).factory("buildShipperPayload",["$window",function(a){return function(b,c){return{exception:b.toString(),stack:b.stack.toString(),location:angular.toJson(a.location),cause:c||null,performance:angular.toJson(window.performance)}}}]).service("shippers",function(){function a(a,b){b?d.unshift(a):d.push(a)}function b(){return d}function c(a){d.forEach(function(b){"function"==typeof b&&b(a)})}var d=[];return{set:a,get:b,ship:c}}).service("errorShipper",["$http","shippers",function(a,b){function c(a){b.set(a)}function d(c){if(f=angular.extend(g,c),!f.url)throw new Error("You must specify a URL when using default errorShipper");b.set(function(b){f.data=angular.extend(b,f.data),a(f).success(f.onSuccess||{}).error(f.onError||{})},!0)}function e(){return f}var f,g={method:"POST"};return{use:c,configure:d,_options:e}}]);