| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
 
- const HarmonyInitDependency = require("./HarmonyInitDependency");
 
- const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
 
- const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency");
 
- const HarmonyExportHeaderDependency = require("./HarmonyExportHeaderDependency");
 
- const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency");
 
- const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency");
 
- const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImportedSpecifierDependency");
 
- const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
 
- const HarmonyAcceptImportDependency = require("./HarmonyAcceptImportDependency");
 
- const NullFactory = require("../NullFactory");
 
- const HarmonyDetectionParserPlugin = require("./HarmonyDetectionParserPlugin");
 
- const HarmonyImportDependencyParserPlugin = require("./HarmonyImportDependencyParserPlugin");
 
- const HarmonyExportDependencyParserPlugin = require("./HarmonyExportDependencyParserPlugin");
 
- const HarmonyTopLevelThisParserPlugin = require("./HarmonyTopLevelThisParserPlugin");
 
- class HarmonyModulesPlugin {
 
- 	constructor(options) {
 
- 		this.options = options;
 
- 	}
 
- 	apply(compiler) {
 
- 		compiler.hooks.compilation.tap(
 
- 			"HarmonyModulesPlugin",
 
- 			(compilation, { normalModuleFactory }) => {
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyCompatibilityDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyCompatibilityDependency,
 
- 					new HarmonyCompatibilityDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyInitDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyInitDependency,
 
- 					new HarmonyInitDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyImportSideEffectDependency,
 
- 					normalModuleFactory
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyImportSideEffectDependency,
 
- 					new HarmonyImportSideEffectDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyImportSpecifierDependency,
 
- 					normalModuleFactory
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyImportSpecifierDependency,
 
- 					new HarmonyImportSpecifierDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyExportHeaderDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyExportHeaderDependency,
 
- 					new HarmonyExportHeaderDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyExportExpressionDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyExportExpressionDependency,
 
- 					new HarmonyExportExpressionDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyExportSpecifierDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyExportSpecifierDependency,
 
- 					new HarmonyExportSpecifierDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyExportImportedSpecifierDependency,
 
- 					normalModuleFactory
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyExportImportedSpecifierDependency,
 
- 					new HarmonyExportImportedSpecifierDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyAcceptDependency,
 
- 					new NullFactory()
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyAcceptDependency,
 
- 					new HarmonyAcceptDependency.Template()
 
- 				);
 
- 				compilation.dependencyFactories.set(
 
- 					HarmonyAcceptImportDependency,
 
- 					normalModuleFactory
 
- 				);
 
- 				compilation.dependencyTemplates.set(
 
- 					HarmonyAcceptImportDependency,
 
- 					new HarmonyAcceptImportDependency.Template()
 
- 				);
 
- 				const handler = (parser, parserOptions) => {
 
- 					if (parserOptions.harmony !== undefined && !parserOptions.harmony)
 
- 						return;
 
- 					new HarmonyDetectionParserPlugin().apply(parser);
 
- 					new HarmonyImportDependencyParserPlugin(this.options).apply(parser);
 
- 					new HarmonyExportDependencyParserPlugin(this.options).apply(parser);
 
- 					new HarmonyTopLevelThisParserPlugin().apply(parser);
 
- 				};
 
- 				normalModuleFactory.hooks.parser
 
- 					.for("javascript/auto")
 
- 					.tap("HarmonyModulesPlugin", handler);
 
- 				normalModuleFactory.hooks.parser
 
- 					.for("javascript/esm")
 
- 					.tap("HarmonyModulesPlugin", handler);
 
- 			}
 
- 		);
 
- 	}
 
- }
 
- module.exports = HarmonyModulesPlugin;
 
 
  |