standardization
This commit is contained in:
		| @@ -1,7 +1,9 @@ | ||||
| /* eslint-disable max-len */ | ||||
|  | ||||
| import { files } from '@scode/standard'; | ||||
|  | ||||
| const general = { jenkinsfile: '' }; | ||||
| const node = { jenkinsfile: '', js: '' }; | ||||
| const node = { jenkinsfile: files.jenkinsfile, js: files.jenkins }; | ||||
|  | ||||
| general.jenkinsfile = `pipeline { | ||||
|   agent any | ||||
| @@ -44,62 +46,4 @@ general.jenkinsfile = `pipeline { | ||||
| } | ||||
| `; | ||||
|  | ||||
| node.jenkinsfile = `pipeline { | ||||
|   agent any | ||||
|  | ||||
|   environment { | ||||
|       VERSION = VersionNumber([ | ||||
|           versionNumberString: | ||||
|               '\${BUILDS_ALL_TIME}', | ||||
|           versionPrefix: '1.0.', | ||||
|           worstResultForIncrement: 'SUCCESS' | ||||
|       ]) | ||||
|   } | ||||
|  | ||||
|   stages { | ||||
|       stage('Building') { | ||||
|           steps { | ||||
|               script { | ||||
|                   currentBuild.displayName = env.VERSION | ||||
|               } | ||||
|               sh 'yarn ci \${VERSION}' | ||||
|           } | ||||
|       } | ||||
|   } | ||||
| } | ||||
| `; | ||||
|  | ||||
| node.js = `/* eslint-disable no-process-exit */ | ||||
| /* eslint-disable no-console */ | ||||
| /* eslint-disable no-sync */ | ||||
| 'use strict'; | ||||
|  | ||||
| const fs = require ('fs'); | ||||
| const child_process = require ('child_process'); | ||||
|  | ||||
| const pkg = JSON.parse (fs.readFileSync ('package.json', 'utf-8')); | ||||
| [ | ||||
|   ,, pkg.version | ||||
| ] = process.argv; | ||||
| fs.writeFileSync ('package.json', JSON.stringify (pkg, null, 2)); | ||||
|  | ||||
| child_process.execSync ('yarn lint', { stdio: 'inherit' }); | ||||
| if (typeof pkg.scripts !== 'undefined' && typeof pkg.scripts.test === 'string') | ||||
|   child_process.execSync ('yarn test', { stdio: 'inherit' }); | ||||
| if ( | ||||
|   typeof pkg.scripts !== 'undefined' | ||||
|   && typeof pkg.scripts.compile === 'string' | ||||
| ) | ||||
|   child_process.execSync ('yarn compile', { stdio: 'inherit' }); | ||||
|  | ||||
| child_process.exec ('git log -1 | grep \\'\\\\[no publish\\\\]\\'') | ||||
|   .addListener ('exit', (code) => { | ||||
|     if (code === 0) { | ||||
|       console.log ('build not marked for deployment'); | ||||
|       process.exit (1); | ||||
|     } | ||||
|     else { child_process.execSync ('yarn publish'); } | ||||
|   }); | ||||
| `; | ||||
|  | ||||
| export { general, node }; | ||||
|   | ||||
| @@ -59,8 +59,8 @@ const tsconfig = `{ | ||||
| } | ||||
| `; | ||||
|  | ||||
| const eslintignore_ts = `/dist/ | ||||
| const eslintignore = `/dist/ | ||||
| *.d.ts | ||||
| `; | ||||
|  | ||||
| export { eslintrc, gitignore, npmrc, tsconfig, eslintrc_ts, eslintignore_ts }; | ||||
| export { eslintrc, gitignore, npmrc, tsconfig, eslintrc_ts, eslintignore }; | ||||
|   | ||||
| @@ -12,9 +12,37 @@ import { apply_template, modify_json, run_command } from '../../Helper'; | ||||
|  | ||||
| import { | ||||
|   eslintrc, gitignore, npmrc, | ||||
|   tsconfig, eslintrc_ts, eslintignore_ts | ||||
|   tsconfig, eslintrc_ts, eslintignore | ||||
| } from './Assets'; | ||||
|  | ||||
| /** | ||||
|  * initialize the package.json | ||||
|  * | ||||
|  * @param {string} folder folder | ||||
|  */ | ||||
| async function init_package (folder: string): Promise<void> { | ||||
|   await modify_json ((obj: Record<string, unknown>) => { | ||||
|     const scripts | ||||
|      = { | ||||
|        lint:    'eslint . --ext .js,.jsx,.ts,.tsx,.vue,.mjs', | ||||
|        test:    'nyc ava', | ||||
|        compile: 'tsc --allowJs --declaration --emitDeclarationOnly index.js' | ||||
|      }; | ||||
|     const files = [ 'LICENSE' ]; | ||||
|     if (use_ts) { | ||||
|       scripts.compile = 'tsc'; | ||||
|       scripts.test = 'tsc && nyc ava'; | ||||
|       files.push ('/dist/'); | ||||
|     } | ||||
|     else { | ||||
|       files.push ('*.js', '*.d.ts'); | ||||
|     } | ||||
|     obj.scripts = scripts; | ||||
|     obj.files = files; | ||||
|     return obj; | ||||
|   }, path.join (folder, 'package.json')); | ||||
| } | ||||
|  | ||||
| export default class Node implements Snippet { | ||||
|   public async start (): Promise<void> { | ||||
|     const folder = await new Input ( | ||||
| @@ -31,12 +59,12 @@ export default class Node implements Snippet { | ||||
|     await apply_template (eslintrc, path.join (folder, '.eslintrc.js')); | ||||
|     await apply_template (npmrc, path.join (folder, '.npmrc')); | ||||
|     await apply_template (gitignore, path.join (folder, '.gitignore')); | ||||
|     await apply_template ( | ||||
|       eslintignore, | ||||
|       path.join (folder, '.eslintignore') | ||||
|     ); | ||||
|     if (use_ts) { | ||||
|       await apply_template (tsconfig, path.join (folder, 'tsconfig.json')); | ||||
|       await apply_template ( | ||||
|         eslintignore_ts, | ||||
|         path.join (folder, '.eslintignore') | ||||
|       ); | ||||
|       await apply_template ( | ||||
|         eslintrc_ts, | ||||
|         path.join (folder, 'lib', '.eslintrc.js') | ||||
| @@ -51,16 +79,6 @@ export default class Node implements Snippet { | ||||
|       folder | ||||
|     ); | ||||
|  | ||||
|     await modify_json ((obj: Record<string, unknown>) => { | ||||
|       obj.scripts = { | ||||
|         lint: 'eslint . --ext .js,.jsx,.ts,.tsx,.vue,.mjs', | ||||
|         test: 'nyc ava' | ||||
|       }; | ||||
|       if (use_ts) { | ||||
|         (obj.scripts as Record<string, unknown>).compile = 'tsc'; | ||||
|         (obj.scripts as Record<string, unknown>).test = 'tsc && nyc ava'; | ||||
|       } | ||||
|       return obj; | ||||
|     }, path.join (folder, 'package.json')); | ||||
|     await init_package (folder); | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user