bod
Version:
Boilerplate CLI App
35 lines (34 loc) • 1.47 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
const node_path_1 = tslib_1.__importDefault(require("node:path"));
const node_process_1 = tslib_1.__importDefault(require("node:process"));
const index_1 = require("./index");
const utils_1 = require("./utils");
const packageJsonPath = node_path_1.default.join(__dirname, '../package.json');
const packageJson = JSON.parse(node_fs_1.default.readFileSync(packageJsonPath, { encoding: 'utf-8' }));
utils_1.program.version((_a = packageJson.version) !== null && _a !== void 0 ? _a : '0.0.1', '-v, --version');
for (const command of index_1.CommandFactory.values()) {
utils_1.program
.command(command.getUsage())
.alias(command.getAlias())
.description(command.getDescription())
.action((appName) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try {
yield command.run(appName);
}
catch (error) {
utils_1.printer.error(error);
utils_1.program.outputHelp();
}
}));
}
utils_1.program.on('--help', () => {
utils_1.printer.log('');
utils_1.printer.info(` Run ${utils_1.color.cyan(`bod <command> --help`)} for detailed usage of given command.`);
utils_1.printer.log('');
});
utils_1.program.showHelpAfterError();
utils_1.program.parse(node_process_1.default.argv);