Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 1x 1x 3x 1x 1x 1x 5x | import { EnvironmentProviders, ErrorHandler, inject, Injectable, provideAppInitializer, Provider } from '@angular/core'; import { Router } from '@angular/router'; import { IWebClientAppEnvironment, TSentryEnvironment } from '@app/client-util'; import { BrowserTracing, createErrorHandler, init, routingInstrumentation, TraceService } from '@sentry/angular-ivy'; /** * Sentry is disabled for the environments defined in this array. */ const sentryDisabledEnvironments: TSentryEnvironment[] = ['unit-testing', 'development']; /** * Initializes Sentry. * @param env web client environment * @param release release identifier */ export const initializeSentry = (env: IWebClientAppEnvironment, release: string) => { if (!sentryDisabledEnvironments.includes(env.sentry.env)) { init({ environment: env.sentry.env, release, dsn: env.sentry.dsn, integrations: [ /** * Registers and configures the Tracing integration, * which automatically instruments your application to monitor its * performance, including custom Angular routing instrumentation. */ new BrowserTracing({ tracingOrigins: ['localhost', /^\//, ...env.sentry.tracingOrigins], routingInstrumentation: routingInstrumentation, }), ], /** * Set tracesSampleRate to 1.0 to capture 100% * of transactions for performance monitoring. * We recommend adjusting this value in production. */ tracesSampleRate: env.sentry.tracesSampleRate, }); } }; /** * Sentry providers configuration. * @param env web client environment * @returns Sentry providers */ export const sentryProviders: (env: IWebClientAppEnvironment) => Array<Provider | EnvironmentProviders> = env => { return sentryDisabledEnvironments.includes(env.sentry.env) ? [] : [ { provide: ErrorHandler, useValue: createErrorHandler({ showDialog: true, }), }, { provide: TraceService, deps: [Router], }, provideAppInitializer(() => { inject(TraceService); }), ]; }; /** * The Sentry tracing service. */ @Injectable({ providedIn: 'root', }) export class AppSentryService { public readonly trace = inject(TraceService); } |