MCPcopy
hub / github.com/webpack/webpack / extractBlockModules

Function extractBlockModules

lib/buildChunkGraph.js:115–243  ·  view source on GitHub ↗
(module, moduleGraph, runtime, blockModulesMap)

Source from the content-addressed store, hash-verified

113 * @param {BlockModulesMap} blockModulesMap block modules map
114 */
115const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => {
116 /** @type {DependenciesBlock | undefined} */
117 let blockCache;
118 /** @type {BlockModulesInTuples | undefined} */
119 let modules;
120
121 /** @type {BlockModulesInTuples[]} */
122 const arrays = [];
123
124 /** @type {DependenciesBlock[]} */
125 const queue = [module];
126 while (queue.length > 0) {
127 const block = /** @type {DependenciesBlock} */ (queue.pop());
128 /** @type {Module[]} */
129 const arr = [];
130 arrays.push(arr);
131 blockModulesMap.set(block, arr);
132 for (const b of block.blocks) {
133 queue.push(b);
134 }
135 }
136
137 for (const connection of moduleGraph.getOutgoingConnections(module)) {
138 const d = connection.dependency;
139 // We skip connections without dependency
140 if (!d) continue;
141 const m = connection.module;
142 // We skip connections without Module pointer
143 if (!m) continue;
144 // We skip weak connections
145 if (connection.weak) continue;
146
147 const block = moduleGraph.getParentBlock(d);
148 let index = moduleGraph.getParentBlockIndex(d);
149
150 // deprecated fallback
151 if (index < 0) {
152 index = /** @type {DependenciesBlock} */ (block).dependencies.indexOf(d);
153 }
154
155 if (blockCache !== block) {
156 modules =
157 /** @type {BlockModulesInTuples} */
158 (
159 blockModulesMap.get(
160 (blockCache = /** @type {DependenciesBlock} */ (block))
161 )
162 );
163 }
164
165 const i = index * 3;
166 /** @type {BlockModulesInTuples} */
167 (modules)[i] = m;
168 /** @type {BlockModulesInTuples} */
169 (modules)[i + 1] = connection.getActiveState(runtime);
170 /** @type {BlockModulesInTuples} */
171 (modules)[i + 2] = connection;
172 }

Callers 1

getBlockModulesFunction · 0.85

Calls 8

popMethod · 0.80
getParentBlockMethod · 0.80
getParentBlockIndexMethod · 0.80
getActiveStateMethod · 0.80
pushMethod · 0.45
setMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected