/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; module.exports = class ModuleKindPlugin { constructor(source, target) { this.source = source; this.target = target; } apply(resolver) { const target = resolver.ensureHook(this.target); resolver.getHook(this.source).tapAsync("ModuleKindPlugin", (request, resolveContext, callback) => { if(!request.module) return callback(); const obj = Object.assign({}, request); delete obj.module; resolver.doResolve(target, obj, "resolve as module", resolveContext, (err, result) => { if(err) return callback(err); // Don't allow other alternatives if(result === undefined) return callback(null, null); callback(null, result); }); }); } };