Skip to content

Commit

Permalink
repl: accept no arguments to start()
Browse files Browse the repository at this point in the history
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: nodejs#5385
PR-URL: nodejs#5388
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reviewed-By: Julian Duque <[email protected]>
  • Loading branch information
cjihrig committed Feb 25, 2016
1 parent 54cbf28 commit ee7754b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion doc/api/repl.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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
prompt line.

## repl.start(options)
## repl.start([options])

Returns and starts a `REPLServer` instance, that inherits from
[Readline Interface][]. Accepts an "options" Object that takes
Expand Down
2 changes: 0 additions & 2 deletions lib/repl.js
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,6 @@ function REPLServer(prompt,
prompt = options.prompt;
dom = options.domain;
replMode = options.replMode;
} else if (typeof prompt !== 'string') {
throw new Error('An options Object, or a prompt String are required');
} else {
options = {};
}
Expand Down
14 changes: 14 additions & 0 deletions test/parallel/test-repl-options.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,17 @@ var r3 = repl.start({

assert.equal(r3.replMode, repl.REPL_MODE_MAGIC);
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();

0 comments on commit ee7754b

Please sign in to comment.