Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/@pmmmwh
/react-refresh-webpack-plugin
/overlay
/components
/CompileErrorTrace.js
| const ansiHTML = require('ansi-html'); | |
| const entities = require('html-entities'); | |
| const theme = require('../theme.js'); | |
| const utils = require('../utils.js'); | |
| ansiHTML.setColors(theme); | |
| /** | |
| * @typedef {Object} CompileErrorTraceProps | |
| * @property {string} errorMessage | |
| */ | |
| /** | |
| * A formatter that turns Webpack compile error messages into highlighted HTML source traces. | |
| * @param {Document} document | |
| * @param {HTMLElement} root | |
| * @param {CompileErrorTraceProps} props | |
| * @returns {void} | |
| */ | |
| function CompileErrorTrace(document, root, props) { | |
| const errorParts = props.errorMessage.split('\n'); | |
| if (errorParts.length) { | |
| if (errorParts[0]) { | |
| errorParts[0] = utils.formatFilename(errorParts[0]); | |
| } | |
| const errorMessage = errorParts.splice(1, 1)[0]; | |
| if (errorMessage) { | |
| // Strip filename from the error message | |
| errorParts.unshift(errorMessage.replace(/^(.*:)\s.*:(\s.*)$/, '$1$2')); | |
| } | |
| } | |
| const stackContainer = document.createElement('pre'); | |
| stackContainer.innerHTML = entities.decode( | |
| ansiHTML(entities.encode(errorParts.join('\n'), { level: 'html5', mode: 'nonAscii' })), | |
| { level: 'html5' } | |
| ); | |
| stackContainer.style.fontFamily = [ | |
| '"Operator Mono SSm"', | |
| '"Operator Mono"', | |
| '"Fira Code Retina"', | |
| '"Fira Code"', | |
| '"FiraCode-Retina"', | |
| '"Andale Mono"', | |
| '"Lucida Console"', | |
| 'Menlo', | |
| 'Consolas', | |
| 'Monaco', | |
| 'monospace', | |
| ].join(', '); | |
| stackContainer.style.margin = '0'; | |
| stackContainer.style.whiteSpace = 'pre-wrap'; | |
| root.appendChild(stackContainer); | |
| } | |
| module.exports = CompileErrorTrace; | |