TTY
Модуль 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
Класс tty.ReadStream — подкласс net.Socket, представляющий читаемую сторону TTY. В нормальных условиях process.stdin будет единственным экземпляром tty.ReadStream в процессе Node.js, и нет необходимости создавать дополнительные экземпляры.
readStream.isRaw
Значение типа boolean равно true , если TTY в настоящее время настроен как примитивный (сырой) прибор. По умолчанию равно false.
readStream.isTTY
Значение типа boolean всегда true для экземпляров tty.ReadStream.
readStream.setRawMode(mode)
Позволяет настроить tty.ReadStream таким образом, чтобы он работал как примитивный (сырой) прибор.
В режиме сырого ввода всегда доступен символ за символом, без модификаторов. Кроме того, вся специальная обработка символов терминалом отключена, включая вывод введенных символов. Обратите внимание, что CTRL+C больше не вызовет SIGINT в этом режиме.
-
mode<boolean> Еслиtrue, настраиваетtty.ReadStreamдля работы в режиме сырого прибора. Еслиfalse, настраиваетtty.ReadStreamв его стандартный режим. СвойствоreadStream.isRawбудет установлено в полученный режим.
Класс: tty.WriteStream
Класс tty.WriteStream — подкласс net.Socket , представляющий запись в TTY. В нормальных условиях process.stdout и process.stderr будут единственными экземплярами tty.WriteStream , созданными для процесса Node.js, и нет необходимости создавать дополнительные экземпляры.
Событие: 'resize'
Событие '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
Значение типа number , представляющее количество столбцов в текущем TTY. Это свойство обновляется при каждом возникновении события 'resize'.
writeStream.isTTY
Значение типа boolean всегда true.
writeStream.rows
Значение типа number , представляющее количество строк в текущем TTY. Это свойство обновляется при каждом возникновении события 'resize'.
tty.isatty(fd)
-
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