Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit 199a2ec

Browse files
authored
fix(fsProvider): return frame if source-map file not found (#8)
1 parent 7470527 commit 199a2ec

3 files changed

Lines changed: 39 additions & 5 deletions

File tree

src/stackRetracer.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,17 @@ export class StackRetracer {
2323
return frame
2424
}
2525

26-
const sourceMap = await this.sourceMapProvider(frame.fileName)
26+
try {
27+
const sourceMap = await this.sourceMapProvider(frame.fileName)
2728

28-
if (!sourceMap) {
29+
if (!sourceMap) {
30+
return frame
31+
}
32+
33+
return this.retraceFrame(frame, sourceMap)
34+
} catch (e) {
2935
return frame
3036
}
31-
32-
return this.retraceFrame(frame, sourceMap)
3337
})
3438
)
3539
}

test/errorRetracer.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,21 @@ test("retraces stack trace in Error object", async () => {
1818
"fulfilled (webpack:///Users/mckomo/Projects/revenue-desk/node_modules/tslib/tslib.es6.js:68:41)"
1919
)
2020
})
21+
22+
test("should not throw if file not found", async () => {
23+
const error = new ErrorWithStack(ErrorStacks.webpackProduction2)
24+
25+
const {stack} = await errorRetracer.retrace(error)
26+
27+
expect(stack).toEqual(`pb (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:12:454)
28+
n (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:13:221)
29+
Th (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:37:309)
30+
tf (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:37:377)
31+
Object.findDOMNode (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:217:310)
32+
t.value (https://mui-qa.fyber.com/vendors~nfp.52a56cb27e6de6d78d1c.js:1:88992)
33+
qi (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:130:296)
34+
ui (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:133:320)
35+
<unknown> (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:158:377)
36+
unstable_runWithPriority (https://unpkg.com/react@16.8.6/umd/react.production.min.js:27:36)`
37+
)
38+
})

test/fixtures/errorStacks.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,17 @@ export const ErrorStacks = {
1919
" at e.<anonymous> (https://production.com/nfp.a77bec74f4ae50f3537e.js:1:87798)\n" +
2020
" at https://production.com/vendors~nfp.dd54f49f907bdba83cf2.js:1:88129\n" +
2121
" at Object.next (https://production.com/vendors~nfp.dd54f49f907bdba83cf2.js:1:88234)\n" +
22-
" at n (https://production.com/vendors~nfp.dd54f49f907bdba83cf2.js:1:87005)"
22+
" at n (https://production.com/vendors~nfp.dd54f49f907bdba83cf2.js:1:87005)",
23+
24+
webpackProduction2: `Invariant Violation: Minified React error #188; visit https://reactjs.org/docs/error-decoder.html?invariant=188 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
25+
at pb (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:12:454)
26+
at n (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:13:221)
27+
at Th (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:37:309)
28+
at tf (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:37:377)
29+
at Object.findDOMNode (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:217:310)
30+
at t.value (https://mui-qa.fyber.com/vendors~nfp.52a56cb27e6de6d78d1c.js:1:88992)
31+
at qi (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:130:296)
32+
at ui (https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:133:320)
33+
at https://unpkg.com/react-dom@16.8.6/umd/react-dom.production.min.js:158:377
34+
at unstable_runWithPriority (https://unpkg.com/react@16.8.6/umd/react.production.min.js:27:36)`
2335
}

0 commit comments

Comments
 (0)