UNPKG

28.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"command.js","sourceRoot":"","sources":["command.ts"],"names":[],"mappings":"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","sourcesContent":["import Option from \"./option\";\nimport Argument from \"./argument\";\nimport { CommandpostError, ErrorReason } from \"./error\";\n\nimport * as utils from \"./utils\";\n\n// jsdoc, see constructor.\nexport default class Command<Opt, Arg> {\n /**\n * @private\n */\n _description?: string;\n /**\n * @private\n */\n _usage?: string;\n /**\n * @private\n */\n _help = new Option(\"-h, --help\", \"display help\");\n /**\n * @private\n */\n _version?: Option;\n /**\n * @private\n */\n _versionStr?: string;\n /**\n * @private\n */\n _action: (opts: Opt, args: Arg, rest: string[]) => any;\n\n /**\n * e.g. -abc --foo bar\n * @private\n */\n _rawArgs?: string[];\n /**\n * e.g. -a -b -c --foo bar\n * @private\n */\n _args?: string[];\n /**\n * e.g. bar\n * @private\n */\n _rest: string[] = [];\n\n /**\n * @private\n */\n _allowUnknownOption?: boolean;\n\n /**\n * parent command.\n */\n parent?: Command<any, any>;\n /**\n * name of this command.\n */\n name: string;\n\n /**\n * e.g.\n * ```\n * git -p clone git@github.com:vvakame/dtsm.git\n * ↑ this!\n * ```\n * @type {Array}\n */\n options: Option[] = [];\n /**\n * e.g.\n * ```\n * git -p clone git@github.com:vvakame/dtsm.git\n * ↑ this!\n * ```\n * @type {Array}\n */\n subCommands: Command<any, any>[] = [];\n /**\n * e.g.\n * ```\n * git -p clone git@github.com:vvakame/dtsm.git\n * ↑ this!\n * ```\n * @type {Array}\n */\n args: Argument[];\n\n /**\n * parsed option values.\n * @type {any}\n */\n parsedOpts: Opt = <any>{};\n /**\n * parsed option arguments.\n * @type {any}\n */\n parsedArgs: Arg = <any>{};\n\n /**\n * unknown options.\n * @type {Array}\n */\n unknownOptions: string[] = [];\n\n /**\n * class of command.\n * ```\n * cmd -v sub --path foo/bar buzz.txt\n * ↑ this one!\n * ```\n * @param name name and flags pass flags pass 'foo'(sub command) or 'foo <bar>'(sub command & required argument) or 'foo [bar]'(sub command & optional argument) or 'foo <bar...>'(sub command & required variadic argument) or 'foo [bar...]'(sub command & optional variadic argument).\n * @class\n */\n constructor(name: string) {\n let args = name.split(/\\s+/);\n this.name = args.shift()!;\n\n let findOptional = false;\n let findVariadic = false;\n this.args = args.map(argStr => {\n if (findVariadic) {\n throw new CommandpostError({\n parts: [argStr],\n message: \"parameter can not placed after variadic parameter\",\n reason: ErrorReason.ParameterCantPlacedAfterVariadic,\n });\n }\n let arg = new Argument(argStr);\n if (arg.required && findOptional) {\n throw new CommandpostError({\n parts: [argStr],\n message: \"parameter can not placed after variadic parameter\",\n reason: ErrorReason.ParameterCannPlacedAfterOptional,\n });\n }\n if (!arg.required) {\n findOptional = true;\n }\n if (arg.variadic) {\n findVariadic = true;\n }\n return arg;\n });\n\n this._action = () => {\n process.stdout.write(this.helpText() + \"\\n\");\n };\n }\n\n /**\n * set description for this command.\n * @param desc\n * @returns {Command}\n * @method\n */\n description(desc: string): Command<Opt, Arg> {\n this._description = desc;\n return this;\n }\n\n /**\n * set usage for this command.\n * @param usage\n * @returns {Command}\n * @method\n */\n usage(usage: string): Command<Opt, Arg> {\n this._usage = usage;\n return this;\n }\n\n /**\n * add option for this command.\n * see {@link Option}.\n * @param flags\n * @param description\n * @param defaultValue\n * @returns {Command}\n */\n option(flags: string, description?: string, defaultValue?: any): Command<Opt, Arg> {\n let option = new Option(flags, description, defaultValue);\n this.options.push(option);\n return this;\n }\n\n /**\n * allow unknown option.\n * by default, An error occured if unknown option is included.\n * @param flag\n * @returns {Command}\n */\n allowUnknownOption(flag = true): Command<Opt, Arg> {\n this._allowUnknownOption = flag;\n return this;\n }\n\n /**\n * add action at this command selected.\n * @param fn\n * @returns {Command}\n */\n action(fn: (opts: Opt, args: Arg, rest: string[]) => any): Command<Opt, Arg> {\n this._action = fn;\n return this;\n }\n\n /**\n * create sub command.\n * @param name\n * @returns {Command<Opt2, Arg2>} new command instance\n */\n subCommand<Opt2, Arg2>(name: string): Command<Opt2, Arg2> {\n let command = new Command<Opt2, Arg2>(name);\n command.parent = this;\n this.subCommands.push(command);\n return command;\n }\n\n /**\n * check arg is matches this command.\n * @param arg\n * @returns {boolean}\n */\n is(arg: string) {\n return this.name === arg;\n }\n\n /**\n * add help this option.\n * in general case, use default help option.\n * @param flags\n * @param description\n * @returns {Command}\n */\n help(flags: string, description: string) {\n this._help = new Option(flags, description);\n return this;\n }\n\n /**\n * add show version option to this command.\n * @param version\n * @param flags\n * @param description\n * @returns {Command}\n */\n version(version: string, flags: string, description: string = \"output the version number\"): Command<Opt, Arg> {\n this._version = new Option(flags, description);\n this._versionStr = version;\n return this;\n }\n\n /**\n * exec action of command.\n * this method MUST call after parse process.\n * @returns {Promise<{}>}\n */\n exec(): Promise<{}> {\n return Promise.resolve(this._action(this.parsedOpts, this.parsedArgs, this._rest));\n }\n\n /**\n * parse argv.\n * @param argv\n * @returns {Promise<{}>}\n */\n parse(argv: string[]): Promise<{}> {\n return Promise\n .resolve(null)\n .then(() => {\n let rest = this._parseRawArgs(argv);\n // resolve help action\n if (this._args!.some(arg => this._help.is(arg))) {\n // include help option. (help for this command\n process.stdout.write(this.helpText() + \"\\n\");\n process.exit(0);\n\n return Promise.resolve({});\n }\n let subCommand: Command<any, any>;\n if (this.parent == null) {\n // only for top level (why? because I can't decide which is natural syntax between `foo help bar buzz` and `foo bar help buzz`.\n if (this._rest.some(arg => this._help.name() === arg)) {\n // include help sub command. (help for deeper level sub command\n if (rest[0]) {\n subCommand = this.subCommands.filter(cmd => cmd.is(rest[0]))[0];\n if (subCommand) {\n process.stdout.write(subCommand.helpText() + \"\\n\");\n process.exit(0);\n\n return Promise.resolve({});\n }\n }\n // TODO raise error? pass through?\n }\n }\n // resolve version option\n if (this._version && this._args!.some(arg => this._version!.is(arg))) {\n process.stdout.write((this._versionStr || \"unknown\") + \"\\n\");\n process.exit(0);\n\n return Promise.resolve({});\n }\n\n if (rest[0]) {\n subCommand = this.subCommands.filter(cmd => cmd.is(rest[0]))[0];\n if (subCommand) {\n return subCommand.parse(rest.slice(1));\n }\n }\n return this.exec();\n });\n }\n\n /**\n * @returns {*}\n * @private\n */\n _getAncestorsAndMe(): Command<any, any>[] {\n if (!this.parent) {\n return [this];\n } else {\n return this.parent._getAncestorsAndMe().concat([this]);\n }\n }\n\n /**\n * @param args\n * @returns {string[]}\n * @private\n */\n _parseRawArgs(args: string[]) {\n args = args.slice(0);\n let target: string[] = [];\n let rest: string[] = [];\n\n for (let i = 0; i < args.length; i++) {\n let arg = args[i];\n if (arg === \"--\") {\n // Honor option terminator\n target = target.concat(args.slice(i));\n break;\n }\n let cmd = this.subCommands.filter(cmd => cmd.is(arg))[0];\n if (cmd) {\n rest = args.slice(i);\n break;\n }\n target.push(arg);\n }\n\n this._rawArgs = target.slice(0);\n this._args = this._normalize(target);\n this._rest = this._parseOptions(this._args);\n let cmds = this._getAncestorsAndMe();\n let allowUnknownOption = cmds.reverse().map(cmd => cmd._allowUnknownOption).filter(allowUnknownOption => typeof allowUnknownOption !== \"undefined\")[0];\n if (this.unknownOptions.length !== 0 && !allowUnknownOption) {\n let errMsg = \"unknown option\";\n errMsg += this.unknownOptions.length === 1 ? \" \" : \"s \";\n errMsg += this.unknownOptions.join(\", \") + \"\\n\";\n errMsg += this.helpText();\n throw new CommandpostError({\n message: errMsg,\n reason: ErrorReason.UnknownOption,\n parts: this.unknownOptions,\n params: {\n origin: this,\n args,\n },\n });\n }\n if (this._matchSubCommand(rest)) {\n return rest;\n }\n this._rest = this._parseArgs(this._rest);\n\n return rest;\n }\n\n /**\n * @param rest\n * @returns {boolean}\n * @private\n */\n _matchSubCommand(rest: string[]): boolean {\n if (rest == null || !rest[0]) {\n return false;\n }\n let subCommand = this.subCommands.filter(cmd => cmd.is(rest[0]))[0];\n return !!subCommand;\n }\n\n /**\n * @param args\n * @returns {string[]}\n * @private\n */\n _parseOptions(args: string[]) {\n args = args.slice(0);\n let rest: string[] = [];\n let processedOptions: Option[] = [];\n while (args.length !== 0) {\n let arg = args.shift()!;\n if (arg === \"--\") {\n rest = rest.concat(args);\n break;\n }\n let opt = this.options.filter(opt => opt.is(arg))[0];\n if (!opt) {\n rest.push(arg);\n if (arg.indexOf(\"-\") === 0 && !this._help.is(arg) && (!this._version || !this._version.is(arg))) {\n this.unknownOptions.push(arg);\n }\n continue;\n }\n args = opt.parse(this.parsedOpts, [arg].concat(args));\n processedOptions.push(opt);\n }\n this.options\n .filter(opt => processedOptions.indexOf(opt) === -1)\n .forEach(opt => {\n let optName = utils.kebabToLowerCamelCase(opt.name());\n if (opt.required || opt.optional) {\n // string[]\n (<any>this.parsedOpts)[optName] = (<any>this.parsedOpts)[optName] || [];\n if (opt.defaultValue) {\n (<any>this.parsedOpts)[optName].push(opt.defaultValue);\n }\n } else {\n (<any>this.parsedOpts)[optName] = opt.defaultValue;\n }\n });\n return rest;\n }\n\n /**\n * @param rest\n * @returns {string[]}\n * @private\n */\n _parseArgs(rest: string[]) {\n rest = rest.slice(0);\n this.args.forEach(argInfo => {\n rest = argInfo.parse(this.parsedArgs, rest);\n });\n return rest;\n }\n\n /**\n * @param args\n * @returns {string[]}\n * @private\n */\n _normalize(args: string[]): string[] {\n let result: string[] = [];\n for (let i = 0; i < args.length; i++) {\n let arg = args[i];\n let lastOpt: Option | undefined;\n if (0 < i) {\n lastOpt = this.options.filter(opt => opt.is(args[i - 1]))[0];\n }\n if (arg === \"--\") {\n // Honor option terminator\n result = result.concat(args.slice(i));\n break;\n } else if (lastOpt && lastOpt.required) {\n result.push(arg);\n } else if (/^-[^-]/.test(arg)) {\n // expand combined short hand option. \"-abc\" to \"-a -b -c\"\n arg.slice(1).split(\"\").forEach(c => result.push(\"-\" + c));\n } else if (/^--/.test(arg) && arg.indexOf(\"=\") !== -1) {\n result.push(arg.slice(0, arg.indexOf(\"=\")), arg.slice(arg.indexOf(\"=\") + 1));\n } else {\n result.push(arg);\n }\n }\n return result;\n }\n\n /**\n * generate help text.\n * @returns {string}\n */\n helpText(): string {\n let result = \"\";\n if (this._description) {\n result += this._description + \"\\n\\n\";\n }\n // usage part\n result += \" Usage: \";\n if (this._usage != null) {\n result += this._usage;\n } else {\n result += this._getAncestorsAndMe().map(cmd => cmd.name).join(\" \") + \" \";\n if (this.options.length !== 0) {\n result += \"[options] \";\n }\n if (this.subCommands.length !== 0) {\n result += \"[command] \";\n }\n if (this.args.length !== 0) {\n result += \"[--] \";\n result += this.args.map(arg => {\n if (arg.required) {\n return \"<\" + arg.name + (arg.variadic ? \"...\" : \"\") + \">\";\n } else {\n return \"[\" + arg.name + (arg.variadic ? \"...\" : \"\") + \"]\";\n }\n }).join(\" \");\n }\n }\n result += \"\\n\\n\";\n\n // options part\n if (this.options.length !== 0) {\n result += \" Options:\\n\\n\";\n let optionsMaxLength = utils.maxLength(this.options.map(opt => opt.flags));\n result += this.options.map(opt => {\n let result = \" \";\n result += utils.pad(opt.flags, optionsMaxLength);\n result += \" \";\n result += opt.description || \"\";\n result += \"\\n\";\n return result;\n }).join(\"\");\n result += \"\\n\\n\";\n }\n\n // sub commands part\n if (this.subCommands.length !== 0) {\n result += \" Commands:\\n\\n\";\n let subCommandsMaxLength = utils.maxLength(this.subCommands.map(cmd => cmd.name));\n result += this.subCommands.map(cmd => {\n let result = \" \";\n result += utils.pad(cmd.name, subCommandsMaxLength);\n result += \" \";\n result += cmd._description || \"\";\n result += \"\\n\";\n return result;\n }).join(\"\");\n result += \"\\n\\n\";\n }\n\n return result;\n }\n}\n"]}
\No newline at end of file