You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Tobias Koppers @sokra | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | /** @typedef {import("./Resolver").ResolveContext} ResolveContext */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * @param {ResolveContext} options options for inner context | ||
|  |  * @param {null|string} message message to log | ||
|  |  * @returns {ResolveContext} inner context | ||
|  |  */ | ||
|  | module.exports = function createInnerContext(options, message) { | ||
|  | 	let messageReported = false; | ||
|  | 	let innerLog = undefined; | ||
|  | 	if (options.log) { | ||
|  | 		if (message) { | ||
|  | 			/** | ||
|  | 			 * @param {string} msg message | ||
|  | 			 */ | ||
|  | 			innerLog = msg => { | ||
|  | 				if (!messageReported) { | ||
|  | 					/** @type {(function(string): void)} */ | ||
|  | 					(options.log)(message); | ||
|  | 					messageReported = true; | ||
|  | 				} | ||
|  | 
 | ||
|  | 				/** @type {(function(string): void)} */ | ||
|  | 				(options.log)("  " + msg); | ||
|  | 			}; | ||
|  | 		} else { | ||
|  | 			innerLog = options.log; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return { | ||
|  | 		log: innerLog, | ||
|  | 		yield: options.yield, | ||
|  | 		fileDependencies: options.fileDependencies, | ||
|  | 		contextDependencies: options.contextDependencies, | ||
|  | 		missingDependencies: options.missingDependencies, | ||
|  | 		stack: options.stack | ||
|  | 	}; | ||
|  | }; |