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