| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const SingleEntryDependency = require("./dependencies/SingleEntryDependency");/** @typedef {import("./Compiler")} Compiler */class SingleEntryPlugin {	/**	 * An entry plugin which will handle	 * creation of the SingleEntryDependency	 *	 * @param {string} context context path	 * @param {string} entry entry path	 * @param {string} name entry key name	 */	constructor(context, entry, name) {		this.context = context;		this.entry = entry;		this.name = name;	}	/**	 * @param {Compiler} compiler the compiler instance	 * @returns {void}	 */	apply(compiler) {		compiler.hooks.compilation.tap(			"SingleEntryPlugin",			(compilation, { normalModuleFactory }) => {				compilation.dependencyFactories.set(					SingleEntryDependency,					normalModuleFactory				);			}		);		compiler.hooks.make.tapAsync(			"SingleEntryPlugin",			(compilation, callback) => {				const { entry, name, context } = this;				const dep = SingleEntryPlugin.createDependency(entry, name);				compilation.addEntry(context, dep, name, callback);			}		);	}	/**	 * @param {string} entry entry request	 * @param {string} name entry name	 * @returns {SingleEntryDependency} the dependency	 */	static createDependency(entry, name) {		const dep = new SingleEntryDependency(entry);		dep.loc = { name };		return dep;	}}module.exports = SingleEntryPlugin;
 |