angular-bugsnag
Angular wrapper for Bugsnag.
Specifically, angular-bugsnag
does the following...
- Provides
bugsnagProvider
to configure thebugsnag
client and also to injectbugsnag
as needed - Overrides the default angular
$exceptionHandler
to send uncaught exceptions to Bugsnag
Installation
Download angular-bugsnag.js or install with bower.
$ bower install angular-bugsnag --save
Load the angular-bugsnag
module into your app...
angular.module('app', ['angular-bugsnag'])
bugsnagProvider
configuration
The bugsnagProvider
has pretty much the same configuration options as bugsnag
.
The main difference is that bugsnagProvider
uses chainable setter methods instead of properties.
noConflict
Call noConflict()
before other settings to remove bugsnag
from window
.
apiKey
releaseStage
notifyReleaseStages
appVersion
user
projectRoot
endpoint
metaData
autoNotify
beforeNotify
Takes an angular providerFunction
or service name that should return a beforeNotify callback used by bugsnag
.
Examples
Log notifications with $log
:
bugsnagProvider
.beforeNotify(['$log', function ($log) {
return function (error, metaData) {
$log.debug(error.name);
return true;
};
}])
beforeNotify
can also take a service name defined elsewhere:
module
.factory('bugsnagNotificationInterceptor', ['$log', function ($log) {
return function (error, metaData) {
$log.debug(error.name);
return true;
};
}])
bugsnagProvider
.beforeNotify('bugsnagNotificationInterceptor')
Example Usage
angular.module('demo-app', ['angular-bugsnag'])
.config(['bugsnagProvider', function (bugsnagProvider) {
bugsnagProvider
.noConflict()
.apiKey('[replace me]')
.releaseStage('development')
.user({
id: 123,
name: 'Jon Doe',
email: '[email protected]'
})
.appVersion('0.1.0')
.beforeNotify(['$log', function ($log) {
return function (error, metaData) {
$log.debug(error.name);
return true;
};
}]);
}])
.controller('MainCtrl', ['$rootScope', 'bugsnag', function ($scope, bugsnag) {
this.throwError = function (err) {
throw err;
};
this.notifyError = function (err) {
bugsnag.notify(err);
};
this.brokenUndefined = function () {
$scope.foo.bar();
};
}]);
Contributing
PR's are welcome. Just make sure the tests pass.
$ make
$ gulp test
Additionally, use gulp serve
or gulp watch
to run the test app. Just insert a Bugsnag API Key here. Remember, don't commit your key!
License
MIT