| /* |
| 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; |