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 таким образом, чтобы он работал как сырое устройство.
В режиме raw входные данные всегда доступны посимвольно, без модификаторов. Кроме того, все специальная обработка символов терминалом отключена, включая вывод введенных символов. Обратите внимание, что CTRL+C больше не вызовет SIGINT в этом режиме.
-
mode<логическое значение> Если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-v8.x/docs/api/tty.html