MCPcopy
hub / github.com/webpack/webpack / codeGeneration

Method codeGeneration

lib/ContextModule.js:1373–1426  ·  view source on GitHub ↗

* Generates code and runtime requirements for this module. * @param {CodeGenerationContext} context context for code generation * @returns {CodeGenerationResult} result

(context)

Source from the content-addressed store, hash-verified

1371 * @returns {CodeGenerationResult} result
1372 */
1373 codeGeneration(context) {
1374 const { chunkGraph, compilation } = context;
1375
1376 /** @type {Sources} */
1377 const sources = new Map();
1378 sources.set(
1379 JAVASCRIPT_TYPE,
1380 this.getSource(
1381 this.getSourceString(
1382 this.options.mode,
1383 this.options.phase || ImportPhase.Evaluation,
1384 context
1385 ),
1386 compilation
1387 )
1388 );
1389 /** @type {RuntimeRequirements} */
1390 const set = new Set();
1391 const allDeps =
1392 this.dependencies.length > 0
1393 ? /** @type {ContextElementDependency[]} */ [...this.dependencies]
1394 : [];
1395 for (const block of this.blocks) {
1396 for (const dep of block.dependencies) {
1397 allDeps.push(/** @type {ContextElementDependency} */ (dep));
1398 }
1399 }
1400 set.add(RuntimeGlobals.module);
1401 set.add(RuntimeGlobals.hasOwnProperty);
1402 if (allDeps.length > 0) {
1403 const asyncMode = this.options.mode;
1404 set.add(RuntimeGlobals.require);
1405 if (asyncMode === "weak") {
1406 set.add(RuntimeGlobals.moduleFactories);
1407 } else if (asyncMode === "async-weak") {
1408 set.add(RuntimeGlobals.moduleFactories);
1409 set.add(RuntimeGlobals.ensureChunk);
1410 } else if (asyncMode === "lazy" || asyncMode === "lazy-once") {
1411 set.add(RuntimeGlobals.ensureChunk);
1412 }
1413 if (this.getFakeMap(allDeps, chunkGraph) !== 9) {
1414 set.add(RuntimeGlobals.createFakeNamespaceObject);
1415 }
1416 if (
1417 ImportPhaseUtils.isDefer(this.options.phase || ImportPhase.Evaluation)
1418 ) {
1419 set.add(RuntimeGlobals.makeDeferredNamespaceObject);
1420 }
1421 }
1422 return {
1423 sources,
1424 runtimeRequirements: set
1425 };
1426 }
1427
1428 /**
1429 * Returns the estimated size for the requested source type.

Callers

nothing calls this directly

Calls 6

getSourceMethod · 0.95
getSourceStringMethod · 0.95
getFakeMapMethod · 0.95
setMethod · 0.45
pushMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected