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
falseNella 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.ReadStreamper operare come un dispositivo raw. Sefalse, configura iltty.ReadStreamper operare nella sua modalità predefinita. La proprietàreadStream.isRawsarà 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.Socketpadre, vedereoptionsdelnet.Socketconstructor.- 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>
falsese 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>
falsese 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>
falsese 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:
1per 2,4per 16,8per 256,24per 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>
falsese 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.