base-questions
Plugin for base-methods that adds methods for prompting the user and storing the answers on a project-by-project basis.
(TOC generated by verb using markdown-toc)
Install
Install with npm:
$ npm i base-questions --save
Usage
Try running the actual examples if it helps to see the following example in action.
var questions = require('base-questions');
var assemble = require('assemble-core');
var store = require('base-store');
var argv = require('base-argv');
var app = assemble();
app.use(store());
app.use(argv());
var argv = app.argv(process.argv.slice(2));
app.use(questions(app, argv.options));
app.task('ask', function (cb) {
app.ask(function (err, answers) {
if (err) return cb(err);
console.log(answers);
cb();
});
});
app.task('a', function (cb) {
console.log('task > a!');
cb();
});
app.task('b', function (cb) {
console.log('task > b!');
cb();
});
app.task('c', function (cb) {
console.log('task > c!');
cb();
});
app.task('choices', function (cb) {
app.choices('run', ['a', 'b', 'c'], function (err, answers) {
if (err) return cb(err);
if (!answers.run.length) return cb();
app.build(answers.run, cb);
});
});
app.build('choices', function(err) {
if (err) return console.log(err);
console.log('done!');
});
API
Create a "choices" question from an array.
Params
queue
{String|Array}: Name or array of question names.options
{Object|Function}: Question options or callback functioncallback
{Function}: callback function
Example
app.choices('foo', ['a', 'b', 'c']);
app.choices('foo', {
message: 'Favorite letter?',
choices: ['a', 'b', 'c']
});
app.ask('foo', function(err, answer) {
console.log(answer);
});
Add a question to be asked at a later point.
Params
value
{Object|String}: Question object, message (string), or options object.locale
{String}: Optionally pass the locale to use, otherwise the default locale is used.returns
{Object}: Returns the app.questions
object, for chaining
Example
app.question('beverage', 'What is your favorite beverage?');
app.question('beverage', {
type: 'input',
message: 'What is your favorite beverage?'
});
app.question({
name: 'beverage'
type: 'input',
message: 'What is your favorite beverage?'
});
Ask one or more questions, with the given options
and callback.
Params
queue
{String|Array}: Name or array of question names.options
{Object|Function}: Question options or callback functioncallback
{Function}: callback function
Example
app.ask(function(err, answers) {
console.log(answers);
});
app.ask(['name', 'description'], function(err, answers) {
console.log(answers);
});
Related projects
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Author
Jon Schlinkert
License
Copyright © 2016 Jon Schlinkert
Released under the MIT license.
This file was generated by verb on January 14, 2016.