@igo2/core
Version:
43 lines (34 loc) • 1.98 kB
TypeScript
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 };