@sentry/nextjs
Version:
Official Sentry SDK for Next.js
27 lines (21 loc) • 1.14 kB
JavaScript
import { defineIntegration, escapeStringForRegex, rewriteFramesIntegration } from '@sentry/core';
import * as path from 'path';
const distDirRewriteFramesIntegration = defineIntegration(({ distDirName }) => {
// nextjs always puts the build directory at the project root level, which is also where you run `next start` from, so
// we can read in the project directory from the currently running process
const distDirAbsPath = path.resolve(distDirName).replace(/(\/|\\)$/, ''); // We strip trailing slashes because "app:///_next" also doesn't have one
// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- user input is escaped
const SOURCEMAP_FILENAME_REGEX = new RegExp(escapeStringForRegex(distDirAbsPath));
const rewriteFramesInstance = rewriteFramesIntegration({
iteratee: frame => {
frame.filename = frame.filename?.replace(SOURCEMAP_FILENAME_REGEX, 'app:///_next');
return frame;
},
});
return {
...rewriteFramesInstance,
name: 'DistDirRewriteFrames',
};
});
export { distDirRewriteFramesIntegration };
//# sourceMappingURL=distDirRewriteFramesIntegration.js.map