prompto
v0.1.0-alpha
Published
Manage Q&A throught the node console
Downloads
2
Maintainers
Readme
Prompto.js
Manage questions and answers throught the node console
Installation
$ npm install prompto
Features
- Async queue of questions
- Support Array of Objects as choices
- Dynamic selections
- Answer storage
Quick Examples
var prompto = require('../index.js');
whatName = prompto.question({
type: 'input',
message: 'What is your name ?'
});
whatGender = prompto.question({
type: 'list',
message: 'What is your gender ?',
choices: ['male', 'female']
})
prompto.start([whatName, whatGender], function(err){
if (err) return console.error(err);
var prefix = (whatGender.lastAnswer() === 'male') ? 'Mister' : 'Miss';
console.log('Welcome ' + prefix + ' ' + whatName.lastAnswer() + '!');
});
Documentation
The required prompto
object has two properties : question
and start
.
prompto.question(properties)
Creates a new question
with the given properties
. See properties.
Example
whatName = prompto.question({
type: 'input',
message: 'What is your name ?',
required: true
});
whatGender = prompto.question({
type: 'list',
message: 'What is your gender ?',
choices: ['male', 'female']
});
prompto.start(candidates, callback)
Creates a queue object of candidates. Questions added to the queue are processed in series.
When all questions are completed, that callback
is called.
Arguments
candidates
- Can be a candidate or a array of candidates. See candidatecallback(err)
- An error callback to run once all the questions have completed.
Example
prompto.start([whatName, whatGender], function(err){
if (err) return console.error(err);
var prefix = (whatGender.lastAnswer() === 'male') ? 'Mister' : 'Miss';
console.log('Welcome ' + prefix + ' ' + whatName.lastAnswer() + '!');
});
Properties
message
string
The question to print.
type
string
There are 3 different types of question : input
, confirm
, list
.
Input {type: 'input'}
Confirm {type: 'confirm'}
List {type: 'list'}
choices
array<choice>
An array of choices. A choice must be an object with properties. Choices can also be passed with candidate. See candidate.
default
string
An default value for answer. Works with input
and confirm
type.
For confirm
type, the value must be "true"
or "false"
.
required
boolean
If this property is set to true
then the question will be asked again if the answer is empty.
preFn
function(selector)
The selector object has properties that allow you to perform dynamic selections.
selector.addEach(property)
property
string The property of each choice you declare as label for selection.
postFn
function(lastAnswer, prompter)
The prompter object has properties that allow you to manage the question's queue.
prompter.push(candidates)
candidates
- See candidates.
prompter.pause()
- A function that pauses the question's queue until resume() is called.
prompter.resume()
- A function that resumes the processing when the queue is paused.