Spec-Zone.ru › Node.js 18 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-v18.x/docs/api/tty.html

Spec-Zone.ru

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