0.1.0-alpha • Published 8 years ago

prompto v0.1.0-alpha

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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 promptoobject 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 candidate
  • callback(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.

Dependencies

License

MIT