UNPKG

@auttam/easycli

Version:

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

38 lines (37 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.commandDecoratorFactory = void 0; const program_config_1 = require("../config/program-config"); const command_config_1 = require("../config/command-config"); const settings_1 = require("../settings"); function commandDecoratorFactory(commandDefinition) { return function (target, propertyName, descriptor) { if (!settings_1.SettingStore.enableCommands) return; var config = program_config_1.ProgramConfiguration.injectConfiguration(target); config.decoratorsEnabled = true; if (!commandDefinition) { commandDefinition = {}; } var command = config.commands.get(propertyName); if (!command) { command = new command_config_1.Command({ name: commandDefinition.name, method: propertyName, help: commandDefinition.help }); command.params.initByMethod(descriptor.value); } if (commandDefinition.params && commandDefinition.params.length) { var params = commandDefinition.params; command.params.mergeByConfigs(params); } if (commandDefinition.options && commandDefinition.options.length) { commandDefinition.options.forEach(definition => { command.options.addByAny(definition); }); } config.commands.addByCommand(command); }; } exports.commandDecoratorFactory = commandDecoratorFactory;