UNPKG

@igo2/core

Version:
43 lines (34 loc) 1.98 kB
import { BrowserOptions, ErrorHandlerOptions, browserTracingIntegration } from '@sentry/angular'; import { Integration } from '@sentry/core'; import { Provider, EnvironmentProviders, InjectionToken } from '@angular/core'; import { BaseUser } from '@igo2/core/user'; type MonitoringProvider = 'sentry'; interface MonitoringOptions { provider: MonitoringProvider; /** Add the user info(id, name, email) to the event request */ identifyUser?: boolean; logErrors?: boolean; } type SentryMonitoringOptions = Omit<BrowserOptions, 'integrations'> & MonitoringOptions & { provider: 'sentry'; errorHandlerOptions?: ErrorHandlerOptions; integrations?: Integration[]; }; declare const provideSentryMonitoring: (options: SentryMonitoringOptions, integrations?: SentryIntegrationFactory<SentryIntegrationKind>[]) => (Provider | EnvironmentProviders)[]; interface SentryIntegration<KindT extends SentryIntegrationKind> { kind: KindT; providers: (Provider | EnvironmentProviders)[]; } type SentryIntegrationFactory<KindT extends SentryIntegrationKind> = (sentryOptions: SentryMonitoringOptions) => SentryIntegration<KindT>; declare enum SentryIntegrationKind { Tracing = 0, Replay = 1 } declare function withTracingIntegration(options: Parameters<typeof browserTracingIntegration>[0]): SentryIntegrationFactory<SentryIntegrationKind.Tracing>; declare const identifySentryUser: (user: BaseUser | null) => void; type AnyMonitoringOptions = SentryMonitoringOptions; declare const MONITORING_OPTIONS: InjectionToken<MonitoringOptions>; declare const MOCK_SENTRY_OPTIONS: SentryMonitoringOptions; declare const MOCK_MONITORING_OPTIONS: AnyMonitoringOptions; export { MOCK_MONITORING_OPTIONS, MOCK_SENTRY_OPTIONS, MONITORING_OPTIONS, SentryIntegrationKind, identifySentryUser, provideSentryMonitoring, withTracingIntegration }; export type { AnyMonitoringOptions, MonitoringOptions, MonitoringProvider, SentryIntegration, SentryMonitoringOptions };