| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
 
- const RequireEnsureDependency = require("./RequireEnsureDependency");
 
- const NullFactory = require("../NullFactory");
 
- const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
 
- const ParserHelpers = require("../ParserHelpers");
 
- class RequireEnsurePlugin {
 
- 	apply(compiler) {
 
- 		compiler.hooks.compilation.tap(
 
- 			"RequireEnsurePlugin",
 
- 			(compilation, { normalModuleFactory }) => {
 
- 				compilation.dependencyFactories.set(
 
- 					RequireEnsureItemDependency,
 
- 					normalModuleFactory
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					RequireEnsureItemDependency,
 
- 					new RequireEnsureItemDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					RequireEnsureDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					RequireEnsureDependency,
 
- 					new RequireEnsureDependency.Template()
 
- 				);
 
- 				const handler = (parser, parserOptions) => {
 
- 					if (
 
- 						parserOptions.requireEnsure !== undefined &&
 
- 						!parserOptions.requireEnsure
 
- 					)
 
- 						return;
 
- 					new RequireEnsureDependenciesBlockParserPlugin().apply(parser);
 
- 					parser.hooks.evaluateTypeof
 
- 						.for("require.ensure")
 
- 						.tap(
 
- 							"RequireEnsurePlugin",
 
- 							ParserHelpers.evaluateToString("function")
 
- 						);
 
- 					parser.hooks.typeof
 
- 						.for("require.ensure")
 
- 						.tap(
 
- 							"RequireEnsurePlugin",
 
- 							ParserHelpers.toConstantDependency(
 
- 								parser,
 
- 								JSON.stringify("function")
 
- 							)
 
- 						);
 
- 				};
 
- 				normalModuleFactory.hooks.parser
 
- 					.for("javascript/auto")
 
- 					.tap("RequireEnsurePlugin", handler);
 
- 				normalModuleFactory.hooks.parser
 
- 					.for("javascript/dynamic")
 
- 					.tap("RequireEnsurePlugin", handler);
 
- 			}
 
- 		);
 
- 	}
 
- }
 
- module.exports = RequireEnsurePlugin;
 
 
  |