64 lines
4.1 KiB
Markdown
64 lines
4.1 KiB
Markdown
# `@inquirer/select`
|
|
|
|
Simple interactive command line prompt to display a list of choices (single select.)
|
|
|
|

|
|
|
|
# Installation
|
|
|
|
```sh
|
|
npm install @inquirer/select
|
|
|
|
yarn add @inquirer/select
|
|
```
|
|
|
|
# Usage
|
|
|
|
```js
|
|
import select, { Separator } from '@inquirer/select';
|
|
|
|
const answer = await select({
|
|
message: 'Select a package manager',
|
|
choices: [
|
|
{
|
|
name: 'npm',
|
|
value: 'npm',
|
|
description: 'npm is the most popular package manager',
|
|
},
|
|
{
|
|
name: 'yarn',
|
|
value: 'yarn',
|
|
description: 'yarn is an awesome package manager',
|
|
},
|
|
new Separator(),
|
|
{
|
|
name: 'jspm',
|
|
value: 'jspm',
|
|
disabled: true,
|
|
},
|
|
{
|
|
name: 'pnpm',
|
|
value: 'pnpm',
|
|
disabled: '(pnpm is not available)',
|
|
},
|
|
],
|
|
});
|
|
```
|
|
|
|
## Options
|
|
|
|
| Property | Type | Required | Description |
|
|
| -------- | ---------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| message | `string` | yes | The question to ask |
|
|
| choices | `Array<{ value: string, name?: string, description?: string, disabled?: boolean \| string } \| Separator>` | yes | List of the available choices. The `value` will be returned as the answer, and used as display if no `name` is defined. Choices who're `disabled` will be displayed, but not selectable. The `description` will be displayed under the prompt when the cursor land over the choice. |
|
|
| default | `string` | no | Defines in front of which item the cursor will initially appear. When omitted, the cursor will appear on the first selectable item. |
|
|
| pageSize | `number` | no | By default, lists of choice longer than 7 will be paginated. Use this option to control how many choices will appear on the screen at once. |
|
|
| loop | `boolean` | no | Defaults to `true`. When set to `false`, the cursor will be constrained to the top and bottom of the choice list without looping. |
|
|
|
|
The `Separator` object can be used 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.
|
|
|
|
# License
|
|
|
|
Copyright (c) 2023 Simon Boudrias (twitter: [@vaxilart](https://twitter.com/Vaxilart))<br/>
|
|
Licensed under the MIT license.
|