3.8 KiB
3.8 KiB
@inquirer/input
Interactive free text input component for command line interfaces. Supports validation, filtering, transformation, etc.
Installation
npm | yarn |
---|---|
|
|
Or | |
|
|
Usage
import { input } from '@inquirer/prompts';
// Or
// import input from '@inquirer/input';
const answer = await input({ message: 'Enter your name' });
Options
Property | Type | Required | Description |
---|---|---|---|
message | string |
yes | The question to ask |
default | string |
no | Default value if no answer is provided (clear it by pressing backspace) |
required | boolean |
no | Defaults to false . If set to true, undefined (empty) will not be accepted for this. |
transformer | (string, { isFinal: boolean }) => string |
no | Transform/Format the raw value entered by the user. Once the prompt is completed, isFinal will be true . This function is purely visual, modify the answer in your code if needed. |
validate | string => boolean | string | Promise<boolean | string> |
no | On submit, validate the filtered answered content. When returning a string, it'll be used as the error message displayed to the user. Note: returning a rejected promise, we'll assume a code error happened and crash. |
theme | See Theming | no | Customize look of the prompt. |
Theming
You can theme a prompt by passing a theme
object option. The theme object only need to includes the keys you wish to modify, we'll fallback on the defaults for the rest.
type Theme = {
prefix: string;
spinner: {
interval: number;
frames: string[];
};
style: {
answer: (text: string) => string;
message: (text: string) => string;
error: (text: string) => string;
defaultAnswer: (text: string) => string;
};
};
License
Copyright (c) 2023 Simon Boudrias (twitter: @vaxilart)
Licensed under the MIT license.