An inquirer select that supports filtering/searching and multiple selections.
MIT License
An inquirer select that supports multiple selections and filtering/searching.
pnpm i inquirer-select-pro
npm i inquirer-select-pro
npx @jeffwcx/gitignore
A CLI to generate a
.gitignore
file: @jeffwcx/gitignore.
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();
},
});
import { select } from 'inquirer-select-pro';
const answer = await select({
message: 'select...',
mutiple: false,
options: [
{ name: 'Apple', value: 'apple' },
{ name: 'Banana', value: 'banana' },
],
});
An inquirer select that supports multiple selections and filtering
config
SelectProps <Value, Multiple>
CancelablePromise <Value>
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();
},
});
[!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.
declare function useSelect<Value, Multiple extends boolean>(
props: UseSelectOptions<Value, Multiple>,
): UseSelectReturnValue<Value>;
props
UseSelectOptions<Value, Multiple>
UseSelectReturnValue<Value>
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';
};
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)
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 dev
actually allows you to specify the demo directly.
Here is a list of available demos:
pnpm dev filter-remote
Parameters can also be fixed. The following parameters can be fixed:
pnpm dev filter-demo --multiple=false
Commit changes to your branch git commit -am 'Add some feature'
Push your branch git push origin my-new-feature
Submit a pull request