UNPKG

ariaa

Version:
54 lines 1.78 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); import { createArgument, createCommand, createOption } from "commander"; class Command { constructor(options) { this.options = options; } static { __name(this, "Command"); } parse() { const parsedOptions = this.parseOptions(); const command = createCommand(this.options.name).description(this.options.description ?? "").action((...args) => this.options.run(...args)); if (this.options.args) { for (const { name, description, default: def } of this.options.args) { const arg = createArgument(name, description).default(def).argOptional(); command.addArgument(arg); } } if (parsedOptions) { for (const [flag, description, defaultValue] of parsedOptions) { const option = createOption(flag, description).default(defaultValue); command.addOption(option); } } command.option("--verbose", "Verbose"); if (this.options.alias) command.alias(this.options.alias); return command; } parseOptions() { let flags = ""; const parsedOptions = []; if (!this.options.flags) return; for (const option of this.options.flags) { const { shortFlags, longFlags, rawFlags, description, default: def } = option; if (shortFlags) { flags += `-${shortFlags}, `; } if (longFlags) { flags += `--${longFlags}`; } if (rawFlags) flags = rawFlags; flags = flags.trim(); flags = flags.endsWith(",") ? flags.slice(0, -1) : flags; parsedOptions.push([flags, description, def]); flags = ""; } return parsedOptions; } } export { Command }; //# sourceMappingURL=Command.js.map