Spec-Zone.ru › Node.js 10 LTS

TTY

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

Модуль 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[src]

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

Класс tty.ReadStream является подклассом 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 в этом режиме.

Класс: tty.WriteStream[src]

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

Класс tty.WriteStream является подклассом 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)

Добавлен в: v0.7.7
  • dir <number>

    • -1 — влево от курсора
    • 1 — вправо от курсора
    • 0 — вся строка

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

writeStream.clearScreenDown()

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

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

writeStream.columns

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

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

writeStream.cursorTo(x, y)

Добавлен в: v0.7.7
  • x <number>
  • y <number>

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

writeStream.getColorDepth([env])

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

Возвращает:

  • 1 при поддержке 2 цветов,
  • 4 при поддержке 16 цветов,
  • 8 при поддержке 256 цветов,
  • 24 при поддержке 16 777 216 цветов.

Используйте этот метод, чтобы определить, какие цвета поддерживает терминал. Из-за особенностей работы цветов в терминалах возможны как ложноположительные, так и ложноотрицательные результаты. Это зависит от информации о процессе и переменных среды, которые могут вводить в заблуждение относительно используемого терминала. Для обеспечения определённого поведения без обращения к process.env можно передать объект с различными настройками.

Используйте переменную среды NODE_DISABLE_COLORS для принудительного возвращения значения 1 этим методом.

writeStream.getWindowSize()

Добавлен в: v0.7.7
  • Возвращает: <number[]>

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

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

Добавлен в: v10.16.0
  • count <integer> Количество запрашиваемых цветов (минимум 2). По умолчанию: 16.
  • env <Object> Объект, содержащий переменные окружения для проверки. Это позволяет моделировать использование конкретного терминала. По умолчанию: 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)

Добавлен в: v0.7.7
  • dx <number>
  • dy <number>

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

writeStream.rows

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

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

tty.isatty(fd)[src]

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

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

Spec-Zone.ru

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