MCPcopy
hub / github.com/webpack/webpack / processQueue

Function processQueue

lib/buildChunkGraph.js:922–1007  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

920 };
921
922 const processQueue = () => {
923 while (queue.length) {
924 statProcessedQueueItems++;
925 const queueItem = /** @type {QueueItem} */ (queue.pop());
926 module = queueItem.module;
927 block = queueItem.block;
928 chunk = queueItem.chunk;
929 chunkGroup = queueItem.chunkGroup;
930 chunkGroupInfo = queueItem.chunkGroupInfo;
931
932 switch (queueItem.action) {
933 case ADD_AND_ENTER_ENTRY_MODULE:
934 chunkGraph.connectChunkAndEntryModule(
935 chunk,
936 module,
937 /** @type {Entrypoint} */ (chunkGroup)
938 );
939 // fallthrough
940 case ADD_AND_ENTER_MODULE: {
941 const isModuleInChunk = chunkGraph.isModuleInChunk(module, chunk);
942
943 if (isModuleInChunk) {
944 // already connected, skip it
945 break;
946 }
947 // We connect Module and Chunk
948 chunkGraph.connectChunkAndModule(chunk, module);
949 const moduleOrdinal = getModuleOrdinal(module);
950 let chunkMask = /** @type {bigint} */ (maskByChunk.get(chunk));
951 chunkMask |= ONE_BIGINT << BigInt(moduleOrdinal);
952 maskByChunk.set(chunk, chunkMask);
953 }
954 // fallthrough
955 case ENTER_MODULE: {
956 const index = chunkGroup.getModulePreOrderIndex(module);
957 if (index === undefined) {
958 chunkGroup.setModulePreOrderIndex(
959 module,
960 chunkGroupInfo.preOrderIndex++
961 );
962 }
963
964 if (
965 moduleGraph.setPreOrderIndexIfUnset(
966 module,
967 nextFreeModulePreOrderIndex
968 )
969 ) {
970 nextFreeModulePreOrderIndex++;
971 }
972
973 // reuse queueItem
974 queueItem.action = LEAVE_MODULE;
975 queue.push(queueItem);
976 }
977 // fallthrough
978 case PROCESS_BLOCK: {
979 processBlock(block);

Callers 3

nodeDoneMethod · 0.70
nodeChangeMethod · 0.70
visitModulesFunction · 0.70

Calls 15

getModuleOrdinalFunction · 0.85
processBlockFunction · 0.85
processEntryBlockFunction · 0.85
popMethod · 0.80
isModuleInChunkMethod · 0.80
connectChunkAndModuleMethod · 0.80

Tested by

no test coverage detected