File size: 1,071 Bytes
1df763a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
	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
	};
};