@igo2/core
Version:
31 lines • 4.14 kB
JavaScript
import { APP_INITIALIZER, ErrorHandler } from '@angular/core';
import { Router } from '@angular/router';
import { TraceService } from '@sentry/angular';
import { createSentryErrorHandler, initSentry } from './sentry';
import { isTracingEnabled } from './sentry.utils';
export const provideSentryMonitoring = (options) => {
const isEnabled = options.enabled !== undefined ? options.enabled : true;
if (!isEnabled) {
return [];
}
initSentry(options);
const tracingEnabled = isTracingEnabled(options);
return [
{
provide: ErrorHandler,
useFactory: () => createSentryErrorHandler(options)
},
tracingEnabled && {
provide: TraceService,
deps: [Router]
},
// Force instantiate TraceService to avoid require it in any constructor.
tracingEnabled && {
provide: APP_INITIALIZER,
useFactory: () => () => void 1,
deps: [TraceService],
multi: true
}
].filter(Boolean);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBRWYsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxPQUFnQyxFQUNXLEVBQUU7SUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEIsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztTQUNwRDtRQUNELGNBQWMsSUFBSTtZQUNoQixPQUFPLEVBQUUsWUFBWTtZQUNyQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDZjtRQUNELHlFQUF5RTtRQUN6RSxjQUFjLElBQUk7WUFDaEIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQUF9JTklUSUFMSVpFUixcbiAgQ29uc3RydWN0b3JQcm92aWRlcixcbiAgRXJyb3JIYW5kbGVyLFxuICBGYWN0b3J5UHJvdmlkZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBUcmFjZVNlcnZpY2UgfSBmcm9tICdAc2VudHJ5L2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBjcmVhdGVTZW50cnlFcnJvckhhbmRsZXIsIGluaXRTZW50cnkgfSBmcm9tICcuL3NlbnRyeSc7XG5pbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4vc2VudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBpc1RyYWNpbmdFbmFibGVkIH0gZnJvbSAnLi9zZW50cnkudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVNlbnRyeU1vbml0b3JpbmcgPSAoXG4gIG9wdGlvbnM6IFNlbnRyeU1vbml0b3JpbmdPcHRpb25zXG4pOiAoRmFjdG9yeVByb3ZpZGVyIHwgQ29uc3RydWN0b3JQcm92aWRlcilbXSA9PiB7XG4gIGNvbnN0IGlzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlZCAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5lbmFibGVkIDogdHJ1ZTtcbiAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpbml0U2VudHJ5KG9wdGlvbnMpO1xuXG4gIGNvbnN0IHRyYWNpbmdFbmFibGVkID0gaXNUcmFjaW5nRW5hYmxlZChvcHRpb25zKTtcblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNyZWF0ZVNlbnRyeUVycm9ySGFuZGxlcihvcHRpb25zKVxuICAgIH0sXG4gICAgdHJhY2luZ0VuYWJsZWQgJiYge1xuICAgICAgcHJvdmlkZTogVHJhY2VTZXJ2aWNlLFxuICAgICAgZGVwczogW1JvdXRlcl1cbiAgICB9LFxuICAgIC8vIEZvcmNlIGluc3RhbnRpYXRlIFRyYWNlU2VydmljZSB0byBhdm9pZCByZXF1aXJlIGl0IGluIGFueSBjb25zdHJ1Y3Rvci5cbiAgICB0cmFjaW5nRW5hYmxlZCAmJiB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiB2b2lkIDEsXG4gICAgICBkZXBzOiBbVHJhY2VTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLmZpbHRlcihCb29sZWFuKTtcbn07XG4iXX0=