Files
fotospiel-app/resources/js/lib/sentry.ts
2025-12-19 10:13:30 +01:00

42 lines
981 B
TypeScript

import * as Sentry from '@sentry/react';
type AppSurface = 'guest' | 'admin' | 'inertia';
const defaultTracesSampleRate = 0.05;
const parseSampleRate = (value: string | undefined): number => {
const parsed = Number.parseFloat(value ?? '');
if (Number.isNaN(parsed) || parsed < 0) {
return defaultTracesSampleRate;
}
return parsed;
};
export const initSentry = (app: AppSurface): void => {
const dsn = import.meta.env.VITE_SENTRY_DSN;
if (! dsn) {
return;
}
Sentry.init({
dsn,
environment: import.meta.env.VITE_SENTRY_ENV ?? import.meta.env.MODE,
release: import.meta.env.VITE_SENTRY_RELEASE,
tracesSampleRate: parseSampleRate(import.meta.env.VITE_SENTRY_TRACES_SAMPLE_RATE),
beforeSend(event) {
event.tags = {
...event.tags,
app,
};
return event;
},
normalizeDepth: 6,
});
};
export { Sentry };