repl
Не все символы поддерживаются.
Модуль node:repl предоставляет реализацию цикла чтения-вычисления-вывода (REPL), доступную как в виде отдельной программы, так и для включения в другие приложения. Доступ к нему можно получить с помощью:
import repl from 'node:repl';
Использование в Deno
import * as mod from "node:repl";
класс Recoverable
Использование в Deno
import { Recoverable } from "node:repl";
Этот символ не поддерживается.
Обозначает восстанавливаемую ошибку, которую REPLServer может использовать для поддержки многострочного ввода.
Конструкторы
Recoverable(err: Error) Свойства
err: Error См. также
класс REPLServer
Использование в Deno
import { REPLServer } from "node:repl";
Этот символ не поддерживается.
Экземпляры repl.REPLServer создаются с помощью метода start или напрямую с помощью ключевого слова JavaScript new.
import repl from 'node:repl';
const options = { useColors: true };
const firstInstance = repl.start(options);
const secondInstance = new repl.REPLServer(options);
Конструкторы
REPLServer() ПРИМЕЧАНИЕ: согласно документации:
Экземпляры
repl.REPLServerсоздаются с помощью методаrepl.start()и не должны создаваться напрямую с помощью ключевого слова JavaScriptnew.
Из-за особенностей реализации в NodeJS REPLServer нельзя наследовать.
Свойства
commands: ReadOnlyDict<REPLCommand> Команды, зарегистрированные с помощью replServer.defineCommand().
completer: Completer | AsyncCompleter Функция для пользовательского автодополнения по Tab, указанная в параметрах REPL.
vm.Context, передаваемый функции eval для выполнения вычислений JavaScript.
editorMode: boolean Значение, указывающее, находится ли REPL в данный момент в «режиме редактора».
Функция, используемая для вычисления каждой введённой строки и указанная в параметрах REPL. Если она не указана в параметрах REPL, используется асинхронная обёртка для функции JavaScript eval().
ignoreUndefined: boolean Значение, указанное в параметрах REPL и определяющее, должна ли функция writer по умолчанию выводить результат команды, если она вычисляется в undefined.
input: ReadableStream Поток Readable, из которого считываются данные, вводимые в REPL.
inputStream: ReadableStream last: any Результат последнего вычисления в REPL (присваивается переменной _ внутри REPL).
lastError: any Последняя ошибка, возникшая в REPL (присваивается переменной _error внутри REPL).
output: WritableStream Поток Writable, в который записываются данные, выводимые REPL.
outputStream: WritableStream replMode: REPL_MODE_SLOPPY | REPL_MODE_STRICT Флаг, указанный в параметрах REPL и определяющий, должна ли функция eval по умолчанию выполнять все команды JavaScript в строгом режиме или в обычном (нестрогом) режиме. Возможные значения:
-
repl.REPL_MODE_SLOPPY— вычисляет выражения в нестрогом режиме. -
repl.REPL_MODE_STRICT— вычисляет выражения в строгом режиме. Это эквивалентно добавлению'use strict'в начало каждой инструкции REPL.
underscoreAssigned: boolean Значение, указывающее, было ли присвоено значение переменной _.
underscoreErrAssigned: boolean Значение, указывающее, было ли присвоено значение переменной _error.
useColors: boolean Значение, указанное в параметрах REPL и определяющее, должна ли функция writer по умолчанию добавлять ANSI-цвета к выводу REPL.
useGlobal: boolean Значение, указанное в параметрах REPL и определяющее, будет ли функция eval по умолчанию использовать объект JavaScript global в качестве контекста вместо создания отдельного нового контекста для экземпляра REPL.
writer: REPLWriter Функция, указанная в параметрах REPL и вызываемая для форматирования вывода каждой команды перед записью в outputStream. Если она не указана в параметрах REPL, используется обёртка для util.inspect.
Методы
addListener(
event: string,
listener: (...args: any[]) => void,
): this events.EventEmitter
- close — унаследовано от
readline.Interface - line — унаследовано от
readline.Interface - pause — унаследовано от
readline.Interface - resume — унаследовано от
readline.Interface - SIGCONT — унаследовано от
readline.Interface - SIGINT — унаследовано от
readline.Interface - SIGTSTP — унаследовано от
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 Метод replServer.clearBufferedCommand() очищает все буферизованные, но ещё не выполненные команды. Этот метод предназначен главным образом для вызова из функции действия команд, зарегистрированных с помощью метода replServer.defineCommand().
defineCommand(
keyword: string,
cmd: REPLCommandAction | REPLCommand,
): void Метод replServer.defineCommand() используется для добавления в экземпляр REPL новых команд с префиксом .. Для вызова таких команд введите ., а затем keyword. cmd — это либо Function, либо Object со следующими свойствами:
В следующем примере показано добавление в экземпляр REPL двух новых команд:
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();
});
Затем новые команды можно использовать в экземпляре REPL:
> .sayhello Node.js User
Hello, Node.js User!
> .saybye
Goodbye!
displayPrompt(preserveCursor?: boolean): void Метод replServer.displayPrompt() подготавливает экземпляр REPL к вводу данных пользователем: выводит настроенное prompt в новой строке в output и возобновляет работу input для приёма новых данных.
При вводе многострочных данных вместо «приглашения» отображается многоточие.
Если preserveCursor имеет значение true, положение курсора не будет сброшено в 0.
Метод replServer.displayPrompt предназначен главным образом для вызова из функции действия команд, зарегистрированных с помощью метода replServer.defineCommand().
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 Инициализирует файл журнала истории для экземпляра REPL. При запуске двоичного файла Node.js и использовании REPL командной строки файл истории создаётся по умолчанию. Однако при программном создании REPL этого не происходит. Используйте этот метод, чтобы инициализировать файл журнала истории при программной работе с экземплярами REPL.
функция start
Использование в Deno
import { start } from "node:repl";
start(options?: string | ReplOptions): REPLServerЭтот символ не поддерживается.
Метод repl.start() создаёт и запускает экземпляр REPLServer.
Если options — строка, она задаёт приглашение для ввода:
import repl from 'node:repl';
// a Unix style prompt
repl.start('$ ');
Параметры
options: string | ReplOptions Тип возвращаемого значения
интерфейс REPLCommand
Использование в Deno
import { type REPLCommand } from "node:repl";
Этот символ не поддерживается.
Свойства
help: string | undefined Текст справки, отображаемый при вводе .help.
Функция для выполнения, которая может принимать один строковый аргумент.
интерфейс ReplOptions
Использование в Deno
import { type ReplOptions } from "node:repl";
Этот символ не поддерживается.
Свойства
prompt: string | undefined Приглашение для ввода, которое отображается.
input: ReadableStream | undefined Поток Readable, из которого будет считываться ввод REPL.
output: WritableStream | undefined Поток Writable, в который будет записываться вывод REPL.
terminal: boolean | undefined Если true, указывает, что вывод следует обрабатывать как терминал TTY и записывать в него управляющие последовательности ANSI/VT100. По умолчанию проверяется значение свойства isTTY выходного потока при создании экземпляра.
Функция, которая будет использоваться для вычисления каждой введённой строки. По умолчанию используется асинхронная обёртка для функции JavaScript eval(). Функция eval может завершиться с ошибкой repl.Recoverable, чтобы указать, что ввод не завершён, и запросить дополнительные строки.
preview: boolean | undefined Определяет, выводит ли REPL предварительный просмотр результата.
useColors: boolean | undefined Если true, указывает, что функция writer по умолчанию должна добавлять к выводу REPL цветовое оформление ANSI. Если указана пользовательская функция writer, этот параметр не влияет на результат.
useGlobal: boolean | undefined Если true, указывает, что функция вычисления по умолчанию будет использовать JavaScript global в качестве контекста вместо создания отдельного контекста для экземпляра REPL. В CLI REPL Node это значение равно true.
ignoreUndefined: boolean | undefined Если true, указывает, что средство записи по умолчанию не будет выводить возвращаемое значение команды, если оно равно undefined.
writer: REPLWriter | undefined Функция, вызываемая для форматирования вывода каждой команды перед записью в output.
completer: Необязательная функция для пользовательского автодополнения по клавише Tab.
replMode: Флаг, указывающий, выполняет ли вычислитель по умолчанию все команды JavaScript в строгом или нестрогом режиме. Допустимые значения:
-
repl.REPL_MODE_SLOPPY— вычисляет выражения в нестрогом режиме. -
repl.REPL_MODE_STRICT— вычисляет выражения в строгом режиме. Это эквивалентно добавлению'use strict'в начало каждого оператора REPL.
breakEvalOnSigint: boolean | undefined Прекращает вычисление текущего фрагмента кода при получении SIGINT, то есть при нажатии Ctrl+C. Нельзя использовать вместе с пользовательской функцией eval.
псевдоним типа REPLCommandAction
Использование в Deno
import { type REPLCommandAction } from "node:repl";
Этот символ не поддерживается.
Определение
(
this: REPLServer,
text: string,
) => void псевдоним типа REPLEval
Использование в Deno
import { type REPLEval } from "node:repl";
Этот символ не поддерживается.
Определение
(
this: REPLServer,
evalCmd: string,
context: Context,
file: string,
cb: (
err: Error | null,
result: any,
) => void,
) => void псевдоним типа REPLWriter
Использование в Deno
import { type REPLWriter } from "node:repl";
Этот символ не поддерживается.
Определение
(
this: REPLServer,
obj: any,
) => string переменная REPL_MODE_SLOPPY
Использование в Deno
import { REPL_MODE_SLOPPY } from "node:repl";
Флаг, передаваемый в параметрах REPL. Вычисляет выражения в нестрогом режиме.
Тип
unique symbol переменная REPL_MODE_STRICT
Использование в Deno
import { REPL_MODE_STRICT } from "node:repl";
Флаг, передаваемый в параметрах REPL. Вычисляет выражения в строгом режиме. Это эквивалентно добавлению 'use strict' в начало каждого оператора REPL.
Тип
unique symbol переменная writer
Использование в Deno
import { writer } from "node:repl";
Это значение «writer» по умолчанию, если оно не передано в параметрах REPL; его можно переопределить пользовательскими функциями вывода.
Тип
REPLWriter & { options: InspectOptions; }
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/repl