@ima/dev-utils
Version:
IMA.js dev utils used used mainly in @ima/cli and other dev-related utilities.
34 lines (33 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractFileUri = exports.extractErrorLoc = exports.RE_FILE_PATH_REGEX = void 0;
const RE_FILE_PATH_REGEX = /\.?(\/[^/\n :,]+)+/;
exports.RE_FILE_PATH_REGEX = RE_FILE_PATH_REGEX;
/**
* Parsers error location from error.loc string from webpack stats.
*
* @param {string?} errorLocation Error location (line:column) string.
* @returns { line?: number; column?: number; } parsed line & column.
*/
function extractErrorLoc(errorLocation) {
if (!errorLocation || !errorLocation.includes(':')) {
return {};
}
const [line, columns] = errorLocation.split(':');
const column = (columns.includes('-') ? columns.split('-') : columns)[0];
// Columns are indexed from 0 so we need to compensate for that
return { line: parseInt(line), column: parseInt(column) + 1 };
}
exports.extractErrorLoc = extractErrorLoc;
/**
* Extracts fileUri from module identifier string, containing used loaders.
* The fileUri should always be at the end, separated by ! character.
*
* @param {string} moduleIdentifier webpack resource query.
*/
function extractFileUri(moduleIdentifier) {
return moduleIdentifier.includes('!')
? moduleIdentifier.split('!').pop() ?? undefined
: moduleIdentifier;
}
exports.extractFileUri = extractFileUri;