UNPKG

@schemifyjs/cli

Version:
33 lines (32 loc) 1.2 kB
import { Command } from 'commander'; import { withErrorHandling } from './utils/error-handler.js'; 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) { await withErrorHandling(async () => { const userArgs = argv.slice(2); if (userArgs.length === 0) { this.program.outputHelp(); process.exit(0); } await this.program.parseAsync(argv); }, 'Failed to parse CLI arguments'); } }