inquirer-select-pro v1.0.0-alpha.9
inquirer-select-pro
An inquirer select that supports multiple selections and filtering/searching.
Install
pnpm i inquirer-select-pronpm i inquirer-select-proTry now?
npx @jeffwcx/gitignoreA CLI to generate a
.gitignorefile: @jeffwcx/gitignore.
Usage
Multiple selection and async data source
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
options: async (input) => {
const res = await fetch('<url>', {
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});Radio mode
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select...',
mutiple: false,
options: [
{ name: 'Apple', value: 'apple' },
{ name: 'Banana', value: 'banana' },
],
});clearInputWhenSelected
Clear the filter input when the option is selected (also causes the option list to change).
confirmDelete(multiple only)
The first time you try the delete key, it will focus on the option to be deleted, and the second time it will remove the focused option.
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
confirmDelete: true,
options: async (input) => {
const res = await fetch('<url>', {
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});API
select()
An inquirer select that supports multiple selections and filtering
Parameters
configSelectProps \<Value, Multiple>
Returns
CancelablePromise \
Examples
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
options: async (input) => {
const res = await fetch('<url>', {
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});useSelect()
!WARNING This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
Type
declare function useSelect<Value, Multiple extends boolean>(
props: UseSelectOptions<Value, Multiple>,
): UseSelectReturnValue<Value>;Parameters
propsUseSelectOptions\<Value, Multiple>
Returns
Theming
Type
export type SelectTheme = {
prefix: string;
spinner: {
interval: number;
frames: string[];
};
icon: {
checked: string;
unchecked: string;
cursor: string;
inputCursor: string;
};
style: {
answer: (text: string) => string;
message: (text: string) => string;
error: (text: string) => string;
help: (text: string) => string;
highlight: (text: string) => string;
key: (text: string) => string;
disabledOption: (text: string) => string;
renderSelectedOptions: <T>(
selectedOptions: ReadonlyArray<SelectOption<T>>,
allOptions: ReadonlyArray<SelectOption<T> | Separator>,
) => string;
emptyText: (text: string) => string;
placeholder: (text: string) => string;
};
helpMode: 'always' | 'never' | 'auto';
};Examples
await renderPrompt({
message,
placeholder: 'search',
options: () => top100Films,
pageSize: 2,
instructions: false,
theme: {
icon: {
inputCursor: 'filter: ',
checked: ' √',
unchecked: ' ',
},
style: {
placeholder: (text: string) => `${text}...`,
},
},
});The appearance is as follows:
? Choose movie:
filter: The Shawshank Redemption (1994)
> √ The Shawshank Redemption (1994)
The Godfather (1972)How to contribute?
Fork the project
Start development
git clone https://github.com/yourname/inquirer-select-pro.git
cd inquirer-select-pro
pnpm i
# Create a branch
git checkout -b my-new-feature
# Develop
pnpm dev
# Build
pnpm build
# Test
pnpm test!NOTE Running
pnpm devactually allows you to specify the demo directly.
Here is a list of available demos:
- local
- remote
- filter-remote
- filter-local
pnpm dev filter-remoteParameters can also be fixed. The following parameters can be fixed:
- filter
- clearInputWhenSelected
- required
- loop
- multiple
- canToggleAll
- confirmDelete
- selectFocusedOnSubmit
pnpm dev filter-demo --multiple=falseCommit changes to your branch
git commit -am 'Add some feature'Push your branch
git push origin my-new-featureSubmit a pull request
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago