class REPLServer
Usage in Deno
```typescript import { REPLServer } from "node:node__repl.d.ts"; ```> [!WARNING] Deno compatibility
> This symbol is not supported.
Instances of `repl.REPLServer` are created using the [start](../.././node__repl.d.ts/~/start) method
or directly using the JavaScript `new` keyword.
```js
import repl from 'node:repl';
const options = { useColors: true };
const firstInstance = repl.start(options);
const secondInstance = new repl.REPLServer(options);
```
readonly
commands: ReadOnlyDict<REPLCommand>
The commands registered via `replServer.defineCommand()`.
readonly
completer: Completer | AsyncCompleter
Specified in the REPL options, this is the function to use for custom Tab auto-completion.
The `vm.Context` provided to the `eval` function to be used for JavaScript
evaluation.
readonly
editorMode: boolean
A value indicating whether the REPL is currently in "editor mode".
Specified in the REPL options, this is the function to be used when evaluating each
given line of input. If not specified in the REPL options, this is an async wrapper
for the JavaScript `eval()` function.
readonly
ignoreUndefined: boolean
Specified in the REPL options, this is a value indicating whether the default `writer`
function should output the result of a command if it evaluates to `undefined`.
readonly
input: ReadableStream
The `Readable` stream from which REPL input will be read.
deprecated
readonly
inputStream: ReadableStream
readonly
last: any
The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL).
readonly
lastError: any
The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL).
readonly
output: WritableStream
The `Writable` stream to which REPL output will be written.
deprecated
readonly
outputStream: WritableStream
readonly
replMode: REPL_MODE_SLOPPY | REPL_MODE_STRICT
Specified in the REPL options, this is a flag that specifies whether the default `eval`
function should execute all JavaScript commands in strict mode or default (sloppy) mode.
Possible values are:
- `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode.
- `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to
prefacing every repl statement with `'use strict'`.
readonly
underscoreAssigned: boolean
A value indicating whether the `_` variable has been assigned.
readonly
underscoreErrAssigned: boolean
A value indicating whether the `_error` variable has been assigned.
readonly
useColors: boolean
Specified in the REPL options, this is a value indicating whether the default
`writer` function should include ANSI color styling to REPL output.
readonly
useGlobal: boolean
Specified in the REPL options, this is a value indicating whether the default `eval`
function will use the JavaScript `global` as the context as opposed to creating a new
separate context for the REPL instance.
readonly
writer: REPLWriter
Specified in the REPL options, this is the function to invoke to format the output of
each command before writing to `outputStream`. If not specified in the REPL options,
this will be a wrapper for `util.inspect`.
addListener(event: string,listener: (...args: any[]) => void,): this
events.EventEmitter
1. close - inherited from `readline.Interface`
2. line - inherited from `readline.Interface`
3. pause - inherited from `readline.Interface`
4. resume - inherited from `readline.Interface`
5. SIGCONT - inherited from `readline.Interface`
6. SIGINT - inherited from `readline.Interface`
7. SIGTSTP - inherited from `readline.Interface`
8. exit
9. reset
addListener(event: "close",listener: () => void,): this
addListener(event: "line",listener: (input: string) => void,): this
addListener(event: "pause",listener: () => void,): this
addListener(event: "resume",listener: () => void,): this
addListener(event: "SIGCONT",listener: () => void,): this
addListener(event: "SIGINT",listener: () => void,): this
addListener(event: "SIGTSTP",listener: () => void,): this
addListener(event: "exit",listener: () => void,): this
addListener(event: "reset",listener: (context: Context) => void,): this
clearBufferedCommand(): void
The `replServer.clearBufferedCommand()` method clears any command that has been
buffered but not yet executed. This method is primarily intended to be
called from within the action function for commands registered using the `replServer.defineCommand()` method.
defineCommand(keyword: string,cmd: REPLCommandAction | REPLCommand,): void
The `replServer.defineCommand()` method is used to add new `.`\-prefixed commands
to the REPL instance. Such commands are invoked by typing a `.` followed by the `keyword`. The `cmd` is either a `Function` or an `Object` with the following
properties:
The following example shows two new commands added to the REPL instance:
```js
import repl from 'node:repl';
const replServer = repl.start({ prompt: '> ' });
replServer.defineCommand('sayhello', {
help: 'Say hello',
action(name) {
this.clearBufferedCommand();
console.log(`Hello, ${name}!`);
this.displayPrompt();
},
});
replServer.defineCommand('saybye', function saybye() {
console.log('Goodbye!');
this.close();
});
```
The new commands can then be used from within the REPL instance:
```console
> .sayhello Node.js User
Hello, Node.js User!
> .saybye
Goodbye!
```
displayPrompt(preserveCursor?: boolean): void
The `replServer.displayPrompt()` method readies the REPL instance for input
from the user, printing the configured `prompt` to a new line in the `output` and resuming the `input` to accept new input.
When multi-line input is being entered, an ellipsis is printed rather than the
'prompt'.
When `preserveCursor` is `true`, the cursor placement will not be reset to `0`.
The `replServer.displayPrompt` method is primarily intended to be called from
within the action function for commands registered using the `replServer.defineCommand()` method.
emit(event: string | symbol,...args: any[],): boolean
emit(event: "close"): boolean
emit(event: "line",input: string,): boolean
emit(event: "pause"): boolean
emit(event: "resume"): boolean
emit(event: "SIGCONT"): boolean
emit(event: "SIGINT"): boolean
emit(event: "SIGTSTP"): boolean
emit(event: "exit"): boolean
on(event: string,listener: (...args: any[]) => void,): this
on(event: "close",listener: () => void,): this
on(event: "line",listener: (input: string) => void,): this
on(event: "pause",listener: () => void,): this
on(event: "resume",listener: () => void,): this
on(event: "SIGCONT",listener: () => void,): this
on(event: "SIGINT",listener: () => void,): this
on(event: "SIGTSTP",listener: () => void,): this
on(event: "exit",listener: () => void,): this
once(event: string,listener: (...args: any[]) => void,): this
once(event: "close",listener: () => void,): this
once(event: "line",listener: (input: string) => void,): this
once(event: "pause",listener: () => void,): this
once(event: "resume",listener: () => void,): this
once(event: "SIGCONT",listener: () => void,): this
once(event: "SIGINT",listener: () => void,): this
once(event: "SIGTSTP",listener: () => void,): this
once(event: "exit",listener: () => void,): this
prependListener(event: string,listener: (...args: any[]) => void,): this
prependListener(event: "close",listener: () => void,): this
prependListener(event: "line",listener: (input: string) => void,): this
prependListener(event: "pause",listener: () => void,): this
prependListener(event: "resume",listener: () => void,): this
prependListener(event: "SIGCONT",listener: () => void,): this
prependListener(event: "SIGINT",listener: () => void,): this
prependListener(event: "SIGTSTP",listener: () => void,): this
prependListener(event: "exit",listener: () => void,): this
prependListener(event: "reset",listener: (context: Context) => void,): this
prependOnceListener(event: string,listener: (...args: any[]) => void,): this
prependOnceListener(event: "close",listener: () => void,): this
prependOnceListener(event: "line",listener: (input: string) => void,): this
prependOnceListener(event: "pause",listener: () => void,): this
prependOnceListener(event: "resume",listener: () => void,): this
prependOnceListener(event: "SIGCONT",listener: () => void,): this
prependOnceListener(event: "SIGINT",listener: () => void,): this
prependOnceListener(event: "SIGTSTP",listener: () => void,): this
prependOnceListener(event: "exit",listener: () => void,): this
prependOnceListener(event: "reset",listener: (context: Context) => void,): this
setupHistory(path: string,callback: (err: Error | null,repl: this,) => void,): void
Initializes a history log file for the REPL instance. When executing the
Node.js binary and using the command-line REPL, a history file is initialized
by default. However, this is not the case when creating a REPL
programmatically. Use this method to initialize a history log file when working
with REPL instances programmatically.