Usage in Deno
import { REPLServer } from "node:repl";
Instances of repl.REPLServer
are created using the start method
or directly using the JavaScript new
keyword.
const repl = require('node:repl'); const options = { useColors: true }; const firstInstance = repl.start(options); const secondInstance = new repl.REPLServer(options);
commands: ReadOnlyDict<REPLCommand>
The commands registered via replServer.defineCommand()
.
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.
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.
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
.
input: ReadableStream
The Readable
stream from which REPL input will be read.
inputStream: ReadableStream
last: any
The last evaluation result from the REPL (assigned to the _
variable inside of the REPL).
lastError: any
The last error raised inside the REPL (assigned to the _error
variable inside of the REPL).
output: WritableStream
The Writable
stream to which REPL output will be written.
outputStream: WritableStream
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'
.
underscoreAssigned: boolean
A value indicating whether the _
variable has been assigned.
underscoreErrAssigned: boolean
A value indicating whether the _error
variable has been assigned.
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.
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.
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
- close - inherited from
readline.Interface
- line - inherited from
readline.Interface
- pause - inherited from
readline.Interface
- resume - inherited from
readline.Interface
- SIGCONT - inherited from
readline.Interface
- SIGINT - inherited from
readline.Interface
- SIGTSTP - inherited from
readline.Interface
- exit
- 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 thereplServer.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 thekeyword
. 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:
const repl = require('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:
> .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 thereplServer.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.