From 4ac7a68ccd6fb0104f171ef49e964fb6d4a170c6 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Sat, 29 Apr 2017 13:46:26 -0700 Subject: [PATCH] readline: multiple code cleanups Variety of code maintenance updates, cleanups PR-URL: https://github.com/nodejs/node/pull/12755 Reviewed-By: Anna Henningsen --- lib/readline.js | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/readline.js b/lib/readline.js index a01b7a5e90b..f46fc0d59cd 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -27,25 +27,32 @@ 'use strict'; +const { debug, inherits } = require('util'); +const Buffer = require('buffer').Buffer; +const EventEmitter = require('events'); +const { + emitKeys, + getStringWidth, + isFullWidthCodePoint, + stripVTControlCharacters +} = require('internal/readline'); + const kHistorySize = 30; const kMincrlfDelay = 100; const kMaxcrlfDelay = 2000; +// \r\n, \n, or \r followed by something other than \n +const lineEnding = /\r?\n|\r(?!\n)/; -const util = require('util'); -const debug = util.debuglog('readline'); -const inherits = util.inherits; -const Buffer = require('buffer').Buffer; -const EventEmitter = require('events'); -const internalReadline = require('internal/readline'); -const emitKeys = internalReadline.emitKeys; -const getStringWidth = internalReadline.getStringWidth; -const isFullWidthCodePoint = internalReadline.isFullWidthCodePoint; -const stripVTControlCharacters = internalReadline.stripVTControlCharacters; +const KEYPRESS_DECODER = Symbol('keypress-decoder'); +const ESCAPE_DECODER = Symbol('escape-decoder'); + +// GNU readline library - keyseq-timeout is 500ms (default) +const ESCAPE_CODE_TIMEOUT = 500; function createInterface(input, output, completer, terminal) { return new Interface(input, output, completer, terminal); -}; +} function Interface(input, output, completer, terminal) { @@ -373,8 +380,6 @@ Interface.prototype.write = function(d, key) { this.terminal ? this._ttyWrite(d, key) : this._normalWrite(d); }; -// \r\n, \n, or \r followed by something other than \n -const lineEnding = /\r?\n|\r(?!\n)/; Interface.prototype._normalWrite = function(b) { if (b === undefined) { return; @@ -961,12 +966,6 @@ Interface.prototype._ttyWrite = function(s, key) { * accepts a readable Stream instance and makes it emit "keypress" events */ -const KEYPRESS_DECODER = Symbol('keypress-decoder'); -const ESCAPE_DECODER = Symbol('escape-decoder'); - -// GNU readline library - keyseq-timeout is 500ms (default) -const ESCAPE_CODE_TIMEOUT = 500; - function emitKeypressEvents(stream, iface) { if (stream[KEYPRESS_DECODER]) return; var StringDecoder = require('string_decoder').StringDecoder; // lazy load