UNPKG

934 BJavaScriptView Raw
1import * as ErrorOverlay from "react-error-overlay"
2
3// Report runtime errors
4ErrorOverlay.startReportingRuntimeErrors({
5 onError: () => {},
6 filename: `/commons.js`,
7})
8ErrorOverlay.setEditorHandler(errorLocation =>
9 window.fetch(
10 `/__open-stack-frame-in-editor?fileName=` +
11 window.encodeURIComponent(errorLocation.fileName) +
12 `&lineNumber=` +
13 window.encodeURIComponent(errorLocation.lineNumber || 1)
14 )
15)
16
17const errorMap = {}
18
19const handleErrorOverlay = () => {
20 const errors = Object.values(errorMap)
21 if (errors.length > 0) {
22 const errorMsg = errors.join(`\n\n`)
23 ErrorOverlay.reportBuildError(errorMsg)
24 } else {
25 ErrorOverlay.dismissBuildError()
26 }
27}
28
29export const clearError = errorID => {
30 delete errorMap[errorID]
31 handleErrorOverlay()
32}
33
34export const reportError = (errorID, error) => {
35 if (error) {
36 errorMap[errorID] = error
37 }
38 handleErrorOverlay()
39}
40
41export { errorMap }