47 lines
1 KiB
JavaScript
47 lines
1 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
|
||
|
};
|
||
|
};
|