UNPKG

react-okr-ui

Version:

A React user interface toolkit for building OKR centric applications.

71 lines (56 loc) 2.15 kB
"use strict"; exports.__esModule = true; exports.errorMap = exports.reportError = exports.clearError = void 0; const overlayPackage = process.env.GATSBY_HOT_LOADER !== `fast-refresh` ? require(`react-error-overlay`) : require(`@pmmmwh/react-refresh-webpack-plugin/overlay`); const ErrorOverlay = { showCompileError: process.env.GATSBY_HOT_LOADER !== `fast-refresh` ? overlayPackage.reportBuildError : overlayPackage.showCompileError, clearCompileError: process.env.GATSBY_HOT_LOADER !== `fast-refresh` ? overlayPackage.dismissBuildError : overlayPackage.clearCompileError }; if (process.env.GATSBY_HOT_LOADER !== `fast-refresh`) { // Report runtime errors overlayPackage.startReportingRuntimeErrors({ onError: () => {}, filename: `/commons.js` }); overlayPackage.setEditorHandler(errorLocation => window.fetch(`/__open-stack-frame-in-editor?fileName=` + window.encodeURIComponent(errorLocation.fileName) + `&lineNumber=` + window.encodeURIComponent(errorLocation.lineNumber || 1))); } const errorMap = {}; exports.errorMap = errorMap; function flat(arr) { return Array.prototype.flat ? arr.flat() : [].concat(...arr); } const handleErrorOverlay = () => { const errors = Object.values(errorMap); let errorStringsToDisplay = []; if (errors.length > 0) { errorStringsToDisplay = flat(errors).map(error => { if (typeof error === `string`) { return error; } else if (typeof error === `object`) { const errorStrBuilder = [error.text]; if (error.filePath) { errorStrBuilder.push(`File: ${error.filePath}`); } return errorStrBuilder.join(`\n\n`); } return null; }).filter(Boolean); } if (errorStringsToDisplay.length > 0) { ErrorOverlay.showCompileError(errorStringsToDisplay.join(`\n\n`)); } else { ErrorOverlay.clearCompileError(); } }; const clearError = errorID => { delete errorMap[errorID]; handleErrorOverlay(); }; exports.clearError = clearError; const reportError = (errorID, error) => { if (error) { errorMap[errorID] = error; } handleErrorOverlay(); }; exports.reportError = reportError;