UNPKG

@auttam/easycli

Version:

A quick and easy way of creating cli for your npm package.

41 lines (40 loc) 1.65 kB
"use strict"; 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;