@auttam/easycli
Version:
A quick and easy way of creating cli for your npm package.
41 lines (40 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.programDecoratorFactory = void 0;
const program_config_1 = require("../config/program-config");
function programDecoratorFactory(programDefinition, cbExecPromise) {
return function (targetConstructor) {
if (programDefinition) {
let config = program_config_1.ProgramConfiguration.injectConfiguration(targetConstructor.prototype);
config.decoratorsEnabled = true;
config.merge({
name: programDefinition.name,
help: programDefinition.help,
binaryName: programDefinition.binaryName,
version: programDefinition.version,
});
if (programDefinition.params && programDefinition.params.length) {
var params = programDefinition.params;
config.params.mergeByConfigs(params);
}
if (programDefinition.options && programDefinition.options.length) {
programDefinition.options.forEach(definition => {
config.options.addByAny(definition);
});
}
if (programDefinition.autorun === false) {
return;
}
}
try {
var progPromise = targetConstructor.run(new targetConstructor());
if (typeof cbExecPromise == "function") {
cbExecPromise(progPromise);
}
}
catch (ex) {
console.log(ex);
}
};
}
exports.programDecoratorFactory = programDecoratorFactory;