npm install cli-inputTable of Contents
=================
* Prompt
* Install
* Features
* Documentation
* Usage
* Options
* Prompt
* prompt(options, cb)
* run(prompts, cb)
* select(options, cb)
* multiline(options, cb)
* Examples
* Developer
* Test
* Readme
Prompt
======
Prompt and user input library, a component of the toolkit.
```
npm i cli-input --save
* ANSI escape sequences fully supported.
* Comprehensive history file support.
* Tab completion functions.
* Schema validation.
* Native type coercion.
* Infinite REPL prompts.
* Collate multiple prompts (set) into an object.
* Collections of common prompt sets (username/password etc).
* Question prompts (arbitrary input).
* Confirmation prompts (binary response).
* Silent prompts (passwords etc).
* Select option lists.
* Multiline input.
See the examples, test specifications have a poke around the source and see below.
`javascript`
var prompt = require('cli-input');
var ps = prompt({infinite: true});
ps.on('value', function(value, options, ps) {
// do something with value
})
ps.run();
The Prompt class accepts the following options at instantiation:
* input: Input stream, default is process.stdin.output
* : Output stream, default is process.stdout.prompt
* : Default prompt string, defaults to >.replace
: Replacement character for silent prompts, default is .infinite
* : Whether the prompt should be displayed infinitely, default is false.native
* : Object that defines configuration for native type coercion, default is null.restore
* : When running in infinite mode and another set of prompts is executed, should the default infinite prompt be displayed at the end of the run, default is true.repeat
* : Repeat prompt on invalid input, default is true.trim
* : Remove leading and trailing whitespace from input lines, default is false.split
* : Split line into an array on the specified string or regexp, default is null.delimiter
* : Default value for the :delimiter format property, default is ⚡.name
* : Default value for the :name format property, default is path.basename(process.argv[1]).format
* : Prompt format string specification, default is :name :delimiter :location :status :message :default.
#### prompt(options, cb)
Show a single prompt.
#### run(prompts, cb)
Run an array of prompt definitions and invoke callback with the result. The result contains a map property which maps the definitions key to the input value.
#### select(options, cb)
Display select menu output followed by a prompt.
#### multiline(options, cb)
Capture multiline input.
Note this overrides several internal readline module methods, use with discretion.
Examples are in the example directory, execute an example with:
``
node example/repl.js
Caution: the above example executes commands via the shell, be careful.
Run all tests with code coverage:
``
npm test
Execute an individual test with:
``
npm run pretest && NODE_ENV=test ./node_modules/.bin/mocha --reporter list ./test/spec/confirm.js
To build the readme file from the partial definitions (requires mdp):
```
npm run readme
Generated by mdp(1).
[toolkit]: https://github.com/freeformsystems/cli-toolkit
[mdp]: https://github.com/freeformsystems/mdp