Spec-Zone.ru › Deno 2

repl

Совместимость с Deno

Не все символы поддерживаются.

Модуль node:repl предоставляет реализацию цикла чтения-вычисления-вывода (REPL), доступную как в виде отдельной программы, так и для включения в другие приложения. Доступ к нему можно получить с помощью:

import repl from 'node:repl';

Использование в Deno

import * as mod from "node:repl";

класс Recoverable

наследует SyntaxError

Использование в Deno

import { Recoverable } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Обозначает восстанавливаемую ошибку, которую REPLServer может использовать для поддержки многострочного ввода.

Конструкторы

Recoverable(err: Error)
new

Свойства

err: Error

См. также

  • https://nodejs.org/dist/latest-v22.x/docs/api/repl.html#repl_recoverable_errors


класс REPLServer

наследует Interface

Использование в Deno

import { REPLServer } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Экземпляры 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()
new

ПРИМЕЧАНИЕ: согласно документации:

Экземпляры repl.REPLServer создаются с помощью метода repl.start() и не должны создаваться напрямую с помощью ключевого слова JavaScript new.

Из-за особенностей реализации в NodeJS REPLServer нельзя наследовать.

Свойства

commands: ReadOnlyDict<REPLCommand>
только для чтения

Команды, зарегистрированные с помощью replServer.defineCommand().

completer: Completer | AsyncCompleter
только для чтения

Функция для пользовательского автодополнения по Tab, указанная в параметрах REPL.

context: Context
только для чтения

vm.Context, передаваемый функции eval для выполнения вычислений JavaScript.

editorMode: boolean
только для чтения

Значение, указывающее, находится ли REPL в данный момент в «режиме редактора».

eval: REPLEval
только для чтения

Функция, используемая для вычисления каждой введённой строки и указанная в параметрах 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

  1. close — унаследовано от readline.Interface
  2. line — унаследовано от readline.Interface
  3. pause — унаследовано от readline.Interface
  4. resume — унаследовано от readline.Interface
  5. SIGCONT — унаследовано от readline.Interface
  6. SIGINT — унаследовано от readline.Interface
  7. SIGTSTP — унаследовано от 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

Метод 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
emit(
event: "reset",
context: Context,
): 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
on(
event: "reset",
listener: (context: Context) => 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
once(
event: "reset",
listener: (context: Context) => 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
Совместимость с Deno

Этот символ не поддерживается.

Метод repl.start() создаёт и запускает экземпляр REPLServer.

Если options — строка, она задаёт приглашение для ввода:

import repl from 'node:repl';

// a Unix style prompt
repl.start('$ ');

Параметры

options: string | ReplOptions
необязательный

Тип возвращаемого значения

REPLServer

интерфейс REPLCommand

Использование в Deno

import { type REPLCommand } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Свойства

help: string | undefined
необязательный

Текст справки, отображаемый при вводе .help.

action: REPLCommandAction

Функция для выполнения, которая может принимать один строковый аргумент.


интерфейс ReplOptions

Использование в Deno

import { type ReplOptions } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Свойства

prompt: string | undefined
необязательный

Приглашение для ввода, которое отображается.

input: ReadableStream | undefined
необязательный

Поток Readable, из которого будет считываться ввод REPL.

output: WritableStream | undefined
необязательный

Поток Writable, в который будет записываться вывод REPL.

terminal: boolean | undefined
необязательный

Если true, указывает, что вывод следует обрабатывать как терминал TTY и записывать в него управляющие последовательности ANSI/VT100. По умолчанию проверяется значение свойства isTTY выходного потока при создании экземпляра.

eval: REPLEval | undefined
необязательный

Функция, которая будет использоваться для вычисления каждой введённой строки. По умолчанию используется асинхронная обёртка для функции 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:
Completer
| AsyncCompleter
| undefined
необязательный

Необязательная функция для пользовательского автодополнения по клавише Tab.

replMode:
REPL_MODE_SLOPPY
| REPL_MODE_STRICT
| undefined
необязательный

Флаг, указывающий, выполняет ли вычислитель по умолчанию все команды 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";
Совместимость с Deno

Этот символ не поддерживается.

Определение

(
this: REPLServer,
text: string,
) => void

псевдоним типа REPLEval

Использование в Deno

import { type REPLEval } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Определение

(
this: REPLServer,
evalCmd: string,
context: Context,
file: string,
cb: (
err: Error | null,
result: any,
) => void
,
) => void

псевдоним типа REPLWriter

Использование в Deno

import { type REPLWriter } from "node:repl";
Совместимость с Deno

Этот символ не поддерживается.

Определение

(
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API