You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
911 B
34 lines
911 B
4 years ago
|
/*
|
||
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
|
Author Tobias Koppers @sokra
|
||
|
*/
|
||
|
"use strict";
|
||
|
|
||
|
const { WEBPACK_OPTIONS_FLAG } = require("./constants");
|
||
|
|
||
|
exports.cutOffByFlag = (stack, flag) => {
|
||
|
stack = stack.split("\n");
|
||
|
for (let i = 0; i < stack.length; i++) if (stack[i].indexOf(flag) >= 0) stack.length = i;
|
||
|
return stack.join("\n");
|
||
|
};
|
||
|
|
||
|
exports.cutOffWebpackOptions = stack => exports.cutOffByFlag(stack, WEBPACK_OPTIONS_FLAG);
|
||
|
|
||
|
exports.cutOffMultilineMessage = (stack, message) => {
|
||
|
stack = stack.split("\n");
|
||
|
message = message.split("\n");
|
||
|
|
||
|
return stack
|
||
|
.reduce(
|
||
|
(acc, line, idx) => (line === message[idx] || line === `Error: ${message[idx]}` ? acc : acc.concat(line)),
|
||
|
[]
|
||
|
)
|
||
|
.join("\n");
|
||
|
};
|
||
|
|
||
|
exports.cleanUpWebpackOptions = (stack, message) => {
|
||
|
stack = exports.cutOffWebpackOptions(stack);
|
||
|
stack = exports.cutOffMultilineMessage(stack, message);
|
||
|
return stack;
|
||
|
};
|