Prompt
The
prompt
action can prompt the user for input when applying a preset. There are 2 prompt types available. The default is a text prompt. A select prompt can be requested by supplying achoices
property.
Text prompt
Call the prompt
function in the handler
:
export default definePreset({
// ...
handler: async () => {
await prompt({ name: 'name', text: 'What is your name?' })
}
})
Options
name
Defines the property name of the prompts
context object in which the answer to the prompt will be stored.
text
Defines the text that will be displayed in the console when asking for input.
default
Defines the default value for the prompt if the answer is skipped or if the terminal is not interactive.
Examples
Ask for a project name and use the target directory's name as the default value
await prompt({
title: 'prompt project name',
name: 'name',
text: 'What is the name of the project?',
default: path.parse(context.applyOptions.targetDirectory).name,
})
Interface
interface PromptOptions {
name: string;
text: string;
default?: string;
}
Select prompt
Call the prompt
function in the handler
with the choices
option:
export default definePreset({
// ...
handler: async () => {
await prompt({
name: 'choice',
text: 'What is your choice?',
choices: ['first', 'second']
})
}
})
Options
name
Defines the property name of the prompts
context object in which the answer to the prompt will be stored.
title
Defines the text that will be displayed in the console when asking for input.
text
Defines the text that will be displayed as a hint in the console.
initial
Defines the index of the initial choice. This will be used if the answer is skipped or if the terminal is not interactive.
Examples
Choose a testing library from the selected choices
await prompt({
title: 'Choose a testing library',
name: 'testing',
text: 'Choose between mocha, vitest or jest',
choices: [
{ title: 'Mocha', value: 'mocha' },
{ title: 'vitest'},
'jest',
],
initial: 0,
})
Interface
type PromptChoice = { title: string, value?: string } | string
interface SelectPromptOptions {
name: string
text: string
initial?: number
choices: [PromptChoice]
}