| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | /** @typedef {import("./Chunk")} Chunk */ | 
					
						
							|  |  |  | /** @typedef {import("./ChunkGroup")} ChunkGroup */ | 
					
						
							|  |  |  | /** @typedef {import("./Module")} Module */ | 
					
						
							|  |  |  | /** @typedef {import("./DependenciesBlock")} DependenciesBlock */ | 
					
						
							| 
									
										
										
										
											2018-05-15 18:20:17 +08:00
										 |  |  | /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */ | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * @param {ChunkGroup} chunkGroup the ChunkGroup to connect | 
					
						
							|  |  |  |  * @param {Chunk} chunk chunk to tie to ChunkGroup | 
					
						
							|  |  |  |  * @returns {void} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const connectChunkGroupAndChunk = (chunkGroup, chunk) => { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 	if (chunkGroup.pushChunk(chunk)) { | 
					
						
							| 
									
										
										
										
											2018-01-20 00:06:59 +08:00
										 |  |  | 		chunk.addGroup(chunkGroup); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @param {ChunkGroup} parent parent ChunkGroup to connect | 
					
						
							|  |  |  |  * @param {ChunkGroup} child child ChunkGroup to connect | 
					
						
							|  |  |  |  * @returns {void} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const connectChunkGroupParentAndChild = (parent, child) => { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 	if (parent.addChild(child)) { | 
					
						
							| 
									
										
										
										
											2018-01-20 00:06:59 +08:00
										 |  |  | 		child.addParent(parent); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @param {Chunk} chunk Chunk to connect to Module | 
					
						
							|  |  |  |  * @param {Module} module Module to connect to Chunk | 
					
						
							|  |  |  |  * @returns {void} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const connectChunkAndModule = (chunk, module) => { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 	if (module.addChunk(chunk)) { | 
					
						
							| 
									
										
										
										
											2018-01-20 00:06:59 +08:00
										 |  |  | 		chunk.addModule(module); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @param {Chunk} chunk Chunk being disconnected | 
					
						
							|  |  |  |  * @param {Module} module Module being disconnected | 
					
						
							|  |  |  |  * @returns {void} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const disconnectChunkAndModule = (chunk, module) => { | 
					
						
							| 
									
										
										
										
											2018-01-20 00:06:59 +08:00
										 |  |  | 	chunk.removeModule(module); | 
					
						
							|  |  |  | 	module.removeChunk(chunk); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2018-05-15 18:20:17 +08:00
										 |  |  |  * @param {AsyncDependenciesBlock} depBlock DepBlock being tied to ChunkGroup | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  |  * @param {ChunkGroup} chunkGroup ChunkGroup being tied to DepBlock | 
					
						
							|  |  |  |  * @returns {void} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | const connectDependenciesBlockAndChunkGroup = (depBlock, chunkGroup) => { | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 	if (chunkGroup.addBlock(depBlock)) { | 
					
						
							| 
									
										
										
										
											2018-01-20 00:06:59 +08:00
										 |  |  | 		depBlock.chunkGroup = chunkGroup; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2018-05-04 14:33:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | exports.connectChunkGroupAndChunk = connectChunkGroupAndChunk; | 
					
						
							|  |  |  | exports.connectChunkGroupParentAndChild = connectChunkGroupParentAndChild; | 
					
						
							|  |  |  | exports.connectChunkAndModule = connectChunkAndModule; | 
					
						
							|  |  |  | exports.disconnectChunkAndModule = disconnectChunkAndModule; | 
					
						
							|  |  |  | exports.connectDependenciesBlockAndChunkGroup = connectDependenciesBlockAndChunkGroup; |