47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| #!/usr/bin/env node
 | |
| 
 | |
| // Imports
 | |
| const {extend, parse} = require('cjson');
 | |
| const {readFileSync, writeFileSync} = require('fs');
 | |
| const {join, resolve} = require('path');
 | |
| const {exec, set} = require('shelljs');
 | |
| 
 | |
| set('-e');
 | |
| 
 | |
| // Constants
 | |
| const ROOT_DIR = resolve(__dirname, '..');
 | |
| const TS_CONFIG_PATH = join(ROOT_DIR, 'tsconfig.json');
 | |
| const NG_COMPILER_OPTS = {
 | |
|   angularCompilerOptions: {
 | |
|     // Related Jira issue: FW-737
 | |
|     allowEmptyCodegenFiles: true,
 | |
|     enableIvy: 'ngtsc',
 | |
|   },
 | |
| };
 | |
| 
 | |
| // Run
 | |
| _main(process.argv.slice(2));
 | |
| 
 | |
| // Functions - Definitions
 | |
| function _main(buildArgs) {
 | |
|   console.log('\nModifying `tsconfig.json`...');
 | |
|   const oldTsConfigStr = readFileSync(TS_CONFIG_PATH, 'utf8');
 | |
|   const oldTsConfigObj = parse(oldTsConfigStr);
 | |
|   const newTsConfigObj = extend(true, oldTsConfigObj, NG_COMPILER_OPTS);
 | |
|   const newTsConfigStr = JSON.stringify(newTsConfigObj, null, 2);
 | |
|   writeFileSync(TS_CONFIG_PATH, newTsConfigStr);
 | |
|   console.log(newTsConfigStr);
 | |
| 
 | |
|   try {
 | |
|     const buildArgsStr = buildArgs.join(' ');
 | |
| 
 | |
|     console.log(`\nBuilding${buildArgsStr && ` with args \`${buildArgsStr}\``}...`);
 | |
|     exec(`yarn ~~build ${buildArgsStr}`, {cwd: ROOT_DIR});
 | |
|   } finally {
 | |
|     console.log('\nRestoring `tsconfig.json`...');
 | |
|     writeFileSync(TS_CONFIG_PATH, oldTsConfigStr);
 | |
|   }
 | |
| 
 | |
|   console.log('\nDone!');
 | |
| }
 |