@inquirer/editor
Prompt that'll open the user preferred editor with default content and allow for a convenient multi-line input controlled through the command line.
Installation
npm | yarn |
---|
npm install @inquirer/prompts
|
yarn add @inquirer/prompts
|
Or |
npm install @inquirer/editor
|
yarn add @inquirer/editor
|
Usage
import { editor } from '@inquirer/prompts';
const answer = await editor({
message: 'Enter a description',
});
Options
Property | Type | Required | Description |
---|
message | string | yes | The question to ask |
default | string | no | Default value which will automatically be present in the editor |
validate | string => boolean | string | Promise<boolean | string> | no | On submit, validate the 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. |
postfix | string | no (default to .txt ) | The postfix of the file being edited. Adding this will add color highlighting to the file content in most editors. |
file | IFileOptions | no | Exposes the external-editor package options to configure the temporary file. |
waitForUseInput | boolean | no (default to true ) | Open the editor automatically without waiting for the user to press enter. Note that this mean the user will not see the question! So make sure you have a default value that provide guidance if it's unclear what input is expected. |
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 | { idle: string; done: string };
spinner: {
interval: number;
frames: string[];
};
style: {
message: (text: string, status: 'idle' | 'done' | 'loading') => string;
error: (text: string) => string;
help: (text: string) => string;
key: (text: string) => string;
};
};
License
Copyright (c) 2023 Simon Boudrias (twitter: @vaxilart)
Licensed under the MIT license.