Readline utils, for moving the cursor, clearing lines, creating a readline interface, and more.
npm install readline-utils> Readline utils, for moving the cursor, clearing lines, creating a readline interface, and more.
Install with npm:
``sh`
$ npm install --save readline-utils
`js`
var utils = require('readline-utils');
Create a readline interface with the given options.
Params
* options {Object}
Move cursor up by n lines.
Params
* rl {Readline}: Readline interfacen
* {Number}: Lines up to move. Default is 1.
Move cursor down by n lines.
Params
* rl {Readline}: Readline interfacen
* {Number}: Lines down to move. Default is 1.
Move cursor left by n colums.
Params
* rl {Readline}: Readline interfacen
* {Number}: Characters to move left. Default is 1.
Move cursor right by n colums.
Params
* rl {Readline}: Readline interfacen
* {Number}: Characters to move right. Default is 1.
Move cursor up, down, left or right by 1 line.
Params
* rl {Readline}: Readline interface
Example
`js`
var utils = require('readline-utils');
var rl = utils.createInterface();
rl.input.on('keypress', function(str, key) {
utils.move(rl, key);
});
Callback function for the keypress event, to automatically move cursor up, down, left or right by 1 line.
Params
* rl {Readline}: Readline interface
Example
`js`
var utils = require('readline-utils');
var rl = utils.createInterface();
rl.input.on('keypress', utils.auto(rl));
Clear n lines after the cursor.
Params
* rl {Readline}: Readline interfacen
* {Number}: Number of lines to clear
Clear the terminal.
Params
* rl {Readline}: Readline interfacen
* {Number}: Number of lines to clear
Get the last line from the given str
Params
* str {String}returns
* {String}
Get the height (rows) of the given str
Params
* str {String}returns
* {Number}
Hide the cursor so it doesn't show during a prompt. This is
useful for multiple-choice or list prompts, or any prompt
where the user will not be entering input.
Params
* rl {Readline}: Readline interfacereturns
* {Object}: readline-utils object for chaining
Show the cursor.
Params
* rl {Readline}: Readline interfacereturns
* {Object}: readline-utils object for chaining
Close the interface, remove event listeners, and restore/unmute prompt functionality
Params
* rl {Readline}: Readline interfacereturns
* {Object}: readline-utils object for chaining
Close the interface when the keypress is ^C
Params
* rl {Readline}: Readline interfacereturns
* {Object}: readline-utils object for chaining
Erase n lines
Params
* n {Number}returns
* {String}: Returns the unicode to erase lines
Example
`js`
utils.eraseLines(3);
Remove lines from the bottom of the terminal.
Params
* rl {Number}: Readline interfacelines
* {Number}: Number of lines to removeheight
* {Number}: Content heightreturns
* {Object}: Returns the readline-utils object for chaining
Remember the cursor position
* returns {Object}: readline-utils object
Restore the cursor position to where it has been previously stored.
* returns {Object}: readline-utils object
Get the width of the terminal
* returns {Number}: Returns the number of columns.
Break lines longer than the cli width so we can normalize the
natural line returns behavior accross terminals. (I don't see how
this can work consistently. It seems brittle and will probably be replaced
with https://github.com/jonschlinkert/word-wrap)
Params
* lines {Array}: Array of lineswidth
* {Number}: Terminal width
Joins the lines returned from .breakLines.
Params
* lines {Array|String}: String or array of lines.width
* {Number}: Terminal widthreturns
* {String}
Ensure the given str ends in a newline.
Params
* str {String}: The input stringreturns
* {String}
Example
`js`
console.log(utils.normalizeLF('foo'));
//=> 'foo\n'
This module offers the internal "keypress" functionality from node-core's readline module, for your own programs and modules to use.
The keypress function accepts a readable Stream instance and makes it
emit "keypress" events.
Usage:
Params
* {Stream}: stream
Example
` js
require('keypress')(process.stdin);
process.stdin.on('keypress', function(ch, key) {
console.log(ch, key);
if (key.ctrl && key.name === 'c') {
process.stdin.pause();
}
});
proces.stdin.resume();
`
Enables "mousepress" events on the _input_ stream. Note
that stream must be an _output_ stream (i.e. a Writableprocess.stdout
Stream instance), usually .
Params
* {Stream}: stream writable stream instance
Disables "mousepress" events from being sent to the _input_
stream. Note that stream must be an _output_ stream (i.e.process.stdout
a Writable Stream instance), usually .
Params
* {Stream}: stream writable stream instance
Some of this code was initially borrowed from [Inquirer][].
* choices-separator: Separator for choices arrays in prompts. Based on the Separator from inquirer. | homepage
* enquirer: Intuitive, plugin-based prompt system for node.js. Much faster and lighter alternative to Inquirer, with all… more | homepage
* prompt-choices: Create an array of multiple choice objects for use in prompts. | homepage
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.
| Commits | Contributor |
| --- | --- |
| 41 | jonschlinkert |
| 7 | doowb |
_(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)_
To generate the readme, run the following command:
`sh`
$ npm install -g verbose/verb#dev verb-generate-readme && verb
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:
`sh``
$ npm install && npm test
Jon Schlinkert
* github/jonschlinkert
* twitter/jonschlinkert
Copyright © 2017, Jon Schlinkert.
Released under the MIT License.
*
_This file was generated by verb-generate-readme, v0.6.0, on May 21, 2017._