ask-when
v0.1.7
Published
Conditionally prompt the user based on options. For use with Base applications or question-store.
Downloads
5,269
Maintainers
Readme
ask-when
Conditionally prompt the user based on options. For use with Base applications or question-store.
Table of Contents
(TOC generated by verb using markdown-toc)
Install
Install with npm:
$ npm install --save ask-when
Usage
var askWhen = require('ask-when');
var questions = require('base-questions');
var Base = require('base');
var app = new Base({isApp: true});
// register plugins
app.use(questions());
app.use(askWhen());
API
askWhen
The main export is a function that can be passed to .use()
, if you want to register this as a plugin.
app.askWhen(name, options, cb);
Params
name
{String}: question nameoptions
{Object|Function}: Callback, or options object. If options, an "answer" value may be passed onoptions[name]
.cb
{Function}: callback
Prerequisites
- base-questions: the
base-questions
plugin must be registered beforeask-when
is registered isApp
must be defined on the instance (either defineapp.isApp = true
, or pass{isApp: true}
to the constructor. This prevents the plugin from loading on invalid instances):
Register the plugin
var askWhen = require('ask-when');
var questions = require('base-questions');
var Base = require('base');
var app = new Base({isApp: true});
// register plugins
app.use(questions());
app.use(askWhen());
Example usage
// define when
app.options.askWhen = 'not-answered';
app.question('dest', 'Destination directory?', {default: process.cwd()})
.askWhen('dest', function(err, answers) {
if (err) return console.log(err);
console.log(answers)
});
.when
Alternatively, a .when
method is exposed if you don't want to register this as a plugin.
ask.when(app, name, val, cb);
Params
app
{Object}: instance of base (one of the applications listed in the compatibility section)name
{String}: question nameoptions
{Object|Function}: Callback, or options object. If options, an "answer" value may be passed onoptions[name]
.cb
{Function}: callback
Prerequisites
- base-questions: the
base-questions
plugin must be registered beforeask-when
is registered
var ask = require('ask-when');
var askWhen = require('ask-when');
var questions = require('base-questions');
var Base = require('base');
var app = new Base({isApp: true});
// register the `base-questions` plugin first
app.use(questions());
// ask questions
app.question('dest', 'Destination directory?', {default: process.cwd()})
ask.when(app, 'dest', function(err, answers) {
if (err) return console.log(err);
console.log(answers)
});
Options
This library wraps the .ask
method from base-questions to allow prompts to be conditionally skipped when one of the following values is defined on options
(either on app.options
, or options passed to askWhen
directly)
never
: the question will always be skippedalways
: the question will always be askednot-answered
: the question will only be asked if a value is not already defined
Compatibility
Can be used with any of the following libs:
- question-cache
- question-store
- base, when the base-questions plugin is used
- assemble, in your
assemblefile.js
- generate, in your
generator.js
- update, in your
updatefile.js
- verb, in your
verbfile.js
About
Related projects
- base-questions: Plugin for base-methods that adds methods for prompting the user and storing the answers on… more | homepage
- question-cache: A wrapper around inquirer that makes it easy to create and selectively reuse questions. | homepage
- question-store: Ask questions, persist the answers. Basic support for i18n and storing answers based on current… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb-generate-readme, v0.1.30, on August 17, 2016.