UNPKG

exponic

Version:

A lightning-fast CLI for scaffolding Node.js and Express.js projects.

50 lines (43 loc) 1.37 kB
import chalk from 'chalk'; import fs from 'fs/promises'; import { basicControllerText } from '../contents/controller.js'; import { checkFileExisting, extensionToName, pathJoiner, } from '../utils/helper.js'; export class GenerateController { constructor(program) { this.program = program; } generateBasicController() { this.program .command('controller') .description('Generate a new controller') .argument('<fileName>', 'Name of the file to generate') .action(async (fileName) => { const isExist = await checkFileExisting(fileName, 'controller'); if (isExist) return console.log(chalk.red('File is already existing!')); console.log( chalk.magenta( `Generating a new controller: ${chalk.bold(fileName)}...` ) ); try { await fs.mkdir(pathJoiner('controllers'), { recursive: true }); const filePath = `controllers/${extensionToName( fileName, 'Controller' )}`; fs.writeFile(pathJoiner(filePath), basicControllerText(fileName)); console.log( chalk.blue( `Controller ${chalk.bold(fileName)} has been created Successfully` ) ); } catch (err) { console.error(chalk.red(err.message)); } }); } }