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) {
})
rs.run();
Options
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
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).