Angular wrapper for Bugsnag.
Specifically, angular-bugsnag does the following...
- Provides
bugsnagProviderto configure thebugsnagclient and also to injectbugsnagas needed - Overrides the default angular
$exceptionHandlerto send uncaught exceptions to Bugsnag
Download angular-bugsnag.js or install with bower.
$ bower install angular-bugsnag --saveLoad the angular-bugsnag module into your app...
angular.module('app', ['angular-bugsnag'])The bugsnagProvider has pretty much the same configuration options as bugsnag.
The main difference is that bugsnagProvider uses chainable setter methods instead of properties.
Call noConflict() before other settings to remove bugsnag from window.
Takes an angular providerFunction or service name that should return a beforeNotify callback used by bugsnag.
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')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();
};
}]);PR's are welcome. Just make sure the tests pass.
$ make
$ gulp testAdditionally, use gulp serve or gulp watch to run the test app. Just insert a Bugsnag API Key here. Remember, don't commit your key!
MIT
