mirror of https://github.com/webpack/webpack.git
51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
"use strict";
|
|
|
|
const loaderFlag = "LOADER_EXECUTION";
|
|
|
|
const webpackOptionsFlag = "WEBPACK_OPTIONS";
|
|
|
|
exports.cutOffByFlag = (stack, flag) => {
|
|
stack = stack.split("\n");
|
|
for(let i = 0; i < stack.length; i++)
|
|
if(stack[i].includes(flag))
|
|
stack.length = i;
|
|
return stack.join("\n");
|
|
};
|
|
|
|
exports.cutOffLoaderExecution = (stack) => exports.cutOffByFlag(stack, loaderFlag);
|
|
|
|
exports.cutOffWebpackOptinos = (stack) => exports.cutOffByFlag(stack, webpackOptionsFlag);
|
|
|
|
exports.cutOffMultilineMessage = (stack, message) => {
|
|
stack = stack.split("\n");
|
|
message = message.split("\n");
|
|
|
|
return stack.reduce((acc, line, idx) => line.includes(message[idx]) ? acc : acc.concat(line), []).join("\n");
|
|
};
|
|
|
|
exports.cutOffMessage = (stack, message) => {
|
|
const nextLine = stack.indexOf("\n");
|
|
if(nextLine === -1) {
|
|
return stack === message ? "" : stack;
|
|
} else {
|
|
const firstLine = stack.substr(0, nextLine);
|
|
return firstLine === message ? stack.substr(nextLine + 1) : stack;
|
|
}
|
|
};
|
|
|
|
exports.cleanUp = (stack, message) => {
|
|
stack = exports.cutOffLoaderExecution(stack);
|
|
stack = exports.cutOffMessage(stack, message);
|
|
return stack;
|
|
};
|
|
|
|
exports.cleanUpWebpackOptions = (stack, message) => {
|
|
stack = exports.cutOffWebpackOptinos(stack);
|
|
stack = exports.cutOffMultilineMessage(stack, message);
|
|
return stack;
|
|
};
|