Spec-Zone.ru › Node.js 6 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

Добавлен в: 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

Позволяет настроить tty.ReadStream таким образом, чтобы он работал как примитивный (сырой) прибор.

В режиме сырого ввода всегда доступен символ за символом, без модификаторов. Кроме того, вся специальная обработка символов терминалом отключена, включая вывод введенных символов. Обратите внимание, что CTRL+C больше не вызовет SIGINT в этом режиме.

  • mode <boolean> Если true, настраивает tty.ReadStream для работы в режиме сырого прибора. Если false, настраивает tty.ReadStream в его стандартный режим. Свойство readStream.isRaw будет установлено в полученный режим.

Класс: tty.WriteStream

Добавлен в: 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.columns

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

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

writeStream.isTTY

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

Значение типа boolean всегда true.

writeStream.rows

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

Значение типа 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-v6.x/docs/api/tty.html

Spec-Zone.ru

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