| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const ImportDependency = require("./ImportDependency");const ImportEagerDependency = require("./ImportEagerDependency");const ImportWeakDependency = require("./ImportWeakDependency");const ImportContextDependency = require("./ImportContextDependency");const ImportParserPlugin = require("./ImportParserPlugin");class ImportPlugin {	constructor(options) {		this.options = options;	}	apply(compiler) {		const options = this.options;		compiler.hooks.compilation.tap(			"ImportPlugin",			(compilation, { contextModuleFactory, normalModuleFactory }) => {				compilation.dependencyFactories.set(					ImportDependency,					normalModuleFactory				);				compilation.dependencyTemplates.set(					ImportDependency,					new ImportDependency.Template()				);				compilation.dependencyFactories.set(					ImportEagerDependency,					normalModuleFactory				);				compilation.dependencyTemplates.set(					ImportEagerDependency,					new ImportEagerDependency.Template()				);				compilation.dependencyFactories.set(					ImportWeakDependency,					normalModuleFactory				);				compilation.dependencyTemplates.set(					ImportWeakDependency,					new ImportWeakDependency.Template()				);				compilation.dependencyFactories.set(					ImportContextDependency,					contextModuleFactory				);				compilation.dependencyTemplates.set(					ImportContextDependency,					new ImportContextDependency.Template()				);				const handler = (parser, parserOptions) => {					if (parserOptions.import !== undefined && !parserOptions.import)						return;					new ImportParserPlugin(options).apply(parser);				};				normalModuleFactory.hooks.parser					.for("javascript/auto")					.tap("ImportPlugin", handler);				normalModuleFactory.hooks.parser					.for("javascript/dynamic")					.tap("ImportPlugin", handler);				normalModuleFactory.hooks.parser					.for("javascript/esm")					.tap("ImportPlugin", handler);			}		);	}}module.exports = ImportPlugin;
 |