You can not 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
47 lines
1.0 KiB
2 weeks 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
|
||
|
};
|
||
|
};
|