mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-27 21:01:03 +08:00
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
// This file configures the initialization of Sentry on the client.
|
|
// The config you add here will be used whenever a users loads a page in their browser.
|
|
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
|
|
|
|
import * as Sentry from "@sentry/nextjs";
|
|
import { nicify } from "@stackframe/stack-shared/dist/utils/strings";
|
|
|
|
Sentry.init({
|
|
dsn: "https://6e618f142965a385267f1030793e0400@o4507084192022528.ingest.us.sentry.io/4507084192219136",
|
|
|
|
// Adjust this value in production, or use tracesSampler for greater control
|
|
tracesSampleRate: 1,
|
|
|
|
// Setting this option to true will print useful information to the console while you're setting up Sentry.
|
|
debug: false,
|
|
|
|
enabled: process.env.NODE_ENV !== "development" && !process.env.CI,
|
|
|
|
replaysOnErrorSampleRate: 1.0,
|
|
|
|
// This sets the sample rate to be 10%. You may want this to be 100% while
|
|
// in development and sample at a lower rate in production
|
|
replaysSessionSampleRate: 1.0,
|
|
|
|
// You can remove this option if you're not planning to use the Sentry Session Replay feature:
|
|
integrations: [
|
|
Sentry.replayIntegration({
|
|
// Additional Replay configuration goes in here, for example:
|
|
maskAllText: false,
|
|
blockAllMedia: false,
|
|
}),
|
|
],
|
|
|
|
// Add exception metadata to the event
|
|
beforeSend(event, hint) {
|
|
const error = hint.originalException;
|
|
let nicified;
|
|
try {
|
|
nicified = nicify(error);
|
|
} catch (e) {
|
|
nicified = `Error occurred during nicification: ${e}`;
|
|
}
|
|
if (error instanceof Error) {
|
|
event.extra = {
|
|
...event.extra,
|
|
cause: error.cause,
|
|
errorProps: {
|
|
...error,
|
|
},
|
|
nicifiedError: nicify(error),
|
|
};
|
|
}
|
|
return event;
|
|
},
|
|
});
|