UNPKG

@schemifyjs/cli

Version:
30 lines (29 loc) 1.02 kB
import { Command } from 'commander'; import { registerHelpCommand } from './commands/help.command.js'; import { registerVersionCommand } from './commands/version.command.js'; import { registerGenerateCommand } from './commands/generate/generate.command.js'; import { registerNewCommand } from './commands/new/new.command.js'; export class CLIArgumentParser { constructor() { this.program = new Command(); this.setupConfiguration(); this.setupCommands(); } setupConfiguration() { this.program.showHelpAfterError(true); } setupCommands() { registerHelpCommand(this.program); registerVersionCommand(this.program); registerNewCommand(this.program); registerGenerateCommand(this.program); } async parse(argv = process.argv) { const userArgs = argv.slice(2); if (userArgs.length === 0) { this.program.outputHelp(); process.exit(0); } await this.program.parseAsync(argv); } }