TTY
[Stabile: 2 - Stabile]
Stabile: 2 Stabilità: 2 - Stabile
Codice Sorgente: lib/tty.js
Il modulo node:tty
fornisce le classi tty.ReadStream
e tty.WriteStream
. Nella maggior parte dei casi, non sarà necessario o possibile utilizzare direttamente questo modulo. Tuttavia, è possibile accedervi utilizzando:
const tty = require('node:tty')
Quando Node.js rileva che viene eseguito con un terminale di testo ("TTY") collegato, process.stdin
sarà, per impostazione predefinita, inizializzato come un'istanza di tty.ReadStream
e sia process.stdout
che process.stderr
saranno, per impostazione predefinita, istanze di tty.WriteStream
. Il metodo preferito per determinare se Node.js viene eseguito all'interno di un contesto TTY è verificare che il valore della proprietà process.stdout.isTTY
sia true
:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
Nella maggior parte dei casi, non ci dovrebbe essere alcun motivo per un'applicazione di creare manualmente istanze delle classi tty.ReadStream
e tty.WriteStream
.
Classe: tty.ReadStream
Aggiunto in: v0.5.8
- Estensioni: <net.Socket>
Rappresenta il lato leggibile di un TTY. In circostanze normali process.stdin
sarà l'unica istanza di tty.ReadStream
in un processo Node.js e non ci dovrebbe essere motivo di creare istanze aggiuntive.
readStream.isRaw
Aggiunto in: v0.7.7
Un booleano
che è true
se il TTY è attualmente configurato per funzionare come dispositivo raw.
Questo flag è sempre false
quando un processo inizia, anche se il terminale sta funzionando in modalità raw. Il suo valore cambierà con le chiamate successive a setRawMode
.
readStream.isTTY
Aggiunto in: v0.5.8
Un booleano
che è sempre true
per le istanze di tty.ReadStream
.
readStream.setRawMode(mode)
Aggiunto in: v0.7.7
mode
<boolean> Setrue
, configuratty.ReadStream
per operare come dispositivo raw. Sefalse
, configuratty.ReadStream
per operare nella sua modalità predefinita. La proprietàreadStream.isRaw
sarà impostata sulla modalità risultante.- Restituisce: <this> L'istanza del flusso di lettura.
Consente la configurazione di tty.ReadStream
in modo che operi come dispositivo raw.
In modalità raw, l'input è sempre disponibile carattere per carattere, escludendo i modificatori. Inoltre, tutta l'elaborazione speciale dei caratteri da parte del terminale è disabilitata, inclusa l'eco dei caratteri di input. + non causerà più un SIGINT
in questa modalità.
Classe: tty.WriteStream
Aggiunto in: v0.5.8
- Estende: <net.Socket>
Rappresenta il lato scrivibile di un TTY. In circostanze normali, process.stdout
e process.stderr
saranno le uniche istanze tty.WriteStream
create per un processo Node.js e non ci dovrebbe essere motivo di creare istanze aggiuntive.
new tty.ReadStream(fd[, options])
[Cronologia]
Versione | Modifiche |
---|---|
v0.9.4 | L'argomento options è supportato. |
v0.5.8 | Aggiunto in: v0.5.8 |
fd
<number> Un descrittore di file associato a un TTY.options
<Object> Opzioni passate al padrenet.Socket
, vedioptions
del costruttorenet.Socket
.- Restituisce <tty.ReadStream>
Crea un ReadStream
per fd
associato a un TTY.
new tty.WriteStream(fd)
Aggiunto in: v0.5.8
fd
<number> Un descrittore di file associato a un TTY.- Restituisce <tty.WriteStream>
Crea un WriteStream
per fd
associato a un TTY.
Evento: 'resize'
Aggiunto in: v0.7.7
L'evento 'resize'
viene emesso ogni volta che una delle proprietà writeStream.columns
o writeStream.rows
cambia. Nessun argomento viene passato alla callback del listener quando viene chiamato.
process.stdout.on('resize', () => {
console.log('Dimensione dello schermo cambiata!')
console.log(`${process.stdout.columns}x${process.stdout.rows}`)
})
writeStream.clearLine(dir[, callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | La callback e il valore di ritorno di write() dello stream sono esposti. |
v0.7.7 | Aggiunto in: v0.7.7 |
dir
<number>-1
: a sinistra del cursore1
: a destra del cursore0
: l'intera riga
callback
<Function> Invocato una volta completata l'operazione.Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante aspetti che l'evento'drain'
venga emesso prima di continuare a scrivere dati aggiuntivi; altrimentitrue
.
writeStream.clearLine()
cancella la riga corrente di questo WriteStream
nella direzione identificata da dir
.
writeStream.clearScreenDown([callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | La callback e il valore di ritorno di write() dello stream sono esposti. |
v0.7.7 | Aggiunto in: v0.7.7 |
callback
<Function> Invocato una volta completata l'operazione.- Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante aspetti che l'evento'drain'
venga emesso prima di continuare a scrivere dati aggiuntivi; altrimentitrue
.
writeStream.clearScreenDown()
cancella questo WriteStream
dal cursore corrente in giù.
writeStream.columns
Aggiunto in: v0.7.7
Un number
che specifica il numero di colonne attualmente presenti nel TTY. Questa proprietà viene aggiornata ogni volta che viene emesso l'evento 'resize'
.
writeStream.cursorTo(x[, y][, callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | Il callback e il valore di ritorno di stream.write() sono esposti. |
v0.7.7 | Aggiunto in: v0.7.7 |
x
<number>y
<number>callback
<Function> Invocato una volta completata l'operazione.- Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante attenda l'emissione dell'evento'drain'
prima di continuare a scrivere dati aggiuntivi; altrimentitrue
.
writeStream.cursorTo()
sposta il cursore di questo WriteStream
nella posizione specificata.
writeStream.getColorDepth([env])
Aggiunto in: v9.9.0
env
<Object> Un oggetto contenente le variabili di ambiente da controllare. Questo permette di simulare l'utilizzo di uno specifico terminale. Default:process.env
.- Restituisce: <number>
Restituisce:
1
per 2,4
per 16,8
per 256,24
per 16.777.216 colori supportati.
Usare questo per determinare quali colori sono supportati dal terminale. A causa della natura dei colori nei terminali, è possibile avere falsi positivi o falsi negativi. Dipende dalle informazioni del processo e dalle variabili di ambiente che potrebbero fornire informazioni errate sul terminale utilizzato. È possibile passare un oggetto env
per simulare l'utilizzo di uno specifico terminale. Questo può essere utile per verificare il comportamento di specifiche impostazioni ambientali.
Per imporre un supporto colore specifico, utilizzare una delle seguenti impostazioni ambientali.
- 2 colori:
FORCE_COLOR = 0
(Disabilita i colori) - 16 colori:
FORCE_COLOR = 1
- 256 colori:
FORCE_COLOR = 2
- 16.777.216 colori:
FORCE_COLOR = 3
È anche possibile disabilitare il supporto del colore utilizzando le variabili di ambiente NO_COLOR
e NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
Aggiunto in: v0.7.7
- Restituisce: <number[]>
writeStream.getWindowSize()
restituisce le dimensioni del TTY corrispondente a questo WriteStream
. L'array è del tipo [numColumns, numRows]
dove numColumns
e numRows
rappresentano il numero di colonne e righe nel TTY corrispondente.
writeStream.hasColors([count][, env])
Aggiunto in: v11.13.0, v10.16.0
count
<integer> Il numero di colori richiesti (minimo 2). Default: 16.env
<Object> Un oggetto contenente le variabili di ambiente da controllare. Questo permette di simulare l'utilizzo di un terminale specifico. Default:process.env
.- Restituisce: <boolean>
Restituisce true
se writeStream
supporta almeno tanti colori quanti quelli forniti in count
. Il supporto minimo è 2 (bianco e nero).
Questo ha gli stessi falsi positivi e negativi descritti in writeStream.getColorDepth()
.
process.stdout.hasColors()
// Restituisce true o false a seconda che `stdout` supporti almeno 16 colori.
process.stdout.hasColors(256)
// Restituisce true o false a seconda che `stdout` supporti almeno 256 colori.
process.stdout.hasColors({ TMUX: '1' })
// Restituisce true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' })
// Restituisce false (l'impostazione dell'ambiente finge di supportare 2 ** 8 colori).
writeStream.isTTY
Aggiunto in: v0.5.8
Un boolean
che è sempre true
.
writeStream.moveCursor(dx, dy[, callback])
[Cronologia]
Versione | Cambiamenti |
---|---|
v12.7.0 | Il callback write() dello stream e il valore restituito sono esposti. |
v0.7.7 | Aggiunto in: v0.7.7 |
dx
<number>dy
<number>callback
<Function> Invocato una volta completata l'operazione.- Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante aspetti che l'evento'drain'
venga emesso prima di continuare a scrivere dati aggiuntivi; altrimentitrue
.
writeStream.moveCursor()
sposta il cursore di questo WriteStream
relativamente alla sua posizione attuale.
writeStream.rows
Aggiunto in: v0.7.7
Un number
che specifica il numero di righe che il TTY ha attualmente. Questa proprietà viene aggiornata ogni volta che viene emesso l'evento 'resize'
.
tty.isatty(fd)
Aggiunto in: v0.5.8
Il metodo tty.isatty()
restituisce true
se il fd
dato è associato a un TTY e false
se non lo è, incluso quando fd
non è un intero non negativo.