|
|
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- "use strict";
-
- const NullDependency = require("./NullDependency");
- const HarmonyImportDependency = require("./HarmonyImportDependency");
-
- class HarmonyAcceptDependency extends NullDependency {
- constructor(range, dependencies, hasCallback) {
- super();
- this.range = range;
- this.dependencies = dependencies;
- this.hasCallback = hasCallback;
- }
-
- get type() {
- return "accepted harmony modules";
- }
- }
-
- HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate {
- apply(dep, source, runtime) {
- const content = dep.dependencies
- .filter(dependency =>
- HarmonyImportDependency.Template.isImportEmitted(dependency, source)
- )
- .map(dependency => dependency.getImportStatement(true, runtime))
- .join("");
-
- if (dep.hasCallback) {
- source.insert(
- dep.range[0],
- `function(__WEBPACK_OUTDATED_DEPENDENCIES__) { ${content}(`
- );
- source.insert(
- dep.range[1],
- ")(__WEBPACK_OUTDATED_DEPENDENCIES__); }.bind(this)"
- );
- return;
- }
-
- source.insert(dep.range[1] - 0.5, `, function() { ${content} }`);
- }
- };
-
- module.exports = HarmonyAcceptDependency;
|