MCPcopy
hub / github.com/webpack/webpack / processRuntimeRequirements

Method processRuntimeRequirements

lib/Compilation.js:4181–4312  ·  view source on GitHub ↗

* Process runtime requirements. * @param {object} options options * @param {ChunkGraph=} options.chunkGraph the chunk graph * @param {Iterable<Module>=} options.modules modules * @param {Iterable<Chunk>=} options.chunks chunks * @param {CodeGenerationResults=} options.codeGenerationResults

({
		chunkGraph = this.chunkGraph,
		modules = this.modules,
		chunks = this.chunks,
		codeGenerationResults = /** @type {CodeGenerationResults} */ (
			this.codeGenerationResults
		),
		chunkGraphEntries = this._getChunkGraphEntries()
	} = {})

Source from the content-addressed store, hash-verified

4179 * @returns {void}
4180 */
4181 processRuntimeRequirements({
4182 chunkGraph = this.chunkGraph,
4183 modules = this.modules,
4184 chunks = this.chunks,
4185 codeGenerationResults = /** @type {CodeGenerationResults} */ (
4186 this.codeGenerationResults
4187 ),
4188 chunkGraphEntries = this._getChunkGraphEntries()
4189 } = {}) {
4190 const context = { chunkGraph, codeGenerationResults };
4191 const { moduleMemCaches2 } = this;
4192 this.logger.time("runtime requirements.modules");
4193 const additionalModuleRuntimeRequirements =
4194 this.hooks.additionalModuleRuntimeRequirements;
4195 const runtimeRequirementInModule = this.hooks.runtimeRequirementInModule;
4196 for (const module of modules) {
4197 if (chunkGraph.getNumberOfModuleChunks(module) > 0) {
4198 const memCache = moduleMemCaches2 && moduleMemCaches2.get(module);
4199 for (const runtime of chunkGraph.getModuleRuntimes(module)) {
4200 if (memCache) {
4201 const cached = memCache.get(
4202 `moduleRuntimeRequirements-${getRuntimeKey(runtime)}`
4203 );
4204 if (cached !== undefined) {
4205 if (cached !== null) {
4206 chunkGraph.addModuleRuntimeRequirements(
4207 module,
4208 runtime,
4209 /** @type {RuntimeRequirements} */
4210 (cached),
4211 false
4212 );
4213 }
4214 continue;
4215 }
4216 }
4217 /** @type {RuntimeRequirements} */
4218 let set;
4219 const runtimeRequirements =
4220 codeGenerationResults.getRuntimeRequirements(module, runtime);
4221 if (runtimeRequirements && runtimeRequirements.size > 0) {
4222 set = new Set(runtimeRequirements);
4223 } else if (additionalModuleRuntimeRequirements.isUsed()) {
4224 set = new Set();
4225 } else {
4226 if (memCache) {
4227 memCache.set(
4228 `moduleRuntimeRequirements-${getRuntimeKey(runtime)}`,
4229 null
4230 );
4231 }
4232 continue;
4233 }
4234 additionalModuleRuntimeRequirements.call(module, set, context);
4235
4236 for (const r of set) {
4237 const hook = runtimeRequirementInModule.get(r);
4238 if (hook !== undefined) hook.call(module, set, context);

Callers 2

sealMethod · 0.95
executeModuleMethod · 0.95

Calls 15

_getChunkGraphEntriesMethod · 0.95
getRuntimeKeyFunction · 0.85
timeMethod · 0.80
getModuleRuntimesMethod · 0.80
isUsedMethod · 0.80
timeEndMethod · 0.80

Tested by

no test coverage detected