| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";/** @typedef {import("./Resolver")} Resolver *//** @typedef {import("./Resolver").ResolveStepHook} ResolveStepHook */module.exports = class UseFilePlugin {	/**	 * @param {string | ResolveStepHook} source source	 * @param {string} filename filename	 * @param {string | ResolveStepHook} target target	 */	constructor(source, filename, target) {		this.source = source;		this.filename = filename;		this.target = target;	}	/**	 * @param {Resolver} resolver the resolver	 * @returns {void}	 */	apply(resolver) {		const target = resolver.ensureHook(this.target);		resolver			.getHook(this.source)			.tapAsync("UseFilePlugin", (request, resolveContext, callback) => {				const filePath = resolver.join(request.path, this.filename);				const obj = {					...request,					path: filePath,					relativePath:						request.relativePath &&						resolver.join(request.relativePath, this.filename)				};				resolver.doResolve(					target,					obj,					"using path: " + filePath,					resolveContext,					callback				);			});	}};
 |