UNPKG

express-api-template

Version:
40 lines (33 loc) 1.09 kB
#!/usr/bin/env node import inquirer from "inquirer"; import fs from "fs"; import { dirname } from "path"; import { fileURLToPath } from "url"; import createDirectoryContents from "./createDirectoryContents.js"; const CURR_DIR = process.cwd(); const __dirname = dirname(fileURLToPath(import.meta.url)); const CHOICES = fs.readdirSync(`${__dirname}/templates`); const QUESTIONS = [ { name: "project-choice", type: "list", message: "What project template would you like to generate?", choices: CHOICES, }, { name: "project-name", type: "input", message: "Project name:", validate: function (input) { if (/^([A-Za-z\-\\_\d])+$/.test(input)) return true; else return "Project name may only include letters, numbers, underscores and hashes."; }, }, ]; inquirer.prompt(QUESTIONS).then((answers) => { const projectChoice = answers["project-choice"]; const projectName = answers["project-name"]; const templatePath = `${__dirname}/templates/${projectChoice}`; fs.mkdirSync(`${CURR_DIR}/${projectName}`); createDirectoryContents(templatePath, projectName); });