summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack/lib/dependencies/HarmonyInitDependency.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/dependencies/HarmonyInitDependency.js')
-rw-r--r--node_modules/webpack/lib/dependencies/HarmonyInitDependency.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/dependencies/HarmonyInitDependency.js b/node_modules/webpack/lib/dependencies/HarmonyInitDependency.js
new file mode 100644
index 0000000..73239c8
--- /dev/null
+++ b/node_modules/webpack/lib/dependencies/HarmonyInitDependency.js
@@ -0,0 +1,60 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const NullDependency = require("./NullDependency");
+
+class HarmonyInitDependency extends NullDependency {
+ constructor(originModule) {
+ super();
+ this.originModule = originModule;
+ }
+
+ get type() {
+ return "harmony init";
+ }
+}
+
+module.exports = HarmonyInitDependency;
+
+HarmonyInitDependency.Template = class HarmonyInitDependencyTemplate {
+ apply(dep, source, runtime, dependencyTemplates) {
+ const module = dep.originModule;
+ const list = [];
+ for (const dependency of module.dependencies) {
+ const template = dependencyTemplates.get(dependency.constructor);
+ if (
+ template &&
+ typeof template.harmonyInit === "function" &&
+ typeof template.getHarmonyInitOrder === "function"
+ ) {
+ const order = template.getHarmonyInitOrder(dependency);
+ if (!isNaN(order)) {
+ list.push({
+ order,
+ listOrder: list.length,
+ dependency,
+ template
+ });
+ }
+ }
+ }
+
+ list.sort((a, b) => {
+ const x = a.order - b.order;
+ if (x) return x;
+ return a.listOrder - b.listOrder;
+ });
+
+ for (const item of list) {
+ item.template.harmonyInit(
+ item.dependency,
+ source,
+ runtime,
+ dependencyTemplates
+ );
+ }
+ }
+};