UNPKG

@nu-art/commando

Version:
28 lines (27 loc) 922 B
import { Primitive, TypeOfTypeAsString } from '@nu-art/ts-common'; export type CliParams<T extends BaseCliParam<string, any>[]> = { [K in T[number]['keyName']]: NonNullable<Extract<T[number], { keyName: K; }>['defaultValue']>; }; export type DependencyParam<T extends Primitive | Primitive[]> = { param: BaseCliParam<string, T>; value: T; }; export type BaseCliParam<K extends string, V extends Primitive | Primitive[]> = { keys: string[]; keyName: K; type: TypeOfTypeAsString<V>; description: string; name?: string; options?: string[]; defaultValue?: V; process?: (value?: string, defaultValue?: V) => V; isArray?: true; group?: string; dependencies?: DependencyParam<any>[]; }; export type CliParam<K extends string, V extends Primitive | Primitive[]> = BaseCliParam<K, V> & { name: string; process: (value?: string, defaultValue?: V) => V; };