| 
									
										
										
										
											2019-04-17 11:43:31 +01:00
										 |  |  | const readFileSync = require('fs').readFileSync; | 
					
						
							|  |  |  | const writeFileSync = require('fs').writeFileSync; | 
					
						
							|  |  |  | const resolve = require('path').resolve; | 
					
						
							|  |  |  | const Terser = require('terser'); | 
					
						
							|  |  |  | const GLOBAL_DEFS_FOR_TERSER = require('@angular/compiler-cli').GLOBAL_DEFS_FOR_TERSER; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const outputPath = resolve(__dirname, './core.min.js'); | 
					
						
							| 
									
										
										
										
											2020-05-05 21:35:44 -07:00
										 |  |  | const pathToCoreFesm2015 = resolve(__dirname, './node_modules/@angular/core/fesm2015/core.js'); | 
					
						
							|  |  |  | const coreFesm2015Content = readFileSync(pathToCoreFesm2015, 'utf8'); | 
					
						
							| 
									
										
										
										
											2019-04-17 11:43:31 +01:00
										 |  |  | // Ensure that Terser global_defs exported by compiler-cli work.
 | 
					
						
							|  |  |  | const terserOpts = { | 
					
						
							|  |  |  |   compress: { | 
					
						
							|  |  |  |     module: true, | 
					
						
							|  |  |  |     global_defs: GLOBAL_DEFS_FOR_TERSER | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2020-05-05 21:35:44 -07:00
										 |  |  | const result = Terser.minify(coreFesm2015Content, terserOpts); | 
					
						
							| 
									
										
										
										
											2019-04-17 11:43:31 +01:00
										 |  |  | writeFileSync(outputPath, result.code); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for (const def of Object.keys(GLOBAL_DEFS_FOR_TERSER)) { | 
					
						
							|  |  |  |   if (result.code.includes(def)) { | 
					
						
							|  |  |  |     throw `'${def}' should have been removed from core bundle, but was still there.\n` + | 
					
						
							|  |  |  |       `See output at ${outputPath}.`; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-05-05 21:35:44 -07:00
										 |  |  | } |