express-generator-typescript-k8s
Version:
Generate a new Express applications similar to express-generate with Kubernetes client and Typescript configured.
87 lines (75 loc) • 3.63 kB
JavaScript
#!/usr/bin/env node
/**
* Create new express-generator-typescript project.
*
* originally created by Sean Maxwell, 5/31/2019
* enhanced w/ k8s by jkremser
*/
const version = require('../package.json').version;
const url = require('../package.json').homepage;
const path = require('path');
const chalk = require('chalk');
const expressGenTs = require('../lib/express-generator-typescript-k8s');
const expressBanner = [
` _ `,
` _____ ___ __ _ __ ___ ___ ___ (_)___`,
` / _ \\ \\/ / '_ \\| '__/ _ \\/ __/ __| | / __|`,
` | __/> <| |_) | | | __/\\__ \\__ \\_ | \\__ \\`,
` \\___/_/\\_\\ .__/|_| \\___||___/___(_)/ |___/`,
` |_| |__/ `
];
const k8sBanner = [
``,
` | | | `,
` | / | | __ \\ _ \\ __| __ \\ _ \\ __| _ \\ __| `,
` < | | | | __/ | | | __/ | __/\\__ \\ `,
` _|\\_\\\\__,_|_.__/ \\___|_| _| _|\\___|\\__|\\___|____/ `,
``
];
const tsBanner = [
`_________ _______ _______ _______ _______ _______ _________ _______ _________`,
`\\__ __/|\\ /|( ____ )( ____ \\( ____ \\( ____ \\( ____ )\\__ __/( ____ )\\__ __/`,
` ) ( ( \\ / )| ( )|| ( \\/| ( \\/| ( \\/| ( )| ) ( | ( )| ) ( `,
` | | \\ (_) / | (____)|| (__ | (_____ | | | (____)| | | | (____)| | | `,
` | | \\ / | _____)| __) (_____ )| | | __) | | | _____) | | `,
` | | ) ( | ( | ( ) || | | (\\ ( | | | ( | | `,
` | | | | | ) | (____/\\/\\____) || (____/\\| ) \\ \\_____) (___| ) | | `,
` )_( \\_/ |/ (_______/\\_______)(_______/|/ \\__/\\_______/|/ )_( `
];
const happy = [
` _ _ _ _ `,
` | | | | | | (_) `,
` | |__ __ _ _ __ _ __ _ _ | |__ __ _ ___| | ___ _ __ __ _ `,
` | '_ \\ / _\` | '_ \\| '_ \\| | | | | '_ \\ / _\` |/ __| |/ / | '_ \\ / _\` |`,
` | | | | (_| | |_) | |_) | |_| | | | | | (_| | (__| <| | | | | (_| |`,
` |_| |_|\\__,_| .__/| .__/ \\__, | |_| |_|\\__,_|\\___|_|\\_\\_|_| |_|\\__, |`,
` | | | | __/ | __/ |`,
` |_| |_| |___/ |___/ `
];
expressBanner.forEach(line => console.log(chalk.yellow(line)));
tsBanner.forEach(line => console.log(chalk.blue(line)));
k8sBanner.forEach(line => console.log(chalk.cyan(line)));
console.log(' URL: ' + chalk.green(url));
console.log('Version: ' + chalk.green(version));
console.log();
let destination;
let openAPI = false;
if (process.argv[2] === '--openAPI') {
openAPI = true;
destination = getDest(process.argv[3]);
} else {
destination = getDest(process.argv[2]);
}
console.log('Setting up new Express+TypeScript+Kubernetes project...');
expressGenTs(destination, openAPI).then(() => {
console.log('Project setup complete!');
console.log('');
happy.forEach(line => console.log(chalk.red(line)));
console.log('Continue with:');
console.log(chalk.green(`cd ${destination} && npm install && npm run start:dev`));
console.log('');
});
function getDest(destFolder) {
destFolder = (destFolder || 'express-gen-ts-k8s');
return path.join(process.cwd(), destFolder);
}