Files
30-seconds-of-code/node_modules/gatsby/cache-dir/error-overlay-handler.js
2019-08-20 15:52:05 +02:00

42 lines
934 B
JavaScript

import * as ErrorOverlay from "react-error-overlay"
// Report runtime errors
ErrorOverlay.startReportingRuntimeErrors({
onError: () => {},
filename: `/commons.js`,
})
ErrorOverlay.setEditorHandler(errorLocation =>
window.fetch(
`/__open-stack-frame-in-editor?fileName=` +
window.encodeURIComponent(errorLocation.fileName) +
`&lineNumber=` +
window.encodeURIComponent(errorLocation.lineNumber || 1)
)
)
const errorMap = {}
const handleErrorOverlay = () => {
const errors = Object.values(errorMap)
if (errors.length > 0) {
const errorMsg = errors.join(`\n\n`)
ErrorOverlay.reportBuildError(errorMsg)
} else {
ErrorOverlay.dismissBuildError()
}
}
export const clearError = errorID => {
delete errorMap[errorID]
handleErrorOverlay()
}
export const reportError = (errorID, error) => {
if (error) {
errorMap[errorID] = error
}
handleErrorOverlay()
}
export { errorMap }