TTY¶
Стабильность: 2 – Стабильная
АПИ является удовлетворительным. Совместимость с NPM имеет высший приоритет и не будет нарушена кроме случаев явной необходимости.
Модуль node:tty
предоставляет классы tty.ReadStream
и tty.WriteStream
. В большинстве случаев нет необходимости или возможности использовать этот модуль напрямую. Однако к нему можно получить доступ, используя:
1 |
|
Когда Node.js определяет, что он запускается с подключенным текстовым терминалом ("TTY"), process.stdin
по умолчанию будет инициализирован как экземпляр tty.ReadStream
, а process.stdout
и process.stderr
по умолчанию будут экземплярами tty.WriteStream
. Предпочтительным методом определения того, выполняется ли Node.js в контексте TTY, является проверка того, что значение свойства process.stdout.isTTY
равно true
:
1 2 3 4 |
|
В большинстве случаев у приложения практически не должно быть причин вручную создавать экземпляры классов tty.ReadStream
и tty.WriteStream
.
Класс: tty.ReadStream
¶
- Расширяет:
<net.Socket>
Представляет читаемую сторону TTY. В обычных обстоятельствах process.stdin
будет единственным экземпляром tty.ReadStream
в процессе Node.js, и не должно быть причин для создания дополнительных экземпляров.
readStream.isRaw
¶
Значение boolean
, которое равно true
, если TTY в настоящее время настроен на работу в качестве необработанного устройства. По умолчанию имеет значение false
.
readStream.isTTY
¶
Булево значение, которое всегда true
для экземпляров tty.ReadStream
.
readStream.setRawMode(mode)
¶
mode
<boolean>
Iftrue
, configures thetty.ReadStream
to operate as a raw device. Iffalse
, configures thetty.ReadStream
to operate in its default mode. ThereadStream.isRaw
property will be set to the resulting mode.- Returns: {this} The read stream instance.
Allows configuration of tty.ReadStream
so that it operates as a raw device.
When in raw mode, input is always available character-by-character, not including modifiers. Additionally, all special processing of characters by the terminal is disabled, including echoing input characters. Ctrl+C will no longer cause a SIGINT
when in this mode.
Класс: tty.WriteStream
¶
- Расширяет:
<net.Socket>
Представляет записываемую сторону TTY. В обычных обстоятельствах process.stdout
и process.stderr
будут единственными экземплярами tty.WriteStream
, созданными для процесса Node.js, и не должно быть причин для создания дополнительных экземпляров.
Событие: 'resize'
¶
Событие 'resize'
генерируется всякий раз, когда изменяется одно из свойств writeStream.columns
или writeStream.rows
. При вызове обратного вызова слушателя никакие аргументы не передаются.
1 2 3 4 5 6 |
|
writeStream.clearLine(dir[, callback])
¶
dir
<number>
-1
: влево от курсора1
: вправо от курсора0
: вся строка
callback
<Function>
Вызывается после завершения операции.- Возвращает:
<boolean>
false
, если поток желает, чтобы вызывающий код дождался события'drain'
, прежде чем продолжить запись дополнительных данных; иначеtrue
.
writeStream.clearLine()
очищает текущую строку этого WriteStream
в направлении, определенном dir
.
writeStream.clearScreenDown([callback])
¶
callback
<Function>
Вызывается после завершения операции.- Возвращает:
<boolean>
false
, если поток желает, чтобы вызывающий код дождался события'drain'
, прежде чем продолжить запись дополнительных данных; иначеtrue
.
writeStream.clearScreenDown()
очищает данный WriteStream
от текущего курсора вниз.
writeStream.columns
¶
Число, указывающее количество колонок, которые в настоящее время имеет TTY. Это свойство обновляется при каждом событии 'resize'
.
writeStream.cursorTo(x[, y][, callback])
¶
x
<number>
y
<number>
callback
<Function>
Вызывается после завершения операции.- Возвращает:
<boolean>
false
, если поток желает, чтобы вызывающий код дождался события'drain'
, прежде чем продолжить запись дополнительных данных; иначеtrue
.
writeStream.cursorTo()
перемещает курсор этого WriteStream
в указанную позицию.
writeStream.getColorDepth([env])
¶
env
<Object>
Объект, содержащий переменные окружения для проверки. Это позволяет имитировать использование конкретного терминала. По умолчанию:process.env
.- Возвращает:
<number>
Возвращает:
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()
¶
- Возвращает: {number[]}
writeStream.getWindowSize()
возвращает размер TTY, соответствующий данному WriteStream
. Массив имеет тип [numColumns, numRows]
, где numColumns
и numRows
представляют собой количество столбцов и строк в соответствующем TTY.
writeStream.hasColors([count][, env])
¶
count
<integer>
Количество запрашиваемых цветов (минимум 2). По умолчанию: 16.env
<Object>
Объект, содержащий переменные окружения для проверки. Это позволяет имитировать использование конкретного терминала. По умолчанию:process.env
.- Возвращает:
<boolean>
Возвращает true
, если writeStream
поддерживает по крайней мере столько цветов, сколько указано в count
. Минимальная поддержка - 2 (черный и белый).
Имеет такие же ложные срабатывания и отрицательные результаты, как описано в writeStream.getColorDepth()
.
1 2 3 4 5 6 7 8 |
|
writeStream.isTTY
¶
Булево значение, которое всегда равно true
.
writeStream.moveCursor(dx, dy[, callback])
¶
dx
<number>
dy
<number>
callback
<Function>
Вызывается после завершения операции.- Возвращает:
<boolean>
false
, если поток желает, чтобы вызывающий код дождался события'drain'
, прежде чем продолжить запись дополнительных данных; иначеtrue
.
writeStream.moveCursor()
перемещает курсор этого WriteStream
относительно его текущей позиции.
writeStream.rows
¶
Число, указывающее количество строк, которые в настоящее время имеет TTY. Это свойство обновляется при каждом событии 'resize'
.
tty.isatty(fd)
¶
Метод tty.isatty()
возвращает true
, если данный fd
ассоциирован с TTY, и false
, если нет, включая случаи, когда fd
не является неотрицательным целым числом.