| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const { OriginalSource, RawSource } = require("webpack-sources");
 
- const Module = require("./Module");
 
- const WebpackMissingModule = require("./dependencies/WebpackMissingModule");
 
- const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
 
- const DelegatedExportsDependency = require("./dependencies/DelegatedExportsDependency");
 
- /** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */
 
- /** @typedef {import("./util/createHash").Hash} Hash */
 
- class DelegatedModule extends Module {
 
- 	constructor(sourceRequest, data, type, userRequest, originalRequest) {
 
- 		super("javascript/dynamic", null);
 
- 		// Info from Factory
 
- 		this.sourceRequest = sourceRequest;
 
- 		this.request = data.id;
 
- 		this.type = type;
 
- 		this.userRequest = userRequest;
 
- 		this.originalRequest = originalRequest;
 
- 		this.delegateData = data;
 
- 		// Build info
 
- 		this.delegatedSourceDependency = undefined;
 
- 	}
 
- 	libIdent(options) {
 
- 		return typeof this.originalRequest === "string"
 
- 			? this.originalRequest
 
- 			: this.originalRequest.libIdent(options);
 
- 	}
 
- 	identifier() {
 
- 		return `delegated ${JSON.stringify(this.request)} from ${
 
- 			this.sourceRequest
 
- 		}`;
 
- 	}
 
- 	readableIdentifier() {
 
- 		return `delegated ${this.userRequest} from ${this.sourceRequest}`;
 
- 	}
 
- 	needRebuild() {
 
- 		return false;
 
- 	}
 
- 	build(options, compilation, resolver, fs, callback) {
 
- 		this.built = true;
 
- 		this.buildMeta = Object.assign({}, this.delegateData.buildMeta);
 
- 		this.buildInfo = {};
 
- 		this.delegatedSourceDependency = new DelegatedSourceDependency(
 
- 			this.sourceRequest
 
- 		);
 
- 		this.addDependency(this.delegatedSourceDependency);
 
- 		this.addDependency(
 
- 			new DelegatedExportsDependency(this, this.delegateData.exports || true)
 
- 		);
 
- 		callback();
 
- 	}
 
- 	source(depTemplates, runtime) {
 
- 		const dep = /** @type {DelegatedSourceDependency} */ (this.dependencies[0]);
 
- 		const sourceModule = dep.module;
 
- 		let str;
 
- 		if (!sourceModule) {
 
- 			str = WebpackMissingModule.moduleCode(this.sourceRequest);
 
- 		} else {
 
- 			str = `module.exports = (${runtime.moduleExports({
 
- 				module: sourceModule,
 
- 				request: dep.request
 
- 			})})`;
 
- 			switch (this.type) {
 
- 				case "require":
 
- 					str += `(${JSON.stringify(this.request)})`;
 
- 					break;
 
- 				case "object":
 
- 					str += `[${JSON.stringify(this.request)}]`;
 
- 					break;
 
- 			}
 
- 			str += ";";
 
- 		}
 
- 		if (this.useSourceMap) {
 
- 			return new OriginalSource(str, this.identifier());
 
- 		} else {
 
- 			return new RawSource(str);
 
- 		}
 
- 	}
 
- 	size() {
 
- 		return 42;
 
- 	}
 
- 	/**
 
- 	 * @param {Hash} hash the hash used to track dependencies
 
- 	 * @returns {void}
 
- 	 */
 
- 	updateHash(hash) {
 
- 		hash.update(this.type);
 
- 		hash.update(JSON.stringify(this.request));
 
- 		super.updateHash(hash);
 
- 	}
 
- }
 
- module.exports = DelegatedModule;
 
 
  |