Spec-Zone.ru › Node.js 14 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 таким образом, чтобы он работал как сырое устройство.

В режиме raw вход всегда доступен символом за символом, без модификаторов. Кроме того, все специальная обработка символов терминалом отключена, включая вывод введенных символов. 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

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

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

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

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

v0.7.7

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

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

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

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

writeStream.rows

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

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

tty.isatty(fd)

Добавлен в: v0.5.8
  • fd <число> Числовой дескриптор файла
  • Возвращает: <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-v14.x/docs/api/tty.html

Spec-Zone.ru

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