Spec-Zone.ru › Node.js 16 LTS

TTY

Стабильность: 2 - Стабильно

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

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

const tty = require('tty');

Когда 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

В большинстве случаев у приложения не должно быть причин для ручного создания экземпляров классов 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.

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 в этом режиме.

END_OF_DOCUMENT_MARKER

Класс: 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}`);
});

writeStream.clearLine(dir[, callback])

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

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

v0.7.7

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

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

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

writeStream.clearScreenDown([callback])

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

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

v0.7.7

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

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

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

writeStream.columns

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

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

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

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

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

v0.7.7

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

  • x <number>
  • y <number>
  • callback <Функция> Вызывается после завершения операции.
  • Возвращает: <boolean> 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).

writeStream.isTTY

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

A boolean который всегда true.

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

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

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

v0.7.7

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

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

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

writeStream.rows

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

A number определяющий количество строк в текущем 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-v16.x/docs/api/tty.html

Spec-Zone.ru

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