Spec-Zone.ru › Node.js 20 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, и нет причин создавать дополнительные экземпляры.

Событие: '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 <число>
    • -1: влево от курсора
    • 1: вправо от курсора
    • 0: вся строка
  • callback <Функция> Вызывается по завершении операции.
  • Возвращает: <логическое> false если поток хочет, чтобы вызывающий код ждал события 'drain' перед продолжением записи дополнительных данных; в противном случае true.

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

writeStream.clearScreenDown([callback])

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

Обратный вызов write() потока и возвращаемое значение раскрыты.

v0.7.7

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

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

writeStream.clearScreenDown() очищает этот WriteStream от текущего курсора вниз.

writeStream.columns

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

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

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

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

Обратный вызов write() потока и возвращаемое значение раскрыты.

v0.7.7

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

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

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

writeStream.getColorDepth([env])

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

Возвращает:

  • 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
  • Возвращает: <массив чисел>

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

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

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

Возвращает 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 <число>
  • dy <число>
  • callback <Функция> Вызывается по завершении операции.
  • Возвращает: <логическое> false если поток хочет, чтобы вызывающий код ждал события 'drain' перед продолжением записи дополнительных данных; в противном случае true.

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

writeStream.rows

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

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

tty.isatty(fd)

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

Метод 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-v20.x/docs/api/tty.html

Spec-Zone.ru

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