feat(cli options): now support --web for web compilations targeting Google Chrome
This commit is contained in:
		| @@ -26,6 +26,7 @@ mirror: | ||||
| snyk: | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci npm prepare | ||||
|     - npmci command npm install -g snyk | ||||
|     - npmci command npm install --ignore-scripts | ||||
|     - npmci command snyk test | ||||
| @@ -36,21 +37,11 @@ snyk: | ||||
| # ==================== | ||||
| # test stage | ||||
| # ==================== | ||||
| testLEGACY: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci node install legacy | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|   allow_failure: true | ||||
|  | ||||
| testLTS: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci npm prepare | ||||
|   - npmci node install lts | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
| @@ -62,6 +53,7 @@ testLTS: | ||||
| testSTABLE: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci npm prepare | ||||
|   - npmci node install stable | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
| @@ -118,6 +110,7 @@ pages: | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci command npm install -g typedoc typescript | ||||
|     - npmci npm prepare | ||||
|     - npmci npm install | ||||
|     - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/ | ||||
|   tags: | ||||
| @@ -130,13 +123,3 @@ pages: | ||||
|     paths: | ||||
|     - public | ||||
|   allow_failure: true | ||||
|  | ||||
| windowsCompatibility: | ||||
|   image: stefanscherer/node-windows:10-build-tools | ||||
|   stage: metadata | ||||
|   script: | ||||
|   - npm install & npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - windows | ||||
|   allow_failure: true | ||||
|   | ||||
							
								
								
									
										952
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										952
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
								
							| @@ -26,15 +26,18 @@ | ||||
|   }, | ||||
|   "homepage": "https://gitlab.com/pushrocks/tsn#README", | ||||
|   "dependencies": { | ||||
|     "@pushrocks/smartfile": "^6.0.6", | ||||
|     "@pushrocks/smartlog": "^2.0.1", | ||||
|     "@pushrocks/smartcli": "^3.0.6", | ||||
|     "@pushrocks/smartfile": "^6.0.11", | ||||
|     "@pushrocks/smartlog": "^2.0.9", | ||||
|     "@pushrocks/smartpath": "^4.0.1", | ||||
|     "@pushrocks/smartpromise": "^2.0.5", | ||||
|     "typescript": "^3.0.1" | ||||
|     "typescript": "^3.2.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@gitzone/tsrun": "^1.1.11", | ||||
|     "@pushrocks/tapbundle": "^3.0.1", | ||||
|     "@types/node": "^10.5.7" | ||||
|     "@gitzone/tsrun": "^1.1.13", | ||||
|     "@pushrocks/tapbundle": "^3.0.7", | ||||
|     "@types/node": "^10.12.12", | ||||
|     "tslint": "^5.11.0", | ||||
|     "tslint-config-prettier": "^1.17.0" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -2,8 +2,4 @@ export * from './tsbuild.exports'; | ||||
|  | ||||
| import * as tsbuild from './tsbuild.exports'; | ||||
|  | ||||
| if (process.env.CLI_CALL_TSBUILD === 'true') { | ||||
|   tsbuild.compileGlobStringObject({ | ||||
|     './ts/**/*.ts': './dist' | ||||
|   }); | ||||
| } | ||||
| import './tsbuild.cli'; | ||||
| @@ -19,13 +19,26 @@ export const compilerOptionsDefault: CompilerOptions = { | ||||
|   target: plugins.typescript.ScriptTarget.ES2015 | ||||
| }; | ||||
|  | ||||
| export const compilerOptionsWebDefault: CompilerOptions = { | ||||
|   ...compilerOptionsDefault, | ||||
|   lib: [...compilerOptionsDefault.lib, 'dom'] | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * merges compilerOptions with the default compiler options | ||||
|  */ | ||||
| export const mergeCompilerOptions = function(customTsOptions: CompilerOptions): CompilerOptions { | ||||
| export const mergeCompilerOptions = (customTsOptions: CompilerOptions, argvArg?: any): CompilerOptions => { | ||||
|   const defaultOptionsToMerge = (() => { | ||||
|     if (argvArg && argvArg.web) { | ||||
|       return compilerOptionsWebDefault; | ||||
|     } else { | ||||
|       return compilerOptionsDefault; | ||||
|     } | ||||
|   })(); | ||||
|  | ||||
|   // create merged options | ||||
|   let mergedOptions: CompilerOptions = { | ||||
|     ...compilerOptionsDefault, | ||||
|     ...defaultOptionsToMerge, | ||||
|     ...customTsOptions | ||||
|   }; | ||||
|  | ||||
| @@ -37,7 +50,8 @@ export const mergeCompilerOptions = function(customTsOptions: CompilerOptions): | ||||
|  */ | ||||
| export const compiler = ( | ||||
|   fileNames: string[], | ||||
|   options: plugins.typescript.CompilerOptions | ||||
|   options: plugins.typescript.CompilerOptions, | ||||
|   argvArg?: any, | ||||
| ): Promise<any[]> => { | ||||
|   console.log(`Compiling ${fileNames.length} files...`); | ||||
|   let done = plugins.smartpromise.defer<any[]>(); | ||||
|   | ||||
							
								
								
									
										17
									
								
								ts/tsbuild.cli.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								ts/tsbuild.cli.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| import * as plugins from './tsbuild.plugins'; | ||||
| import * as tsbuild from './tsbuild.exports'; | ||||
|  | ||||
| const tsbuildCli = new plugins.smartcli.Smartcli(); | ||||
|  | ||||
| tsbuildCli.standardTask().subscribe(argvArg => { | ||||
|   if (process.env.CLI_CALL_TSBUILD === 'true') { | ||||
|     tsbuild.compileGlobStringObject( | ||||
|       { | ||||
|         './ts/**/*.ts': './dist' | ||||
|       }, | ||||
|       {}, | ||||
|       process.cwd(), | ||||
|       argvArg | ||||
|     ); | ||||
|   } | ||||
| }); | ||||
| @@ -8,9 +8,10 @@ export * from './tsbuild.classes.compiler'; | ||||
|  */ | ||||
| export let compileFileArray = ( | ||||
|   fileStringArrayArg: string[], | ||||
|   compilerOptionsArg: CompilerOptions = {} | ||||
|   compilerOptionsArg: CompilerOptions = {}, | ||||
|   argvArg?: any, | ||||
| ): Promise<any[]> => { | ||||
|   return compiler(fileStringArrayArg, mergeCompilerOptions(compilerOptionsArg)); | ||||
|   return compiler(fileStringArrayArg, mergeCompilerOptions(compilerOptionsArg, argvArg), argvArg); | ||||
| }; | ||||
|  | ||||
| /** | ||||
| @@ -23,30 +24,33 @@ export let compileFileArray = ( | ||||
| export let compileGlobStringObject = async ( | ||||
|   globStringObjectArg: any, | ||||
|   tsOptionsArg: CompilerOptions = {}, | ||||
|   cwdArg: string = process.cwd() | ||||
|   cwdArg: string = process.cwd(), | ||||
|   argvArg?: any, | ||||
| ) => { | ||||
|   let compiledFiles = []; | ||||
|   for (let keyArg in globStringObjectArg) { | ||||
|     console.log( | ||||
|       `TypeScript assignment: transpile from ${keyArg} to ${globStringObjectArg[keyArg]}` | ||||
|     ); | ||||
|     const fileTreeArray = await plugins.smartfile.fs.listFileTree(cwdArg, keyArg); | ||||
|     let absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute( | ||||
|       fileTreeArray, | ||||
|       cwdArg | ||||
|     ); | ||||
|     let destDir: string = plugins.smartpath.transform.toAbsolute( | ||||
|       globStringObjectArg[keyArg], | ||||
|       cwdArg | ||||
|     ); | ||||
|     tsOptionsArg = { | ||||
|       ...tsOptionsArg, | ||||
|       outDir: destDir | ||||
|     }; | ||||
|     compiledFiles = compiledFiles.concat( | ||||
|       compiledFiles, | ||||
|       await compileFileArray(absoluteFilePathArray, tsOptionsArg) | ||||
|     ); | ||||
|   for (const keyArg in globStringObjectArg) { | ||||
|     if(globStringObjectArg[keyArg]) { | ||||
|       console.log( | ||||
|         `TypeScript assignment: transpile from ${keyArg} to ${globStringObjectArg[keyArg]}` | ||||
|       ); | ||||
|       const fileTreeArray = await plugins.smartfile.fs.listFileTree(cwdArg, keyArg); | ||||
|       let absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute( | ||||
|         fileTreeArray, | ||||
|         cwdArg | ||||
|       ); | ||||
|       let destDir: string = plugins.smartpath.transform.toAbsolute( | ||||
|         globStringObjectArg[keyArg], | ||||
|         cwdArg | ||||
|       ); | ||||
|       tsOptionsArg = { | ||||
|         ...tsOptionsArg, | ||||
|         outDir: destDir | ||||
|       }; | ||||
|       compiledFiles = compiledFiles.concat( | ||||
|         compiledFiles, | ||||
|         await compileFileArray(absoluteFilePathArray, tsOptionsArg, argvArg) | ||||
|       ); | ||||
|     } | ||||
|   } | ||||
|   return compiledFiles; | ||||
| }; | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| import * as smartcli from '@pushrocks/smartcli'; | ||||
| import * as smartfile from '@pushrocks/smartfile'; | ||||
| import * as smartpath from '@pushrocks/smartpath'; | ||||
| import * as smartpromise from '@pushrocks/smartpromise'; | ||||
| import * as typescript from 'typescript'; | ||||
|  | ||||
| export { smartfile, smartpath, smartpromise, typescript }; | ||||
| export { smartcli, smartfile, smartpath, smartpromise, typescript }; | ||||
|   | ||||
							
								
								
									
										18
									
								
								tslint.json
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								tslint.json
									
									
									
									
									
								
							| @@ -1,3 +1,17 @@ | ||||
| { | ||||
|     "extends": "tslint-config-standard" | ||||
| } | ||||
|   "extends": ["tslint:latest", "tslint-config-prettier"], | ||||
|   "rules": { | ||||
|     "semicolon": [true, "always"], | ||||
|     "no-console": false, | ||||
|     "ordered-imports": false, | ||||
|     "object-literal-sort-keys": false, | ||||
|     "member-ordering": { | ||||
|       "options":{ | ||||
|         "order": [ | ||||
|           "static-method" | ||||
|         ] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "defaultSeverity": "warning" | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user