mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			62 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.cutOffWebpackOptions = 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.cutOffWebpackOptions(stack);
 | |
| 	stack = exports.cutOffMultilineMessage(stack, message);
 | |
| 	return stack;
 | |
| };
 |