Skip to content

Commit 065d990

Browse files
committed
strip filename
1 parent dcac79e commit 065d990

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

packages/nextjs/src/common/devErrorSymbolicationEventProcessor.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ export async function devErrorSymbolicationEventProcessor(event: Event, hint: Ev
8787
context_line: contextLine,
8888
post_context: postContextLines,
8989
function: resolvedFrame.originalStackFrame.methodName,
90-
filename: resolvedFrame.originalStackFrame.file || undefined,
90+
filename: resolvedFrame.originalStackFrame.file
91+
? stripWebpackInternalPrefix(resolvedFrame.originalStackFrame.file)
92+
: undefined,
9193
lineno:
9294
resolvedFrame.originalStackFrame.lineNumber || resolvedFrame.originalStackFrame.line1 || undefined,
9395
colno: resolvedFrame.originalStackFrame.column || resolvedFrame.originalStackFrame.column1 || undefined,
@@ -285,3 +287,21 @@ function parseOriginalCodeFrame(codeFrame: string): {
285287
postContextLines,
286288
};
287289
}
290+
291+
/**
292+
* Strips webpack-internal prefixes from filenames to clean up stack traces.
293+
*
294+
* Examples:
295+
* - "webpack-internal:///./components/file.tsx" -> "./components/file.tsx"
296+
* - "webpack-internal:///(app-pages-browser)/./components/file.tsx" -> "./components/file.tsx"
297+
*/
298+
function stripWebpackInternalPrefix(filename: string): string | undefined {
299+
if (!filename) {
300+
return filename;
301+
}
302+
303+
const webpackInternalRegex = /^webpack-internal:(?:\/+)?(?:\([^)]*\)\/)?(.+)$/;
304+
const match = filename.match(webpackInternalRegex);
305+
306+
return match ? match[1] : filename;
307+
}

0 commit comments

Comments
 (0)