@nglogger/raven
Version:
Raven (sentry.io) transport for @nglogger
93 lines • 2.72 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
;
import { Inject, Injectable, InjectionToken } from '@angular/core';
import * as Raven from 'raven-js';
/* Constants */
export var /** @type {?} */ RAVEN = new InjectionToken('raven');
var RavenTransport = /** @class */ (function () {
function RavenTransport(raven) {
this.raven = raven;
}
/**
* @param {?} level
* @param {?} scope
* @param {?} subject
* @param {?=} meta
* @return {?}
*/
RavenTransport.prototype.log = /**
* @param {?} level
* @param {?} scope
* @param {?} subject
* @param {?=} meta
* @return {?}
*/
function (level, scope, subject, meta) {
var /** @type {?} */ isError = meta instanceof Error && meta.stack !== undefined;
var /** @type {?} */ options = {
logger: 'nglogger',
level: this._getRavenLevel(level),
tags: {
scope: scope
}
};
if (isError) {
options.extra = {
subject: subject
};
}
else {
options.extra = meta;
}
if (isError) {
this.raven.captureException(/** @type {?} */ (meta), options);
}
else {
this.raven.captureMessage(subject, options);
}
};
/**
* @param {?} level
* @return {?}
*/
RavenTransport.prototype._getRavenLevel = /**
* @param {?} level
* @return {?}
*/
function (level) {
switch (level) {
case 'fatal': return 'critical';
case 'error': return 'error';
case 'warn': return 'warning';
case 'info': return 'info';
case 'verbose': return 'log';
case 'trace': return 'log';
case 'debug': return 'log';
default: return 'log';
}
};
RavenTransport.decorators = [
{ type: Injectable },
];
/** @nocollapse */
RavenTransport.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [RAVEN,] },] },
]; };
return RavenTransport;
}());
export { RavenTransport };
function RavenTransport_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
RavenTransport.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
RavenTransport.ctorParameters;
/** @type {?} */
RavenTransport.prototype.raven;
}
//# sourceMappingURL=raven-transport.service.js.map