repl
All symbols are not supported.
The node:repl module provides a Read-Eval-Print-Loop (REPL) implementation
that is available both as a standalone program or includible in other
applications. It can be accessed using:
import repl from 'node:repl';
Usage in Deno
import * as mod from "node:repl";
Classes
Functions
Interfaces
Type Aliases
Variables
A flag passed in the REPL options. Evaluates expressions in strict mode.
This is equivalent to prefacing every repl statement with 'use strict'.
This is the default "writer" value, if none is passed in the REPL options, and it can be overridden by custom print functions.
class REPLServer
Usage in Deno
import { REPLServer } from "node:repl";
This symbol is not supported.
Instances of repl.REPLServer are created using the start method
or directly using the JavaScript new keyword.
import repl from 'node:repl';
const options = { useColors: true };
const firstInstance = repl.start(options);
const secondInstance = new repl.REPLServer(options);
Constructors #
#REPLServer() NOTE: According to the documentation:
Instances of
repl.REPLServerare created using therepl.start()method and should not be created directly using the JavaScriptnewkeyword.
REPLServer cannot be subclassed due to implementation specifics in NodeJS.
Properties #
#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.
#inputStream: ReadableStream The last evaluation result from the REPL (assigned to the _ variable inside of the REPL).
The last error raised inside the REPL (assigned to the _error variable inside of the REPL).
#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.
Specified in the REPL options, this is a value indicating whether the default
writer function should include ANSI color styling to REPL output.
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.
Methods #
#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 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:
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:
> .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.
#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.
function start
Usage in Deno
import { start } from "node:repl";
#start(options?: string | ReplOptions): REPLServer
This symbol is not supported.
The repl.start() method creates and starts a REPLServer instance.
If options is a string, then it specifies the input prompt:
import repl from 'node:repl';
// a Unix style prompt
repl.start('$ ');
Parameters #
#options: string | ReplOptions Return Type #
interface REPLCommand
Usage in Deno
import { type REPLCommand } from "node:repl";
interface ReplOptions
Usage in Deno
import { type ReplOptions } from "node:repl";
This symbol is not supported.
Properties #
The Writable stream to which REPL output will be written.
If true, specifies that the output should be treated as a TTY terminal, and have
ANSI/VT100 escape codes written to it.
Default: checking the value of the isTTY property on the output stream upon
instantiation.
The function to be used when evaluating each given line of input.
Default: an async wrapper for the JavaScript eval() function. An eval function can
error with repl.Recoverable to indicate the input was incomplete and prompt for
additional lines.
If true, specifies that the default writer function should include ANSI color
styling to REPL output. If a custom writer function is provided then this has no
effect.
If true, specifies that the default evaluation function will use the JavaScript
global as the context as opposed to creating a new separate context for the REPL
instance. The node CLI REPL sets this value to true.
#ignoreUndefined: boolean | undefined If true, specifies that the default writer will not output the return value of a
command if it evaluates to undefined.
#writer: REPLWriter | undefined The function to invoke to format the output of each command before writing to output.
A flag that specifies whether the default evaluator executes all JavaScript commands in strict mode or default (sloppy) mode. Accepted 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'.
#breakEvalOnSigint: boolean | undefined Stop evaluating the current piece of code when SIGINT is received, i.e. Ctrl+C is
pressed. This cannot be used together with a custom eval function.
type alias REPLCommandAction
Usage in Deno
import { type REPLCommandAction } from "node:repl";
This symbol is not supported.
Definition #
(this: REPLServer,text: string,) => void type alias REPLEval
Usage in Deno
import { type REPLEval } from "node:repl";
This symbol is not supported.
Definition #
(this: REPLServer,evalCmd: string,context: Context,file: string,cb: (err: Error | null,result: any,) => void,) => void type alias REPLWriter
Usage in Deno
import { type REPLWriter } from "node:repl";
This symbol is not supported.
Definition #
(this: REPLServer,obj: any,) => string variable REPL_MODE_SLOPPY
Usage in Deno
import { REPL_MODE_SLOPPY } from "node:repl";
A flag passed in the REPL options. Evaluates expressions in sloppy mode.
Type #
unique symbol variable REPL_MODE_STRICT
Usage in Deno
import { REPL_MODE_STRICT } from "node:repl";
A flag passed in the REPL options. Evaluates expressions in strict mode.
This is equivalent to prefacing every repl statement with 'use strict'.
Type #
unique symbol variable writer
Usage in Deno
import { writer } from "node:repl";
This is the default "writer" value, if none is passed in the REPL options, and it can be overridden by custom print functions.
Type #
REPLWriter & { options: InspectOptions; }