UNPKG

basic-express-app

Version:

simple cli to generate a basic express scaffolding with minimal tmplate

72 lines (62 loc) 1.64 kB
#!/usr/bin/env node /** @format */ const argv = require("minimist")(process.argv.slice(2)) const { newCommand } = require("./helpers/command") const { writeFileSync } = require("fs") const chalk = require("chalk") const figlet = require("figlet") const Listr = require("listr") const { installPackages } = require("./helpers/packageinstaller") const { serverGen, gitIgnoreGen } = require("./helpers/templateGenerator") const { getPackageManager, getProjectName, } = require("./helpers/inquire.helpers") const main = async () => { console.log( chalk.yellow( figlet.textSync("BASIC EXPRESS APP", { horizontalLayout: "full" }) ) ) let project_name = argv._[0] if (!project_name) { project_name = await getProjectName() } project_name = project_name.toLowerCase() const package_manager = await getPackageManager() const cwd = process.cwd() + `/${project_name}` try { const task = new Listr([ { title: "initialize project directory", task: async () => newCommand( `mkdir ${project_name} && cd ${project_name} && ${package_manager} init -y` ), }, { title: "installing dependencies", task: async () => await installPackages(package_manager, cwd), }, { title: "scarfolding templates", task: () => { newCommand(`cd ${project_name} && mkdir src`) serverGen(cwd) writeFileSync(cwd + `/.env.local`, "PORT=5000") }, }, { title: "initializing git repository", task: () => { newCommand(`cd ${project_name} && git init`) gitIgnoreGen(cwd) }, }, ]) await task.run() } catch (error) { console.log(error) } } main()