Spaces:
Runtime error
Runtime error
import { EventEmitter } from "events"; | |
interface BasePromptOptions { | |
name: string | (() => string) | |
type: string | (() => string) | |
message: string | (() => string) | (() => Promise<string>) | |
initial?: any | |
required?: boolean | |
format?(value: string): string | Promise<string> | |
result?(value: string): string | Promise<string> | |
skip?: ((state: object) => boolean | Promise<boolean>) | boolean | |
validate?(value: string): boolean | Promise<boolean> | string | Promise<string> | |
onSubmit?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise<boolean> | |
onCancel?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise<boolean> | |
stdin?: NodeJS.ReadStream | |
stdout?: NodeJS.WriteStream | |
} | |
interface Choice { | |
name: string | |
message?: string | |
value?: string | |
hint?: string | |
disabled?: boolean | string | |
} | |
interface ArrayPromptOptions extends BasePromptOptions { | |
type: | |
| 'autocomplete' | |
| 'editable' | |
| 'form' | |
| 'multiselect' | |
| 'select' | |
| 'survey' | |
| 'list' | |
| 'scale' | |
choices: string[] | Choice[] | |
maxChoices?: number | |
muliple?: boolean | |
initial?: number | |
delay?: number | |
separator?: boolean | |
sort?: boolean | |
linebreak?: boolean | |
edgeLength?: number | |
align?: 'left' | 'right' | |
scroll?: boolean | |
} | |
interface BooleanPromptOptions extends BasePromptOptions { | |
type: 'confirm' | |
initial?: boolean | |
} | |
interface StringPromptOptions extends BasePromptOptions { | |
type: 'input' | 'invisible' | 'list' | 'password' | 'text' | |
initial?: string | |
multiline?: boolean | |
} | |
interface NumberPromptOptions extends BasePromptOptions { | |
type: 'numeral' | |
min?: number | |
max?: number | |
delay?: number | |
float?: boolean | |
round?: boolean | |
major?: number | |
minor?: number | |
initial?: number | |
} | |
interface SnippetPromptOptions extends BasePromptOptions { | |
type: 'snippet' | |
newline?: string | |
template?: string | |
} | |
interface SortPromptOptions extends BasePromptOptions { | |
type: 'sort' | |
hint?: string | |
drag?: boolean | |
numbered?: boolean | |
} | |
type PromptOptions = | |
| BasePromptOptions | |
| ArrayPromptOptions | |
| BooleanPromptOptions | |
| StringPromptOptions | |
| NumberPromptOptions | |
| SnippetPromptOptions | |
| SortPromptOptions | |
declare class BasePrompt extends EventEmitter { | |
constructor(options?: PromptOptions); | |
render(): void; | |
run(): Promise<any>; | |
} | |
declare class Enquirer<T = object> extends EventEmitter { | |
constructor(options?: object, answers?: T); | |
/** | |
* Register a custom prompt type. | |
* | |
* @param type | |
* @param fn `Prompt` class, or a function that returns a `Prompt` class. | |
*/ | |
register(type: string, fn: typeof BasePrompt | (() => typeof BasePrompt)): this; | |
/** | |
* Register a custom prompt type. | |
*/ | |
register(type: { [key: string]: typeof BasePrompt | (() => typeof BasePrompt) }): this; | |
/** | |
* Prompt function that takes a "question" object or array of question objects, | |
* and returns an object with responses from the user. | |
* | |
* @param questions Options objects for one or more prompts to run. | |
*/ | |
prompt( | |
questions: | |
| PromptOptions | |
| ((this: Enquirer) => PromptOptions) | |
| (PromptOptions | ((this: Enquirer) => PromptOptions))[] | |
): Promise<T>; | |
/** | |
* Use an enquirer plugin. | |
* | |
* @param plugin Plugin function that takes an instance of Enquirer. | |
*/ | |
use(plugin: (this: this, enquirer: this) => void): this; | |
} | |
declare namespace Enquirer { | |
function prompt<T = object>( | |
questions: | |
| PromptOptions | |
| ((this: Enquirer) => PromptOptions) | |
| (PromptOptions | ((this: Enquirer) => PromptOptions))[] | |
): Promise<T>; | |
class Prompt extends BasePrompt {} | |
} | |
export = Enquirer; | |