mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
75476a9136
Webpack 4, react-error-overlay, react-loadable (major)
28 lines
670 B
JavaScript
28 lines
670 B
JavaScript
// @flow
|
|
const filenameRE = /\(([^)]+\.js):(\d+):(\d+)\)$/
|
|
|
|
export function rewriteStacktrace (e: any, distDir: string): void {
|
|
if (!e || typeof e.stack !== 'string') {
|
|
return
|
|
}
|
|
|
|
const lines = e.stack.split('\n')
|
|
|
|
const result = lines.map((line) => {
|
|
return rewriteTraceLine(line, distDir)
|
|
})
|
|
|
|
e.stack = result.join('\n')
|
|
}
|
|
|
|
function rewriteTraceLine (trace: string, distDir: string): string {
|
|
const m = trace.match(filenameRE)
|
|
if (m == null) {
|
|
return trace
|
|
}
|
|
const filename = m[1]
|
|
const filenameLink = filename.replace(distDir, '/_next/development').replace(/\\/g, '/')
|
|
trace = trace.replace(filename, filenameLink)
|
|
return trace
|
|
}
|