| 
									
										
										
										
											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
										 |  |  | */ | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2017-03-25 05:17:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const WebpackError = require("../WebpackError"); | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | const SizeFormatHelpers = require("../SizeFormatHelpers"); | 
					
						
							| 
									
										
										
										
											2016-11-29 23:32:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-25 05:17:47 +08:00
										 |  |  | module.exports = class AssetsOverSizeLimitWarning extends WebpackError { | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | 	constructor(assetsOverSizeLimit, assetLimit) { | 
					
						
							|  |  |  | 		super(); | 
					
						
							| 
									
										
										
										
											2017-02-16 03:55:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | 		this.name = "AssetsOverSizeLimitWarning"; | 
					
						
							|  |  |  | 		this.assets = assetsOverSizeLimit; | 
					
						
							| 
									
										
										
										
											2018-02-25 09:00:20 +08:00
										 |  |  | 		const assetLists = this.assets | 
					
						
							|  |  |  | 			.map( | 
					
						
							|  |  |  | 				asset => | 
					
						
							|  |  |  | 					`\n  ${asset.name} (${SizeFormatHelpers.formatSize(asset.size)})` | 
					
						
							|  |  |  | 			) | 
					
						
							|  |  |  | 			.join(""); | 
					
						
							|  |  |  | 		this.message = `asset size limit: The following asset(s) exceed the recommended size limit (${SizeFormatHelpers.formatSize( | 
					
						
							|  |  |  | 			assetLimit | 
					
						
							|  |  |  | 		)}). | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | This can impact web performance. | 
					
						
							|  |  |  | Assets: ${assetLists}`;
 | 
					
						
							| 
									
										
										
										
											2017-03-25 05:17:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-16 03:55:54 +08:00
										 |  |  | 		Error.captureStackTrace(this, this.constructor); | 
					
						
							| 
									
										
										
										
											2017-01-04 03:21:51 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | }; |