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.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							1.4 KiB
						
					
					
				/* | 
						|
	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; | 
						|
};
 | 
						|
 |