ask-when

0.1.7 • Public • Published

ask-when NPM version NPM downloads

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 name
  • options {Object|Function}: Callback, or options object. If options, an "answer" value may be passed on options[name].
  • cb {Function}: callback

Prerequisites

  • base-questions: the base-questions plugin must be registered before ask-when is registered
  • isApp must be defined on the instance (either define app.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 name
  • options {Object|Function}: Callback, or options object. If options, an "answer" value may be passed on options[name].
  • cb {Function}: callback

Prerequisites

  • base-questions: the base-questions plugin must be registered before ask-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 skipped
  • always: the question will always be asked
  • not-answered: the question will only be asked if a value is not already defined

Compatibility

Can be used with any of the following libs:

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.

Package Sidebar

Install

npm i ask-when

Weekly Downloads

1,759

Version

0.1.7

License

MIT

Last publish

Collaborators

  • jonschlinkert