An inquirer select that supports multiple selections and filtering.
npm install inquirer-select-proAn inquirer select that supports multiple selections and filtering/searching.
``bash`
pnpm i inquirer-select-pro
`bash`
npm i inquirer-select-pro
`bash`
npx @jeffwcx/gitignore

> A CLI to generate a .gitignore file: @jeffwcx/gitignore.
`ts`
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
options: async (input) => {
const res = await fetch('
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});
`ts`
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select...',
mutiple: false,
options: [
{ name: 'Apple', value: 'apple' },
{ name: 'Banana', value: 'banana' },
],
});
Clear the filter input when the option is selected (also causes the option list to change).
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.
`ts`
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
confirmDelete: true,
options: async (input) => {
const res = await fetch('
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});
An inquirer select that supports multiple selections and filtering
#### Parameters
- config _SelectProps_ _\
#### Returns
_CancelablePromise_ _\
#### Examples
`ts`
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select',
options: async (input) => {
const res = await fetch('
body: new URLSearchParams({ keyword: input }),
});
if (!res.ok) throw new Error('fail to get list!');
return await res.json();
},
});
> [!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
`typescript`
declare function useSelect
props: UseSelectOptions
): UseSelectReturnValue
#### Parameters
- props _UseSelectOptions__\
#### Returns
#### Type
`ts`
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:
selectedOptions: ReadonlyArray
allOptions: ReadonlyArray
) => string;
emptyText: (text: string) => string;
placeholder: (text: string) => string;
};
helpMode: 'always' | 'never' | 'auto';
};
#### Examples
`ts${text}...
await renderPrompt({
message,
placeholder: 'search',
options: () => top100Films,
pageSize: 2,
instructions: false,
theme: {
icon: {
inputCursor: 'filter: ',
checked: ' √',
unchecked: ' ',
},
style: {
placeholder: (text: string) => ,`
},
},
});
The appearance is as follows:
`
? Choose movie:
filter: The Shawshank Redemption (1994)
> √ The Shawshank Redemption (1994)
The Godfather (1972)
`
1. Fork the project
2. Start development
`bash`
git clone https://github.com/yourname/inquirer-select-pro.git
cd inquirer-select-pro
pnpm iCreate a branch
git checkout -b my-new-featureDevelop
pnpm devBuild
pnpm buildTest
pnpm test
> [!NOTE]
> Running pnpm dev actually allows you to specify the demo directly.
Here is a list of available demos:
- local
- remote
- filter-remote
- filter-local
`bash`
pnpm dev filter-remote
Parameters can also be fixed. The following parameters can be fixed:
- filter
- clearInputWhenSelected
- required
- loop
- multiple
- canToggleAll
- confirmDelete
- selectFocusedOnSubmit
`bash`
pnpm dev filter-demo --multiple=false
3. Commit changes to your branch git commit -am 'Add some feature'
4. Push your branch git push origin my-new-feature`
5. Submit a pull request