UNPKG

@ainc/script

Version:

Script compiler for typescript

75 lines 1.71 kB
/** ***************************************** * 解析规则 ***************************************** */ interface Rule { type: 'array' | 'string' | 'number' | 'boolean'; name: string; alias?: string; default?: unknown; description?: string; } /** ***************************************** * 解析规则 ***************************************** */ declare type Rules = TypedRecord<Partial<Rule>>; /** ***************************************** * 选项类型 ***************************************** */ interface Types { array: string[]; string: string; number: number; boolean: boolean; } /** ***************************************** * 配置类型 ***************************************** */ declare type TypedData<T> = { [K in keyof T]?: T[K] extends { type: keyof Types; } ? Types[T[K]['type']] : unknown; }; /** ***************************************** * 解数对象 ***************************************** */ export declare type Argv<T> = TypedData<T> & { argv: string[]; }; /** ***************************************** * 信息 ***************************************** */ export interface Info { name: string; usage?: string; version?: string; description?: string; } /** ***************************************** * 参数解析器 ***************************************** */ export declare class Parser<T extends Rules> { /** 解析器配置 */ private rules; /** 初始化对象 */ constructor(options: T); /** 解析参数 */ parse(argv: string[]): Argv<T>; /** 打印帮助信息 */ print(info: Info): void; } export {}; //# sourceMappingURL=argv.d.ts.map