Inquire parameters
To inquire parameters you must add the configuration in prompts field. This an array with customized parameters:
"prompts": [
{
"type": "input",
"name": "param1",
"message": "What is the value of param1"
}, {
"type": "input",
"name": "param2",
"message": "What is the value of param2"
}, {
"type": "input",
"name": "param3",
"message": "What is the value of param3"
}
]
NOTE: Is possible to disable all inquires using --disablePrompts on command line or including disablePrompts=true on any piscosour configuration way.
See inquirer library for more information.
Fields configuration
The fields to configure each parameter are:
type field
This is the type of the prompt.
- (String|Function) type is expected
- Optional. Default is
input - Possible values:
input,confirm,list,rawlist,expand,checkbox,password,editor
name field
Name of the this new prompt.
- String type is expected.
- Mandatory
message field
The question to print. If defined as a function, the first parameter will be the current inquirer session answers.
- (String|Function) type expected
- Mandatory
env field
A environment variable name, if it exists it will get its value and not prompt to the user about it.
- String type expected
- Optional
required field
If it an optional parameters or not.
- Boolean type expected
- Optional
default field
Default value(s) to use if nothing is entered, or a function that returns the default value(s). If defined as a function, the first parameter will be the current inquirer session answers.
- (String|Number|Array|Function) type expected
- Optional
choices
Choices array or a function returning a choices array. If defined as a function, the first parameter will be the current inquirer session answers. Array values can be simple strings, or objects containing a name (to display in list), a value (to save in the answers hash) and a short (to display after selection) properties. The choices array can also contain a Separator.
- (Array|Function) type expected
- Optional
validate field
Receive the user input and should return true if the value is valid, and an error message (String) otherwise. If false is returned, a default error message is provided.
- Function type expected
filter field
Receive the user input and return the filtered value to be used inside the program. The value returned will be added to the Answers hash.
- Function type expected
when field
Receive the current user answers hash and should return true or false depending on whether or not this question should be asked. The value can also be a simple boolean.
(Function, Boolean) type expected
pageSize field
Change the number of lines that will be rendered when using list, rawList, expand or checkbox.
- Number type expected
Function type
With the prefix # and followed by a function name (#functionName), it is possible to assign functions to some fields (check, validate, choices, ...)
Example:
{
"prompts": [
{
"type": "input",
"name": "param1",
"message": "#randomMessage"
}
]
}
Then in a step:
module.exports = {
randomMessage: function() {
const randomChoice = arr => {
const randIndex = Math.floor(Math.random() * arr.length);
return arr[randIndex];
};
return randomChoice([
'Lorem Ipsum',
'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet',
'consectetur',
'adipisci velit']);
}
}
Will return a random message to the User:
$ recipe-sample-randomMessage ::testRandomMessage
[15:10:51] Execution contexts: [ contextTest ]
[15:10:52]
Starting | testRandom | [ contextTest::testRandomMessage ]
? Neque porro quisquam est qui dolorem ipsum quia dolor sit amet