Browse Source

repl: accept no arguments to start()

Currently, there is a check to ensure that the user either
provides an object or a string to repl.start(). The string case
is used to set a REPL prompt. However, a default of '> ' already
exists, so forcing the user to specify a prompt is a bit
redundant. This commit removes this restriction.

Fixes: https://github.com/nodejs/node/issues/5385
PR-URL: https://github.com/nodejs/node/pull/5388
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Julian Duque <julianduquej@gmail.com>
process-exit-stdio-flushing
cjihrig 9 years ago
parent
commit
ee7754be47
  1. 2
      doc/api/repl.markdown
  2. 2
      lib/repl.js
  3. 14
      test/parallel/test-repl-options.js

2
doc/api/repl.markdown

@ -243,7 +243,7 @@ blocks. The `preserveCursor` argument is passed to [`readline.prompt`][]. This i
used primarily with `defineCommand`. It's also used internally to render each used primarily with `defineCommand`. It's also used internally to render each
prompt line. prompt line.
## repl.start(options) ## repl.start([options])
Returns and starts a `REPLServer` instance, that inherits from Returns and starts a `REPLServer` instance, that inherits from
[Readline Interface][]. Accepts an "options" Object that takes [Readline Interface][]. Accepts an "options" Object that takes

2
lib/repl.js

@ -194,8 +194,6 @@ function REPLServer(prompt,
prompt = options.prompt; prompt = options.prompt;
dom = options.domain; dom = options.domain;
replMode = options.replMode; replMode = options.replMode;
} else if (typeof prompt !== 'string') {
throw new Error('An options Object, or a prompt String are required');
} else { } else {
options = {}; options = {};
} }

14
test/parallel/test-repl-options.js

@ -77,3 +77,17 @@ var r3 = repl.start({
assert.equal(r3.replMode, repl.REPL_MODE_MAGIC); assert.equal(r3.replMode, repl.REPL_MODE_MAGIC);
assert.equal(r3.historySize, 50); assert.equal(r3.historySize, 50);
// Verify that defaults are used when no arguments are provided
const r4 = repl.start();
assert.strictEqual(r4._prompt, '> ');
assert.strictEqual(r4.input, process.stdin);
assert.strictEqual(r4.output, process.stdout);
assert.strictEqual(r4.terminal, !!r4.output.isTTY);
assert.strictEqual(r4.useColors, r4.terminal);
assert.strictEqual(r4.useGlobal, false);
assert.strictEqual(r4.ignoreUndefined, false);
assert.strictEqual(r4.replMode, repl.REPL_MODE_SLOPPY);
assert.strictEqual(r4.historySize, 30);
r4.close();

Loading…
Cancel
Save