aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/MultiModule.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
commitbbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch)
treec58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/webpack/lib/MultiModule.js
parent003fb34971cf63466184351b4db5f7c67df4f444 (diff)
update packages
Diffstat (limited to 'node_modules/webpack/lib/MultiModule.js')
-rw-r--r--node_modules/webpack/lib/MultiModule.js162
1 files changed, 87 insertions, 75 deletions
diff --git a/node_modules/webpack/lib/MultiModule.js b/node_modules/webpack/lib/MultiModule.js
index b6a91e34f..c8e5d5757 100644
--- a/node_modules/webpack/lib/MultiModule.js
+++ b/node_modules/webpack/lib/MultiModule.js
@@ -1,75 +1,87 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const Module = require("./Module");
-const RawSource = require("webpack-sources").RawSource;
-
-class MultiModule extends Module {
-
- constructor(context, dependencies, name) {
- super();
- this.context = context;
- this.dependencies = dependencies;
- this.name = name;
- this.built = false;
- this.cacheable = true;
- }
-
- identifier() {
- return `multi ${this.dependencies.map((d) => d.request).join(" ")}`;
- }
-
- readableIdentifier(requestShortener) {
- return `multi ${this.dependencies.map((d) => requestShortener.shorten(d.request)).join(" ")}`;
- }
-
- disconnect() {
- this.built = false;
- super.disconnect();
- }
-
- build(options, compilation, resolver, fs, callback) {
- this.built = true;
- return callback();
- }
-
- needRebuild() {
- return false;
- }
-
- size() {
- return 16 + this.dependencies.length * 12;
- }
-
- updateHash(hash) {
- hash.update("multi module");
- hash.update(this.name || "");
- super.updateHash(hash);
- }
-
- source(dependencyTemplates, outputOptions) {
- const str = [];
- this.dependencies.forEach(function(dep, idx) {
- if(dep.module) {
- if(idx === this.dependencies.length - 1)
- str.push("module.exports = ");
- str.push("__webpack_require__(");
- if(outputOptions.pathinfo)
- str.push(`/*! ${dep.request} */`);
- str.push(`${JSON.stringify(dep.module.id)}`);
- str.push(")");
- } else {
- str.push("(function webpackMissingModule() { throw new Error(");
- str.push(JSON.stringify(`Cannot find module "${dep.request}"`));
- str.push("); }())");
- }
- str.push(";\n");
- }, this);
- return new RawSource(str.join(""));
- }
-}
-
-module.exports = MultiModule;
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const Module = require("./Module");
+const Template = require("./Template");
+const { RawSource } = require("webpack-sources");
+
+/** @typedef {import("./util/createHash").Hash} Hash */
+
+class MultiModule extends Module {
+ constructor(context, dependencies, name) {
+ super("javascript/dynamic", context);
+
+ // Info from Factory
+ this.dependencies = dependencies;
+ this.name = name;
+ this._identifier = `multi ${this.dependencies
+ .map(d => d.request)
+ .join(" ")}`;
+ }
+
+ identifier() {
+ return this._identifier;
+ }
+
+ readableIdentifier(requestShortener) {
+ return `multi ${this.dependencies
+ .map(d => requestShortener.shorten(d.request))
+ .join(" ")}`;
+ }
+
+ build(options, compilation, resolver, fs, callback) {
+ this.built = true;
+ this.buildMeta = {};
+ this.buildInfo = {};
+ return callback();
+ }
+
+ needRebuild() {
+ return false;
+ }
+
+ size() {
+ return 16 + this.dependencies.length * 12;
+ }
+
+ /**
+ * @param {Hash} hash the hash used to track dependencies
+ * @returns {void}
+ */
+ updateHash(hash) {
+ hash.update("multi module");
+ hash.update(this.name || "");
+ super.updateHash(hash);
+ }
+
+ source(dependencyTemplates, runtimeTemplate) {
+ const str = [];
+ let idx = 0;
+ for (const dep of this.dependencies) {
+ if (dep.module) {
+ if (idx === this.dependencies.length - 1) {
+ str.push("module.exports = ");
+ }
+ str.push("__webpack_require__(");
+ if (runtimeTemplate.outputOptions.pathinfo) {
+ str.push(Template.toComment(dep.request));
+ }
+ str.push(`${JSON.stringify(dep.module.id)}`);
+ str.push(")");
+ } else {
+ const content = require("./dependencies/WebpackMissingModule").module(
+ dep.request
+ );
+ str.push(content);
+ }
+ str.push(";\n");
+ idx++;
+ }
+ return new RawSource(str.join(""));
+ }
+}
+
+module.exports = MultiModule;