@schemifyjs/cli
Version:
Official CLI for SchemifyJS.
33 lines (32 loc) • 1.2 kB
JavaScript
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');
}
}