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