cli-input
v0.2.0
Published
Prompt and user input library.
Downloads
1,272
Readme
Table of Contents
Prompt
Prompt and user input library, a component of the toolkit.
Install
npm i cli-input --save
Features
- 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.
Documentation
See the examples, test specifications have a poke around the source and see below.
Usage
var prompt = require('cli-input');
var ps = prompt({infinite: true});
ps.on('value', function(value, options, ps) {
// do something with value
})
ps.run();
Options
The Prompt
class accepts the following options at instantiation:
input
: Input stream, default isprocess.stdin
.output
: Output stream, default isprocess.stdout
.prompt
: Default prompt string, defaults to>
.replace
: Replacement character for silent prompts, default is*
.infinite
: Whether the prompt should be displayed infinitely, default isfalse
.native
: Object that defines configuration for native type coercion, default isnull
.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 istrue
.repeat
: Repeat prompt on invalid input, default istrue
.trim
: Remove leading and trailing whitespace from input lines, default isfalse
.split
: Split line into an array on the specified string or regexp, default isnull
.delimiter
: Default value for the:delimiter
format property, default is⚡
.name
: Default value for the:name
format property, default ispath.basename(process.argv[1])
.format
: Prompt format string specification, default is:name :delimiter :location :status :message :default
.
Prompt
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
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.
Developer
Test
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
Readme
To build the readme file from the partial definitions (requires mdp):
npm run readme
Generated by mdp(1).