| 
									
										
										
										
											2021-11-25 20:21:40 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const Entrypoint = require("../Entrypoint"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** @typedef {import("../Chunk")} Chunk */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * @param {Entrypoint} entrypoint a chunk group | 
					
						
							| 
									
										
										
										
											2023-05-27 01:21:35 +08:00
										 |  |  |  * @param {Chunk=} excludedChunk1 current chunk which is excluded | 
					
						
							|  |  |  |  * @param {Chunk=} excludedChunk2 runtime chunk which is excluded | 
					
						
							| 
									
										
										
										
											2021-11-25 20:21:40 +08:00
										 |  |  |  * @returns {Set<Chunk>} chunks | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const getAllChunks = (entrypoint, excludedChunk1, excludedChunk2) => { | 
					
						
							|  |  |  | 	const queue = new Set([entrypoint]); | 
					
						
							|  |  |  | 	const chunks = new Set(); | 
					
						
							|  |  |  | 	for (const entrypoint of queue) { | 
					
						
							|  |  |  | 		for (const chunk of entrypoint.chunks) { | 
					
						
							|  |  |  | 			if (chunk === excludedChunk1) continue; | 
					
						
							|  |  |  | 			if (chunk === excludedChunk2) continue; | 
					
						
							|  |  |  | 			chunks.add(chunk); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		for (const parent of entrypoint.parentsIterable) { | 
					
						
							|  |  |  | 			if (parent instanceof Entrypoint) queue.add(parent); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return chunks; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | exports.getAllChunks = getAllChunks; |