Spec-Zone.ru › Node.js 22 LTS

TTY

Стабильность: 2 — Стабильный

Исходный код: lib/tty.js

Модуль node:tty предоставляет классы tty.ReadStream и tty.WriteStream. В большинстве случаев использовать этот модуль напрямую не потребуется или будет невозможно. Однако к нему можно получить доступ с помощью:

const tty = require('node:tty'); copy

Когда Node.js обнаруживает, что запущен с подключенным текстовым терминалом («TTY»), process.stdin по умолчанию инициализируется как экземпляр tty.ReadStream, а process.stdout и process.stderr по умолчанию становятся экземплярами tty.WriteStream. Предпочтительный способ определить, запущен ли Node.js в контексте TTY, — проверить, что значение свойства process.stdout.isTTY равно true:

$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false copy

В большинстве случаев приложению практически незачем вручную создавать экземпляры классов tty.ReadStream и tty.WriteStream.

Класс: tty.ReadStream

Добавлено в: v0.5.8
  • Наследует: <net.Socket>

Представляет читаемую сторону TTY. В обычных условиях process.stdin будет единственным экземпляром tty.ReadStream в процессе Node.js, поэтому создавать дополнительные экземпляры не потребуется.

readStream.isRaw

Добавлено в: v0.7.7

Значение типа boolean, равное true, если в данный момент TTY настроен для работы в режиме необработанных данных.

При запуске процесса этот флаг всегда имеет значение false, даже если терминал работает в режиме необработанных данных. Его значение изменится при последующих вызовах setRawMode.

readStream.isTTY

Добавлено в: v0.5.8

Значение типа boolean, которое всегда равно true для экземпляров tty.ReadStream.

readStream.setRawMode(mode)

Добавлено в: v0.7.7
  • mode <boolean> Если значение равно true, настраивает tty.ReadStream для работы в режиме необработанных данных. Если значение равно false, настраивает tty.ReadStream для работы в режиме по умолчанию. Свойству readStream.isRaw будет присвоено значение итогового режима.
  • Возвращает: <this> Экземпляр потока чтения.

Позволяет настроить tty.ReadStream для работы в режиме необработанных данных.

В этом режиме ввод всегда доступен посимвольно, без учета модификаторов. Кроме того, отключается вся специальная обработка символов терминалом, включая отображение вводимых символов. В этом режиме нажатие Ctrl+C больше не приводит к возникновению SIGINT.

Класс: tty.WriteStream

Добавлено в: v0.5.8
  • Наследует: <net.Socket>

Представляет записываемую сторону TTY. В обычных условиях process.stdout и process.stderr будут единственными экземплярами tty.WriteStream, созданными для процесса Node.js, поэтому создавать дополнительные экземпляры не потребуется.

new tty.ReadStream(fd[, options])

История
Версия Изменения
v0.9.4

Поддерживается аргумент options.

v0.5.8

Добавлено в: v0.5.8

  • fd <number> Дескриптор файла, связанный с TTY.
  • options <Object> Параметры, передаваемые родительскому net.Socket; см. options конструктора net.Socket.
  • Возвращает: <tty.ReadStream>

Создает ReadStream для fd, связанного с TTY.

new tty.WriteStream(fd)

Добавлено в: v0.5.8
  • fd <number> Дескриптор файла, связанный с TTY.
  • Возвращает: <tty.WriteStream>

Создает WriteStream для fd, связанного с TTY.

Событие: 'resize'

Добавлено в: v0.7.7

Событие 'resize' возникает при изменении свойства writeStream.columns или writeStream.rows. При вызове функции обратного вызова обработчика ей не передаются аргументы.

process.stdout.on('resize', () => {
  console.log('screen size has changed!');
  console.log(`${process.stdout.columns}x${process.stdout.rows}`);
}); copy

writeStream.clearLine(dir[, callback])

История
Версия Изменения
v12.7.0

Функция обратного вызова и возвращаемое значение метода write() потока стали доступны.

v0.7.7

Добавлено в: v0.7.7

  • dir <number>
    • -1: влево от курсора
    • 1: вправо от курсора
    • 0: вся строка
  • callback <Function> Вызывается после завершения операции.
  • Возвращает: <boolean> false, если поток хочет, чтобы вызывающий код дождался возникновения события 'drain', прежде чем продолжить запись дополнительных данных; в противном случае — true.

writeStream.clearLine() очищает текущую строку этого WriteStream в направлении, заданном параметром dir.

writeStream.clearScreenDown([callback])

История
Версия Изменения
v12.7.0

Функция обратного вызова и возвращаемое значение метода write() потока стали доступны.

v0.7.7

Добавлено в: v0.7.7

  • callback <Function> Вызывается после завершения операции.
  • Возвращает: <boolean> false, если поток хочет, чтобы вызывающий код дождался возникновения события 'drain', прежде чем продолжить запись дополнительных данных; в противном случае — true.

writeStream.clearScreenDown() очищает этот WriteStream от текущего положения курсора до конца экрана.

writeStream.columns

Добавлено в: v0.7.7

Значение типа number, задающее текущее количество столбцов TTY. Это свойство обновляется при возникновении события 'resize'.

writeStream.cursorTo(x[, y][, callback])

История
Версия Изменения
v12.7.0

Функция обратного вызова и возвращаемое значение метода write() потока стали доступны.

v0.7.7

Добавлено в: v0.7.7

  • x <number>
  • y <number>
  • callback <Function> Вызывается после завершения операции.
  • Возвращает: <boolean> false, если поток хочет, чтобы вызывающий код дождался возникновения события 'drain', прежде чем продолжить запись дополнительных данных; в противном случае — true.

writeStream.cursorTo() перемещает курсор этого WriteStream в указанное положение.

writeStream.getColorDepth([env])

Добавлено в: v9.9.0
  • env <Object> Объект, содержащий проверяемые переменные среды. Это позволяет имитировать использование определенного терминала. По умолчанию: process.env.
  • Возвращает: <number>

Возвращает:

  • 1 для 2,
  • 4 для 16,
  • 8 для 256,
  • 24 для 16 777 216 поддерживаемых цветов.

Используйте этот метод, чтобы определить, какие цвета поддерживает терминал. Из-за особенностей работы с цветами в терминалах возможны как ложноположительные, так и ложноотрицательные результаты. Это зависит от сведений о процессе и переменных среды, которые могут неверно указывать используемый терминал. Можно передать объект env, чтобы имитировать использование определенного терминала. Это может быть полезно для проверки поведения конкретных настроек среды.

Чтобы задать определенную поддержку цветов, используйте одну из следующих настроек среды.

  • 2 цвета: FORCE_COLOR = 0 (отключает цвета)
  • 16 цветов: FORCE_COLOR = 1
  • 256 цветов: FORCE_COLOR = 2
  • 16 777 216 цветов: FORCE_COLOR = 3

Отключить поддержку цветов также можно с помощью переменных среды NO_COLOR и NODE_DISABLE_COLORS.

writeStream.getWindowSize()

Добавлено в: v0.7.7
  • Возвращает: <number[]>

writeStream.getWindowSize() возвращает размер TTY, соответствующего этому WriteStream. Массив имеет тип [numColumns, numRows], где numColumns и numRows задают количество столбцов и строк в соответствующем TTY.

writeStream.hasColors([count][, env])

Добавлено в: v11.13.0, v10.16.0
  • count <integer> Требуемое количество цветов (не менее 2). По умолчанию: 16.
  • env <Object> Объект, содержащий проверяемые переменные среды. Это позволяет имитировать использование определенного терминала. По умолчанию: process.env.
  • Возвращает: <boolean>

Возвращает true, если writeStream поддерживает не меньше цветов, чем указано в count. Минимальный уровень поддержки — 2 цвета (черный и белый).

Для этого метода возможны те же ложноположительные и ложноотрицательные результаты, что и для writeStream.getColorDepth().

process.stdout.hasColors();
// Returns true or false depending on if `stdout` supports at least 16 colors.
process.stdout.hasColors(256);
// Returns true or false depending on if `stdout` supports at least 256 colors.
process.stdout.hasColors({ TMUX: '1' });
// Returns true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Returns false (the environment setting pretends to support 2 ** 8 colors). copy

writeStream.isTTY

Добавлено в: v0.5.8

Значение типа boolean, которое всегда равно true.

writeStream.moveCursor(dx, dy[, callback])

История
Версия Изменения
v12.7.0

Функция обратного вызова и возвращаемое значение метода write() потока стали доступны.

v0.7.7

Добавлено в: v0.7.7

  • dx <number>
  • dy <number>
  • callback <Function> Вызывается после завершения операции.
  • Возвращает: <boolean> false, если поток хочет, чтобы вызывающий код дождался возникновения события 'drain', прежде чем продолжить запись дополнительных данных; в противном случае — true.

writeStream.moveCursor() перемещает курсор этого WriteStream относительно его текущего положения.

writeStream.rows

Добавлено в: v0.7.7

Значение типа number, задающее текущее количество строк TTY. Это свойство обновляется при возникновении события 'resize'.

tty.isatty(fd)

Добавлено в: v0.5.8
  • fd <number> Числовой дескриптор файла
  • Возвращает: <boolean>

Метод tty.isatty() возвращает true, если заданный fd связан с TTY, и false в противном случае, в том числе если fd не является неотрицательным целым числом.

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/tty.html

Spec-Zone.ru

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