diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
commit | bbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch) | |
tree | c58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/webpack/lib/MultiModule.js | |
parent | 003fb34971cf63466184351b4db5f7c67df4f444 (diff) |
update packages
Diffstat (limited to 'node_modules/webpack/lib/MultiModule.js')
-rw-r--r-- | node_modules/webpack/lib/MultiModule.js | 162 |
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; |