Spec-Zone.ru › Node.js

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/api/tty.html

Spec-Zone.ru

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