47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
/*
|
|
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
|
|
};
|
|
};
|