0.0.11 • Published 5 years ago

x-command-parser v0.0.11

Weekly downloads
15
License
MIT
Repository
github
Last release
5 years ago

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;
}
0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago