x-command-parser

command line parser

Usage no npm install needed!

<script type="module">
  import xCommandParser from 'https://cdn.skypack.dev/x-command-parser';
</script>

README

command

node command line parser

| 类型 | 说明 | 值 | :- | :- | :- | boolean | 布尔(开关) | yestruenofalse | | string | 字符串 | | | int | 整形 | 123 | | float | 浮点 | 1.23 | | array | 数组 | | | enum | 枚举 | |

API

/**
 * 枚举类型参数的有效值
 */
declare type IEnumParmType = string | number | boolean;
export interface IParam {
    /**
     * 参数名
     */
    name: string;
    /**
     * 别名(可选)
     */
    alias?: string;
    /**
     * 参数类型
     */
    type: 'boolean' | 'string' | 'int' | 'float' | 'file' | 'enum' | 'array';
    /**
     * 参数说(可选)
     */
    comment?: string;
    /**
     * 默认值,指定了默认值的都是可选
     */
    default?: boolean | string | number;
    /**
     * 枚举类型参数的有效值
     */
    list?: IEnumParmType[];
}
export declare type SubCommandType = (args: string[]) => number;
export declare type SubCommandTypeAsync = (args: string[]) => Promise<number>;
export default class Commands {
    private params;
    private args;
    private subCmds;
    private options;
    private isAutoShowHelp;
    /**
     * 初始化
     * @param autoShowHelp 解析发生错误时是否自动显示帮助
     */
    constructor(autoShowHelp?: boolean);
    /**
     * 解析好的参数
     */
    readonly Options: {
        [key: string]: any;
    };
    /**
     * 其他任何无法识别的 输入参数
     */
    readonly Args: string[];
    addSubCommand(name: string, desc: string, cmd: SubCommandType, isDefault?: boolean): Commands;
    addAsyncSubCommand(name: string, desc: string, cmd: SubCommandTypeAsync, isDefault?: boolean): Commands;
    /**
     * 添加参数
     * @param opt
     */
    addParam(opt: IParam): Commands;
    /**
     * 显示帮助
     */
    showHelp(): void;
    private autoShowHelp;
    parseAsync(args?: string[]): Promise<Commands>;
    readonly hasDefaultCommand: boolean;
    /**
     * 解析命令行参数
     */
    parse(...args: string[]): Commands;
    private parseCmdLine;
}