/* 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 }; };