TTY
[Estable: 2 - Estable]
Estable: 2 Estabilidad: 2 - Estable
Código Fuente: lib/tty.js
El módulo node:tty
proporciona las clases tty.ReadStream
y tty.WriteStream
. En la mayoría de los casos, no será necesario ni posible utilizar este módulo directamente. Sin embargo, se puede acceder a él usando:
const tty = require('node:tty');
Cuando Node.js detecta que se está ejecutando con una terminal de texto ("TTY") adjunta, process.stdin
se inicializará, de forma predeterminada, como una instancia de tty.ReadStream
y tanto process.stdout
como process.stderr
serán, de forma predeterminada, instancias de tty.WriteStream
. El método preferido para determinar si Node.js se está ejecutando dentro de un contexto TTY es verificar que el valor de la propiedad process.stdout.isTTY
sea true
:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
En la mayoría de los casos, no debería haber ninguna razón para que una aplicación cree manualmente instancias de las clases tty.ReadStream
y tty.WriteStream
.
Clase: tty.ReadStream
Agregado en: v0.5.8
- Extiende: <net.Socket>
Representa el lado legible de un TTY. En circunstancias normales, process.stdin
será la única instancia de tty.ReadStream
en un proceso de Node.js y no debería haber ninguna razón para crear instancias adicionales.
readStream.isRaw
Agregado en: v0.7.7
Un boolean
que es true
si el TTY está configurado actualmente para operar como un dispositivo raw.
Este indicador siempre es false
cuando se inicia un proceso, incluso si la terminal está operando en modo raw. Su valor cambiará con las llamadas posteriores a setRawMode
.
readStream.isTTY
Agregado en: v0.5.8
Un boolean
que siempre es true
para las instancias de tty.ReadStream
.
readStream.setRawMode(mode)
Agregado en: v0.7.7
mode
<boolean> Si estrue
, configura eltty.ReadStream
para que funcione como un dispositivo raw. Si esfalse
, configura eltty.ReadStream
para que funcione en su modo predeterminado. La propiedadreadStream.isRaw
se establecerá en el modo resultante.- Devuelve: <this> La instancia de la secuencia de lectura.
Permite la configuración de tty.ReadStream
para que funcione como un dispositivo raw.
Cuando está en modo raw, la entrada siempre está disponible carácter por carácter, sin incluir los modificadores. Además, todo el procesamiento especial de caracteres por parte del terminal está deshabilitado, incluido el eco de los caracteres de entrada. + ya no causará un SIGINT
cuando esté en este modo.
Clase: tty.WriteStream
Agregado en: v0.5.8
- Extiende: <net.Socket>
Representa el lado de escritura de un TTY. En circunstancias normales, process.stdout
y process.stderr
serán las únicas instancias de tty.WriteStream
creadas para un proceso de Node.js y no debería haber ninguna razón para crear instancias adicionales.
new tty.ReadStream(fd[, options])
[Historial]
Versión | Cambios |
---|---|
v0.9.4 | El argumento options es soportado. |
v0.5.8 | Agregado en: v0.5.8 |
fd
<number> Un descriptor de archivo asociado con un TTY.options
<Object> Opciones pasadas alnet.Socket
padre, veaoptions
denet.Socket
constructor.- Devuelve <tty.ReadStream>
Crea un ReadStream
para fd
asociado con un TTY.
new tty.WriteStream(fd)
Agregado en: v0.5.8
fd
<number> Un descriptor de archivo asociado con un TTY.- Devuelve <tty.WriteStream>
Crea un WriteStream
para fd
asociado con un TTY.
Evento: 'resize'
Agregado en: v0.7.7
El evento 'resize'
se emite siempre que cambian las propiedades writeStream.columns
o writeStream.rows
. No se pasan argumentos a la función de callback del listener cuando se llama.
process.stdout.on('resize', () => {
console.log('¡el tamaño de la pantalla ha cambiado!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])
[Historial]
Versión | Cambios |
---|---|
v12.7.0 | Se exponen la función de callback y el valor de retorno de write() del stream. |
v0.7.7 | Agregado en: v0.7.7 |
dir
<number>-1
: a la izquierda del cursor1
: a la derecha del cursor0
: toda la línea
callback
<Function> Se invoca una vez que se completa la operación.Devuelve: <boolean>
false
si el stream desea que el código que llama espere a que se emita el evento'drain'
antes de continuar escribiendo datos adicionales; de lo contrario,true
.
writeStream.clearLine()
borra la línea actual de este WriteStream
en una dirección identificada por dir
.
writeStream.clearScreenDown([callback])
[Historial]
Versión | Cambios |
---|---|
v12.7.0 | Se exponen la función de callback y el valor de retorno de write() del stream. |
v0.7.7 | Agregado en: v0.7.7 |
callback
<Function> Se invoca una vez que se completa la operación.- Devuelve: <boolean>
false
si el stream desea que el código que llama espere a que se emita el evento'drain'
antes de continuar escribiendo datos adicionales; de lo contrario,true
.
writeStream.clearScreenDown()
borra este WriteStream
desde el cursor actual hacia abajo.
writeStream.columns
Agregado en: v0.7.7
Un number
que especifica el número de columnas que tiene actualmente el TTY. Esta propiedad se actualiza cada vez que se emite el evento 'resize'
.
writeStream.cursorTo(x[, y][, callback])
[Historial]
Versión | Cambios |
---|---|
v12.7.0 | Se exponen la función de retrollamada write() y el valor de retorno del stream. |
v0.7.7 | Agregado en: v0.7.7 |
x
<number>y
<number>callback
<Function> Se invoca una vez que se completa la operación.- Devuelve: <boolean>
false
si el stream desea que el código que llama espere a que se emita el evento'drain'
antes de continuar escribiendo datos adicionales; de lo contrario,true
.
writeStream.cursorTo()
mueve el cursor de este WriteStream
a la posición especificada.
writeStream.getColorDepth([env])
Agregado en: v9.9.0
env
<Object> Un objeto que contiene las variables de entorno para verificar. Esto permite simular el uso de un terminal específico. Predeterminado:process.env
.- Devuelve: <number>
Devuelve:
1
para 2,4
para 16,8
para 256,24
para 16,777,216 colores admitidos.
Úselo para determinar qué colores admite el terminal. Debido a la naturaleza de los colores en los terminales, es posible tener falsos positivos o falsos negativos. Depende de la información del proceso y las variables de entorno que pueden mentir sobre qué terminal se está utilizando. Es posible pasar un objeto env
para simular el uso de un terminal específico. Esto puede ser útil para verificar cómo se comportan configuraciones de entorno específicas.
Para forzar una compatibilidad de color específica, utilice una de las siguientes configuraciones de entorno.
- 2 colores:
FORCE_COLOR = 0
(Desactiva los colores) - 16 colores:
FORCE_COLOR = 1
- 256 colores:
FORCE_COLOR = 2
- 16,777,216 colores:
FORCE_COLOR = 3
También es posible desactivar la compatibilidad con colores mediante las variables de entorno NO_COLOR
y NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
Agregado en: v0.7.7
- Regresa: <number[]>
writeStream.getWindowSize()
regresa el tamaño de la TTY correspondiente a este WriteStream
. El array es del tipo [numColumns, numRows]
donde numColumns
y numRows
representan el número de columnas y filas en la TTY correspondiente.
writeStream.hasColors([count][, env])
Agregado en: v11.13.0, v10.16.0
count
<integer> El número de colores que se solicitan (mínimo 2). Predeterminado: 16.env
<Object> Un objeto que contiene las variables de entorno para verificar. Esto permite simular el uso de una terminal específica. Predeterminado:process.env
.- Regresa: <boolean>
Regresa true
si el writeStream
soporta al menos tantos colores como los provistos en count
. El soporte mínimo es 2 (blanco y negro).
Esto tiene los mismos falsos positivos y negativos como se describe en writeStream.getColorDepth()
.
process.stdout.hasColors();
// Regresa true o false dependiendo de si `stdout` soporta al menos 16 colores.
process.stdout.hasColors(256);
// Regresa true o false dependiendo de si `stdout` soporta al menos 256 colores.
process.stdout.hasColors({ TMUX: '1' });
// Regresa true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Regresa false (la configuración del entorno pretende soportar 2 ** 8 colores).
writeStream.isTTY
Agregado en: v0.5.8
Un boolean
que siempre es true
.
writeStream.moveCursor(dx, dy[, callback])
[Historia]
Versión | Cambios |
---|---|
v12.7.0 | El callback de write() y el valor de retorno del stream están expuestos. |
v0.7.7 | Agregado en: v0.7.7 |
dx
<number>dy
<number>callback
<Function> Invocado una vez que la operación se completa.- Regresa: <boolean>
false
si el stream desea que el código de llamada espere a que el evento'drain'
sea emitido antes de continuar escribiendo datos adicionales; de lo contrariotrue
.
writeStream.moveCursor()
mueve el cursor de este WriteStream
relativo a su posición actual.
writeStream.rows
Agregado en: v0.7.7
Un number
que especifica el número de filas que tiene actualmente el TTY. Esta propiedad se actualiza cada vez que se emite el evento 'resize'
.
tty.isatty(fd)
Agregado en: v0.5.8
El método tty.isatty()
devuelve true
si el fd
dado está asociado con un TTY y false
si no lo está, incluyendo cuando fd
no es un entero no negativo.