You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
3.6 KiB
151 lines
3.6 KiB
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;
|
|
|