standardization
This commit is contained in:
parent
a7180f9e50
commit
91869b3183
@ -20,13 +20,8 @@ const pkg = JSON.parse (fs.readFileSync ('package.json', 'utf-8'));
|
||||
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.execSync ('yarn test', { stdio: 'inherit' });
|
||||
child_process.execSync ('yarn compile', { stdio: 'inherit' });
|
||||
|
||||
child_process.exec ('git log -1 | grep \'\\[no publish\\]\'')
|
||||
.addListener ('exit', (code) => {
|
||||
|
@ -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'));
|
||||
if (use_ts) {
|
||||
await apply_template (tsconfig, path.join (folder, 'tsconfig.json'));
|
||||
await apply_template (
|
||||
eslintignore_ts,
|
||||
eslintignore,
|
||||
path.join (folder, '.eslintignore')
|
||||
);
|
||||
if (use_ts) {
|
||||
await apply_template (tsconfig, path.join (folder, 'tsconfig.json'));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
"typescript": "^3.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scode/standard": "^1.0.1",
|
||||
"enquirer": "^2.3.5",
|
||||
"fs-extra": "^9.0.0",
|
||||
"license": "^1.0.3"
|
||||
|
@ -54,6 +54,11 @@
|
||||
eslint-plugin-node "^11.0.0"
|
||||
eslint-plugin-sort-requires-by-path "^1.0.2"
|
||||
|
||||
"@scode/standard@^1.0.1":
|
||||
version "1.0.3"
|
||||
resolved "https://npm.scode.ovh/@scode%2fstandard/-/standard-1.0.3.tgz#39147b46e62e222555626302fdfb5f2986c5ffbe"
|
||||
integrity sha512-cxeuAn8zmqTRa5i9sbQP74lRRdywl2bEg4Nl72rE+MOeAI06VzBPirxwSOiKr2ZUaFNGe/tTk1cIdiI4cYAIiQ==
|
||||
|
||||
"@types/color-name@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user