forked from Wavyzz/dolibarr
New Added client-side Sentry logging
Using Raven.js allows logging client-side javascript errors to the configured Sentry server.
This commit is contained in:
36
htdocs/includes/raven-js/plugins/angular.js
vendored
Normal file
36
htdocs/includes/raven-js/plugins/angular.js
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Angular.js plugin
|
||||
*
|
||||
* Provides an $exceptionHandler for Angular.js
|
||||
*/
|
||||
;(function(Raven, angular) {
|
||||
'use strict';
|
||||
|
||||
// quit if angular isn't on the page
|
||||
if (!angular) {
|
||||
return;
|
||||
}
|
||||
|
||||
function ngRavenProvider($provide) {
|
||||
$provide.decorator('$exceptionHandler', [
|
||||
'RavenConfig', '$delegate',
|
||||
ngRavenExceptionHandler
|
||||
]);
|
||||
}
|
||||
|
||||
function ngRavenExceptionHandler(RavenConfig, $delegate) {
|
||||
if (!RavenConfig)
|
||||
throw new Error('RavenConfig must be set before using this');
|
||||
|
||||
Raven.config(RavenConfig.dsn, RavenConfig.config).install();
|
||||
return function angularExceptionHandler(ex, cause) {
|
||||
$delegate(ex, cause);
|
||||
Raven.captureException(ex, {extra: {cause: cause}});
|
||||
};
|
||||
}
|
||||
|
||||
angular.module('ngRaven', [])
|
||||
.config(['$provide', ngRavenProvider])
|
||||
.value('Raven', Raven);
|
||||
|
||||
})(window.Raven, window.angular);
|
||||
Reference in New Issue
Block a user