| 
									
										
										
										
											2016-11-06 00:08:58 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							| 
									
										
										
										
											2016-11-06 00:43:03 +08:00
										 |  |  | 	Author Sean Larkin @thelarkinn | 
					
						
							| 
									
										
										
										
											2016-11-06 00:08:58 +08:00
										 |  |  | */ | 
					
						
							| 
									
										
										
										
											2018-07-30 23:08:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2017-03-25 05:17:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-27 04:37:21 +08:00
										 |  |  | const { formatSize } = require("../SizeFormatHelpers"); | 
					
						
							| 
									
										
										
										
											2018-07-30 23:08:51 +08:00
										 |  |  | const WebpackError = require("../WebpackError"); | 
					
						
							| 
									
										
										
										
											2016-11-29 23:32:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-09 05:13:56 +08:00
										 |  |  | /** @typedef {import("./SizeLimitsPlugin").EntrypointDetails} EntrypointDetails */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-29 03:04:11 +08:00
										 |  |  | module.exports = class EntrypointsOverSizeLimitWarning extends WebpackError { | 
					
						
							| 
									
										
										
										
											2018-11-09 05:13:56 +08:00
										 |  |  | 	/** | 
					
						
							|  |  |  | 	 * @param {EntrypointDetails[]} entrypoints the entrypoints | 
					
						
							|  |  |  | 	 * @param {number} entrypointLimit the size limit | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | 	constructor(entrypoints, entrypointLimit) { | 
					
						
							| 
									
										
										
										
											2018-06-04 16:10:23 +08:00
										 |  |  | 		const entrypointList = entrypoints | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			.map( | 
					
						
							| 
									
										
										
										
											2025-07-17 00:13:14 +08:00
										 |  |  | 				(entrypoint) => | 
					
						
							| 
									
										
										
										
											2018-07-27 04:37:21 +08:00
										 |  |  | 					`\n  ${entrypoint.name} (${formatSize( | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 						entrypoint.size | 
					
						
							| 
									
										
										
										
											2025-07-17 00:13:14 +08:00
										 |  |  | 					)})\n${entrypoint.files.map((asset) => `      ${asset}`).join("\n")}`
 | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			) | 
					
						
							|  |  |  | 			.join(""); | 
					
						
							| 
									
										
										
										
											2018-07-27 04:37:21 +08:00
										 |  |  | 		super(`entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (${formatSize( | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 			entrypointLimit | 
					
						
							|  |  |  | 		)}). This can impact web performance. | 
					
						
							| 
									
										
										
										
											2018-06-04 16:10:23 +08:00
										 |  |  | Entrypoints:${entrypointList}\n`);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		this.name = "EntrypointsOverSizeLimitWarning"; | 
					
						
							|  |  |  | 		this.entrypoints = entrypoints; | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | }; |