@ainc/script
Version:
Script compiler for typescript
75 lines • 1.71 kB
TypeScript
/**
*****************************************
* 解析规则
*****************************************
*/
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