JSPM

  • Created
  • Published
  • Downloads 11383018
  • Score
    100M100P100Q334613F
  • License MIT

Inquirer rawlist prompt

Package Exports

  • @inquirer/rawlist

Readme

@inquirer/rawlist

Simple interactive command line prompt to display a raw list of choices (single value select) with minimal interaction.

rawlist prompt

Installation

npm yarn
npm install @inquirer/prompts
yarn add @inquirer/prompts
Or
npm install @inquirer/rawlist
yarn add @inquirer/rawlist

Usage

import { rawlist } from '@inquirer/prompts';
// Or
// import rawlist from '@inquirer/rawlist';

const answer = await rawlist({
  message: 'Select a package manager',
  choices: [
    { name: 'npm', value: 'npm' },
    { name: 'yarn', value: 'yarn' },
    { name: 'pnpm', value: 'pnpm' },
  ],
});

Options

Property Type Required Description
message string yes The question to ask
choices Choice[] yes List of the available choices.
theme See Theming no Customize look of the prompt.

Separator objects can be used in the choices array to render non-selectable lines in the choice list. By default it'll render a line, but you can provide the text as argument (new Separator('-- Dependencies --')). This option is often used to add labels to groups within long list of options.

Choice object

The Choice object is typed as

type Choice<Value> = {
  value: Value;
  name?: string;
  short?: string;
  key?: string;
};

Here's each property:

  • value: The value is what will be returned by await select().
  • name: This is the string displayed in the choice list.
  • short: Once the prompt is done (press enter), we'll use short if defined to render next to the question. By default we'll use name.
  • key: The key of the choice. Displayed as key) name.

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;
    highlight: (text: string) => string;
  };
};

License

Copyright (c) 2023 Simon Boudrias (twitter: @vaxilart)
Licensed under the MIT license.