angular-bugsnag v0.2.1
angular-bugsnag
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
Installation
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'])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: 'jon.doe@gmail.com'
})
.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 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!
License
MIT
