diff --git a/packages/prompts/src/index.ts b/packages/prompts/src/index.ts index 937409d..87fa502 100644 --- a/packages/prompts/src/index.ts +++ b/packages/prompts/src/index.ts @@ -177,16 +177,13 @@ interface Option { export interface SelectOptions[], Value extends Primitive> { message: string; options: Options; - initialValue?: Options[number]['value']; + initialValue?: Value; } export const select = [], Value extends Primitive>( opts: SelectOptions ) => { - const opt = ( - option: Options[number], - state: 'inactive' | 'active' | 'selected' | 'cancelled' - ) => { + const opt = (option: Option, state: 'inactive' | 'active' | 'selected' | 'cancelled') => { const label = option.label ?? String(option.value); if (state === 'active') { return `${color.green(S_RADIO_ACTIVE)} ${label} ${ @@ -221,14 +218,14 @@ export const select = [], Value extends Primitive> } } }, - }).prompt() as Promise; + }).prompt() as Promise; }; export const selectKey = [], Value extends string>( opts: SelectOptions ) => { const opt = ( - option: Options[number], + option: Option, state: 'inactive' | 'active' | 'selected' | 'cancelled' = 'inactive' ) => { const label = option.label ?? String(option.value); @@ -269,21 +266,21 @@ export const selectKey = [], Value extends string> } } }, - }).prompt() as Promise; + }).prompt() as Promise; }; export interface MultiSelectOptions[], Value extends Primitive> { message: string; options: Options; - initialValues?: Options[number]['value'][]; + initialValues?: Value[]; required?: boolean; - cursorAt?: Options[number]['value']; + cursorAt?: Value; } export const multiselect = [], Value extends Primitive>( opts: MultiSelectOptions ) => { const opt = ( - option: Options[number], + option: Option, state: 'inactive' | 'active' | 'selected' | 'active-selected' | 'submitted' | 'cancelled' ) => { const label = option.label ?? String(option.value); @@ -387,21 +384,21 @@ export const multiselect = [], Value extends Primi } } }, - }).prompt() as Promise; + }).prompt() as Promise; }; export interface GroupMultiSelectOptions[], Value extends Primitive> { message: string; options: Record; - initialValues?: Options[number]['value'][]; + initialValues?: Value[]; required?: boolean; - cursorAt?: Options[number]['value']; + cursorAt?: Value; } export const groupMultiselect = [], Value extends Primitive>( opts: GroupMultiSelectOptions ) => { const opt = ( - option: Options[number], + option: Option, state: | 'inactive' | 'active' @@ -411,7 +408,7 @@ export const groupMultiselect = [], Value extends | 'group-active-selected' | 'submitted' | 'cancelled', - options: Options[number][] = [] as any + options: Option[] = [] ) => { const label = option.label ?? String(option.value); const isItem = typeof (option as any).group === 'string'; @@ -531,7 +528,7 @@ export const groupMultiselect = [], Value extends } } }, - }).prompt() as Promise; + }).prompt() as Promise; }; const strip = (str: string) => str.replace(ansiRegex(), '');