123456789101112131415161718192021222324252627282930313233 |
- import * as Sentry from '@sentry/node'
- import { RewriteFrames } from '@sentry/integrations'
-
- export function init(): void {
- if (!process.env.NEXT_PUBLIC_SENTRY_DSN) return
-
- const integrations = []
-
- if (process.env.NEXT_IS_SERVER === 'true' && process.env.NEXT_PUBLIC_SENTRY_SERVER_ROOT_DIR) {
- // For Node.js, rewrite Error.stack to use relative paths, so that source
- // maps starting with ~/_next map to files in Error.stack with path
- // app:///_next
- integrations.push(
- new RewriteFrames({
- iteratee: (frame) => {
- frame.filename = frame.filename.replace(
- process.env.NEXT_PUBLIC_SENTRY_SERVER_ROOT_DIR,
- 'app:///'
- )
- frame.filename = frame.filename.replace('.next', '_next')
- return frame
- },
- })
- )
- }
-
- Sentry.init({
- enabled: process.env.NODE_ENV === 'production',
- integrations,
- dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
- release: process.env.NEXT_PUBLIC_COMMIT_SHA,
- })
- }
|