@ima/dev-utils
Version:
IMA.js dev utils used used mainly in @ima/cli and other dev-related utilities.
41 lines (40 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseCompileError = exports.resolveErrorType = exports.COMPILE_ERROR_NEEDLES_RE = void 0;
const parsers_1 = require("./parsers");
exports.COMPILE_ERROR_NEEDLES_RE = [
/error:\s?module/i,
/module\s\w*\s?failed/i,
];
function resolveErrorType(error) {
if (error?.loc) {
return 'compile';
}
return exports.COMPILE_ERROR_NEEDLES_RE.some(re => re.test(error?.message || error?.stack || ''))
? 'compile'
: 'runtime';
}
exports.resolveErrorType = resolveErrorType;
/**
* Tries to parse error location from an error. Which can be
* either webpack stats error or simple Error object.
*
* @param {StatsError | Error} error webpack stats object or error instance.
* @returns {CompileError | null} Parsed compile error.
*/
function parseCompileError(error) {
// Parse compile errors
if (error.message?.includes('swc-loader')) {
return (0, parsers_1.swcLoaderErrorParser)(error);
}
else if (error.message?.includes('less-loader')) {
return (0, parsers_1.lessLoaderErrorParser)(error);
}
else if (error.message?.includes('postcss-loader') ||
error.message?.includes('css-loader')) {
return (0, parsers_1.cssLoaderErrorParser)(error);
}
// Fallback to general webpack error parser
return (0, parsers_1.webpackErrorParser)(error);
}
exports.parseCompileError = parseCompileError;