JSPM

  • Created
  • Published
  • Downloads 23021274
  • Score
    100M100P100Q227116F
  • License MIT

Intuitive, plugin-based prompt system for node.js.

Package Exports

  • enquirer

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (enquirer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

enquirer NPM version NPM monthly downloads NPM total downloads Linux Build Status

Intuitive, plugin-based prompt system for node.js.

Table of Contents

(TOC generated by verb using markdown-toc)

Usage

Enquirer

Create an instance of Enquirer with the given options.

Params

  • options {Object}

Example

var Enquirer = require('enquirer');
var enquirer = new Enquirer();

.register

Register a new prompt type with the given fn.

Params

  • type {String}: The name of the prompt type
  • fn {Function}: Prompt function that inherits from prompt-base.
  • returns {Object}: Returns the Enquirer instance for chaining.

Example

enquirer.register('confirm', require('enquirer-prompt-confirm'));

.use

Invoke a plugin fn

Params

  • fn {Function}: Function that takes an instance of Enquirer
  • returns {Object}: Returns the instance for chaining.

Example

enquirer.use(require('some-enquirer-plugin'));

.question

Create question name with the given message and options. Uses enquirer-question, visit that library for additional details.

Params

  • name {String|Object}: Name or options object
  • message {String|Object}: Message or options object
  • options {Object}
  • returns {Object}: Returns the created question object

Events

  • emits: question

Example

enquirer.question('color', 'What is your favorite color?');
enquirer.question('color', 'What is your favorite color?', {
  default: 'blue'
});
enquirer.question('color', {
  message: 'What is your favorite color?',
  default: 'blue'
});
enquirer.question({
  name: 'color',
  message: 'What is your favorite color?',
  default: 'blue'
});
enquirer.question({
  name: 'color',
  type: 'input', // "input" is the default prompt type and doesn't need to be specified
  message: 'What is your favorite color?',
  default: 'blue'
});

.set

Set a question on enquirer.questions. Same as #question but returns the enquirer instance instead of the question object.

Params

  • name {String|Object}: Name or options object
  • message {String|Object}: Message or options object
  • options {Object}
  • returns {Object}: Returns the enquirer instance

Events

  • emits: question

.get

Get a registered question from enquirer.questions.

Params

  • name {String}: The name of the question to get.
  • returns {Object|undefined}: Returns the question object or undefined.

.has

Returns true if a question is registered on enquirer.questions.

Params

  • name {String}: The name of the question to check for.
  • returns {Boolean}

.ask

Initialize a prompt session for one or more questions.

  • returns {Array|Object} questions: One or more question objects or names of registered questions.

Events

  • emits: ask With the array of questions to be asked

Example

var Enquirer = require('enquirer');
var enquirer = new Enquirer();

enquirer.question('first', 'First name?');
enquirer.question('last', 'Last name?');

enquirer.ask('first')
  .then(function(answers) {
    console.log(answers)
  });

// errors
enquirer.ask('first')
  .then(function(answers) {
    console.log(answers)
  })
  .catch(function(err) {
    console.log(err)
  });

.prompt

Initialize a prompt session for a single question. Used by the ask method.

Params

  • name {String}

Events

  • emits: prompt with the default value, key, question object, and answers object
  • emits: answer with the answer value, key, question object, and answers object

Example

var Enquirer = require('enquirer');
var enquirer = new Enquirer();

enquirer.question('first', 'First name?');
enquirer.prompt('first')
  .then(function(answers) {
    console.log(answers)
  });

.separator

Create a new Separator to use in a choices array.

.Separator

Create a new Separator to use in a choices array.

Prompt types

What is a prompt "type"?

Prompt types determine the type of question - or prompt - to initiate. Currently, the only prompt type that ships with enquirer is input.

These following additional prompt types are available as plugins:

Or you can use enquirer-prompts, if you want a bundle with all of the listed prompt types.

Publishing prompt types

Prompt modules are named using the convention prompt-*.

TBC

Plugins

TODO

Publishing plugins

Plugin modules are named using the convention enquirer-*.

TBC

Why another prompt module?

We use prompts extensively in our projects, and we wanted to improve the user experience and reduce dependencies associated with other libraries we tried, like Inquirer.

Our main goals were:

  • reduce initial load time
  • make prompt-types easier to add
  • make code footprint smaller

About

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Please read the contributing guide for advice on opening issues, pull requests, and coding standards.

Running tests

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install && npm test

Author

Jon Schlinkert

License

Copyright © 2017, Jon Schlinkert. Released under the MIT License.


This file was generated by verb-generate-readme, v0.6.0, on May 28, 2017.