MCPcopy
hub / github.com/webpack/webpack / addModuleRuntimeRequirements

Method addModuleRuntimeRequirements

lib/ChunkGraph.js:1665–1701  ·  view source on GitHub ↗

* Adds module runtime requirements. * @param {Module} module the module * @param {RuntimeSpec} runtime the runtime * @param {RuntimeRequirements} items runtime requirements to be added (ownership of this Set is given to ChunkGraph when transferOwnership not false) * @param {boolean} transfer

(
		module,
		runtime,
		items,
		transferOwnership = true
	)

Source from the content-addressed store, hash-verified

1663 * @returns {void}
1664 */
1665 addModuleRuntimeRequirements(
1666 module,
1667 runtime,
1668 items,
1669 transferOwnership = true
1670 ) {
1671 const cgm = this._getChunkGraphModule(module);
1672 const runtimeRequirementsMap = cgm.runtimeRequirements;
1673 if (!transferOwnership) this._sharedModuleRuntimeRequirements.add(items);
1674 if (runtimeRequirementsMap === undefined) {
1675 /** @type {ChunkGraphRuntimeRequirements} */
1676 const map = new RuntimeSpecMap();
1677 map.set(runtime, items);
1678 cgm.runtimeRequirements = map;
1679 return;
1680 }
1681 runtimeRequirementsMap.update(runtime, (runtimeRequirements) => {
1682 if (runtimeRequirements === undefined) return items;
1683 const owned =
1684 !this._sharedModuleRuntimeRequirements.has(runtimeRequirements);
1685 // Merge into whichever owned Set is larger; otherwise copy-on-write.
1686 if (owned && runtimeRequirements.size >= items.size) {
1687 for (const item of items) runtimeRequirements.add(item);
1688 return runtimeRequirements;
1689 } else if (transferOwnership) {
1690 for (const item of runtimeRequirements) items.add(item);
1691 this._sharedModuleRuntimeRequirements.delete(items);
1692 return items;
1693 } else if (owned) {
1694 for (const item of items) runtimeRequirements.add(item);
1695 return runtimeRequirements;
1696 }
1697 const merged = new Set(runtimeRequirements);
1698 for (const item of items) merged.add(item);
1699 return merged;
1700 });
1701 }
1702
1703 /**
1704 * Adds chunk runtime requirements.

Callers 2

addRuntimeModuleMethod · 0.80

Calls 6

_getChunkGraphModuleMethod · 0.95
setMethod · 0.95
addMethod · 0.45
updateMethod · 0.45
hasMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected