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 è in esecuzione con un terminale di testo ("TTY") collegato, process.stdin
verrà, 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 è in esecuzione 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
- Estende: <net.Socket>
Rappresenta il lato leggibile di un TTY. In circostanze normali process.stdin
sarà l'unica istanza 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 boolean
che è true
se il TTY è attualmente configurato per operare come un dispositivo raw.
Questo flag è sempre false
quando un processo inizia, anche se il terminale sta operando in modalità raw. Il suo valore cambierà con le successive chiamate a setRawMode
.
readStream.isTTY
Aggiunto in: v0.5.8
Un boolean
che è sempre true
per le istanze tty.ReadStream
.
readStream.setRawMode(mode)
Aggiunto in: v0.7.7
mode
<boolean> Setrue
, configura iltty.ReadStream
per operare come un dispositivo raw. Sefalse
, configura iltty.ReadStream
per operare nella sua modalità predefinita. La proprietàreadStream.isRaw
sarà impostata alla modalità risultante.- Restituisce: <this> L'istanza dello stream di lettura.
Consente la configurazione di tty.ReadStream
in modo che operi come un dispositivo raw.
Quando si è in modalità raw, l'input è sempre disponibile carattere per carattere, senza includere 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
quando si è 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 per 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 alnet.Socket
padre, vedereoptions
delnet.Socket
constructor.- 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 le proprietà writeStream.columns
o writeStream.rows
sono state modificate. Nessun argomento viene passato alla funzione di callback del listener quando viene chiamata.
process.stdout.on('resize', () => {
console.log('le dimensioni dello schermo sono cambiate!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | La funzione di 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 dal cursore1
: a destra dal cursore0
: l'intera riga
callback
<Function> Invocata al termine dell'operazione.Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante attenda che l'evento'drain'
venga emesso prima di continuare a scrivere dati aggiuntivi; altrimentitrue
.
writeStream.clearLine()
cancella la riga corrente di questo WriteStream
in una direzione identificata da dir
.
writeStream.clearScreenDown([callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | La funzione di callback e il valore di ritorno di write() dello stream sono esposti. |
v0.7.7 | Aggiunto in: v0.7.7 |
callback
<Function> Invocata al termine dell'operazione.- Restituisce: <boolean>
false
se lo stream desidera che il codice chiamante attenda 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 che il TTY ha attualmente. Questa proprietà viene aggiornata ogni volta che viene emesso l'evento 'resize'
.
writeStream.cursorTo(x[, y][, callback])
[Cronologia]
Versione | Modifiche |
---|---|
v12.7.0 | Vengono esposti il callback e il valore di ritorno di write() dello stream. |
v0.7.7 | Aggiunto in: v0.7.7 |
x
<number>y
<number>callback
<Function> Invocata 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 d'ambiente da controllare. Questo consente di simulare l'utilizzo di un terminale specifico. Predefinito:process.env
.- Restituisce: <number>
Restituisce:
1
per 2,4
per 16,8
per 256,24
per 16.777.216 colori supportati.
Usalo per determinare quali colori supporta il terminale. A causa della natura dei colori nei terminali, è possibile avere falsi positivi o falsi negativi. Dipende dalle informazioni sul processo e dalle variabili d'ambiente che potrebbero mentire sul terminale utilizzato. È possibile passare un oggetto env
per simulare l'utilizzo di un terminale specifico. Questo può essere utile per verificare come si comportano impostazioni ambientali specifiche.
Per forzare un supporto specifico del colore, usa 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 d'ambiente NO_COLOR
e NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
Aggiunto in: v0.7.7
- Restituisce: <number[]>
writeStream.getWindowSize()
restituisce la dimensione 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). Predefinito: 16.env
<Object> Un oggetto contenente le variabili d'ambiente da controllare. Ciò consente di simulare l'utilizzo di un terminale specifico. Predefinito:process.env
.- Restituisce: <boolean>
Restituisce true
se writeStream
supporta almeno tanti colori quanti sono 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 | Modifiche |
---|---|
v12.7.0 | Sono esposti il callback e il valore di ritorno di write() dello stream. |
v0.7.7 | Aggiunto in: v0.7.7 |
dx
<number>dy
<number>callback
<Function> Richiamato 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.moveCursor()
sposta il cursore di questo WriteStream
relativamente alla sua posizione corrente.
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 dato fd
è associato a un TTY e false
se non lo è, incluso quando fd
non è un intero non negativo.