[READ-ONLY] Mirror of https://github.com/bombshell-dev/clack. Effortlessly build beautiful command-line apps bomb.sh/docs/clack/basics/getting-started/
cli command-line command-line-app node prompt prompts
5

Configure Feed

Select the types of activity you want to include in your feed.

feat(@clack/prompts): builder prompts util

Bruno Rocha (Aug 10, 2023, 6:39 PM -0300) 07e91d2b c9b49f35

+33
+33
packages/prompts/src/index.ts
··· 767 767 768 768 return results; 769 769 }; 770 + 771 + class PromptBuilder<TResults extends Record<string, unknown> = {}> { 772 + private results = {} as TResults; 773 + 774 + add<TKey extends string, TResult extends Promise<unknown>>( 775 + key: TKey extends keyof TResults ? never : TKey, 776 + prompt: (data: { results: Prettify<PromptGroupAwaitedReturn<TResults>> }) => TResult 777 + ): PromptBuilder< 778 + { 779 + [Key in keyof TResults]: Key extends TKey ? TResult : TResults[Key]; 780 + } & { 781 + [Key in TKey]: TResult; 782 + } 783 + > { 784 + // @ts-ignore 785 + this.results[key] = prompt; 786 + // @ts-ignore 787 + return this; 788 + } 789 + 790 + async run(): Promise<Prettify<PromptGroupAwaitedReturn<TResults>>> { 791 + for (const [key, prompt] of Object.entries(this.results)) { 792 + // @ts-ignore 793 + this.results[key] = await prompt({ results: this.results }); 794 + } 795 + // @ts-ignore 796 + return this.results; 797 + } 798 + } 799 + 800 + export const builder = () => { 801 + return new PromptBuilder(); 802 + };