mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
						|
*/
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
const RuntimeGlobals = require("../RuntimeGlobals");
 | 
						|
const RuntimeModule = require("../RuntimeModule");
 | 
						|
 | 
						|
/** @typedef {import("../MainTemplate")} MainTemplate */
 | 
						|
 | 
						|
class StartupEntrypointRuntimeModule extends RuntimeModule {
 | 
						|
	constructor(asyncChunkLoading) {
 | 
						|
		super("startup entrypoint");
 | 
						|
		this.asyncChunkLoading = asyncChunkLoading;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @returns {string} runtime code
 | 
						|
	 */
 | 
						|
	generate() {
 | 
						|
		const { compilation } = this;
 | 
						|
		const { runtimeTemplate } = compilation;
 | 
						|
		return `${
 | 
						|
			RuntimeGlobals.startupEntrypoint
 | 
						|
		} = ${runtimeTemplate.basicFunction("result, chunkIds, fn", [
 | 
						|
			"// arguments: chunkIds, moduleId are deprecated",
 | 
						|
			"var moduleId = chunkIds;",
 | 
						|
			`if(!fn) chunkIds = result, fn = ${runtimeTemplate.returningFunction(
 | 
						|
				`__webpack_require__(${RuntimeGlobals.entryModuleId} = moduleId)`
 | 
						|
			)};`,
 | 
						|
			...(this.asyncChunkLoading
 | 
						|
				? [
 | 
						|
						`return Promise.all(chunkIds.map(${
 | 
						|
							RuntimeGlobals.ensureChunk
 | 
						|
						}, __webpack_require__)).then(${runtimeTemplate.basicFunction("", [
 | 
						|
							"var r = fn();",
 | 
						|
							"return r === undefined ? result : r;"
 | 
						|
						])})`
 | 
						|
				  ]
 | 
						|
				: [
 | 
						|
						`chunkIds.map(${RuntimeGlobals.ensureChunk}, __webpack_require__)`,
 | 
						|
						"var r = fn();",
 | 
						|
						"return r === undefined ? result : r;"
 | 
						|
				  ])
 | 
						|
		])}`;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
module.exports = StartupEntrypointRuntimeModule;
 |