TTY
[Stable: 2 - Stable]
Stable: 2 Stabilité: 2 - Stable
Code source: lib/tty.js
Le module node:tty
fournit les classes tty.ReadStream
et tty.WriteStream
. Dans la plupart des cas, il ne sera ni nécessaire ni possible d'utiliser ce module directement. Cependant, il est accessible en utilisant :
const tty = require('node:tty');
Lorsque Node.js détecte qu'il est exécuté avec un terminal texte ("TTY") attaché, process.stdin
sera, par défaut, initialisé comme une instance de tty.ReadStream
et process.stdout
et process.stderr
seront, par défaut, des instances de tty.WriteStream
. La méthode préférée pour déterminer si Node.js est exécuté dans un contexte TTY est de vérifier que la valeur de la propriété process.stdout.isTTY
est true
:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
Dans la plupart des cas, il ne devrait y avoir que peu ou pas de raison pour qu'une application crée manuellement des instances des classes tty.ReadStream
et tty.WriteStream
.
Classe : tty.ReadStream
Ajoutée dans : v0.5.8
- Hérite de : <net.Socket>
Représente le côté lisible d'un TTY. Dans des circonstances normales, process.stdin
sera la seule instance tty.ReadStream
dans un processus Node.js et il ne devrait y avoir aucune raison de créer des instances supplémentaires.
readStream.isRaw
Ajoutée dans : v0.7.7
Un boolean
qui vaut true
si le TTY est actuellement configuré pour fonctionner comme un périphérique brut.
Cet indicateur est toujours false
lorsqu'un processus démarre, même si le terminal fonctionne en mode brut. Sa valeur changera avec les appels ultérieurs à setRawMode
.
readStream.isTTY
Ajoutée dans : v0.5.8
Un boolean
qui est toujours true
pour les instances tty.ReadStream
.
readStream.setRawMode(mode)
Ajouté dans : v0.7.7
mode
<boolean> Sitrue
, configure letty.ReadStream
pour qu'il fonctionne comme un périphérique brut. Sifalse
, configure letty.ReadStream
pour qu'il fonctionne dans son mode par défaut. La propriétéreadStream.isRaw
sera définie sur le mode résultant.- Retourne : <this> L'instance du flux de lecture.
Permet la configuration de tty.ReadStream
afin qu'il fonctionne comme un périphérique brut.
En mode brut, l'entrée est toujours disponible caractère par caractère, sans inclure les modificateurs. De plus, tout traitement spécial des caractères par le terminal est désactivé, y compris l'écho des caractères d'entrée. + ne provoquera plus de SIGINT
dans ce mode.
Classe : tty.WriteStream
Ajouté dans : v0.5.8
- Hérite de : <net.Socket>
Représente le côté accessible en écriture d’un TTY. Dans des circonstances normales, process.stdout
et process.stderr
seront les seules instances de tty.WriteStream
créées pour un processus Node.js et il ne devrait y avoir aucune raison de créer des instances supplémentaires.
new tty.ReadStream(fd[, options])
[Historique]
Version | Modifications |
---|---|
v0.9.4 | L'argument options est pris en charge. |
v0.5.8 | Ajouté dans : v0.5.8 |
fd
<number> Un descripteur de fichier associé à un TTY.options
<Object> Options transmises au parentnet.Socket
, voiroptions
duconstructeur net.Socket
.- Retourne <tty.ReadStream>
Crée un ReadStream
pour fd
associé à un TTY.
new tty.WriteStream(fd)
Ajouté dans : v0.5.8
fd
<number> Un descripteur de fichier associé à un TTY.- Retourne <tty.WriteStream>
Crée un WriteStream
pour fd
associé à un TTY.
Événement : 'resize'
Ajouté dans : v0.7.7
L'événement 'resize'
est émis chaque fois que l'une des propriétés writeStream.columns
ou writeStream.rows
a changé. Aucun argument n'est passé à la fonction de rappel de l'écouteur lorsqu'elle est appelée.
process.stdout.on('resize', () => {
console.log('la taille de l\'écran a changé !');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])
[Historique]
Version | Modifications |
---|---|
v12.7.0 | La fonction de rappel et la valeur de retour de write() du flux sont exposées. |
v0.7.7 | Ajouté dans : v0.7.7 |
dir
<number>-1
: à gauche du curseur1
: à droite du curseur0
: toute la ligne
callback
<Function> Invoquée une fois l'opération terminée.Retourne : <boolean>
false
si le flux souhaite que le code appelant attende que l'événement'drain'
soit émis avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.clearLine()
efface la ligne actuelle de ce WriteStream
dans une direction identifiée par dir
.
writeStream.clearScreenDown([callback])
[Historique]
Version | Modifications |
---|---|
v12.7.0 | La fonction de rappel et la valeur de retour de write() du flux sont exposées. |
v0.7.7 | Ajouté dans : v0.7.7 |
callback
<Function> Invoquée une fois l'opération terminée.- Retourne : <boolean>
false
si le flux souhaite que le code appelant attende que l'événement'drain'
soit émis avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.clearScreenDown()
efface ce WriteStream
du curseur actuel vers le bas.
writeStream.columns
Ajouté dans : v0.7.7
Un number
spécifiant le nombre de colonnes que le TTY possède actuellement. Cette propriété est mise à jour chaque fois que l'événement 'resize'
est émis.
writeStream.cursorTo(x[, y][, callback])
[Historique]
Version | Modifications |
---|---|
v12.7.0 | Le rappel et la valeur de retour de write() du stream sont exposés. |
v0.7.7 | Ajouté dans : v0.7.7 |
x
<number>y
<number>callback
<Function> Invoked once the operation completes.- Retourne : <boolean>
false
si le stream souhaite que le code appelant attende que l'événement'drain'
soit émis avant de continuer à écrire des données supplémentaires ; sinon,true
.
writeStream.cursorTo()
déplace le curseur de ce WriteStream
à la position spécifiée.
writeStream.getColorDepth([env])
Ajouté dans : v9.9.0
env
<Object> Un objet contenant les variables d'environnement à vérifier. Ceci permet de simuler l'utilisation d'un terminal spécifique. Par défaut :process.env
.- Retourne : <number>
Retourne :
1
pour 2,4
pour 16,8
pour 256,24
pour 16 777 216 couleurs supportées.
Utilisez ceci pour déterminer quelles couleurs le terminal prend en charge. En raison de la nature des couleurs dans les terminaux, il est possible d'avoir des faux positifs ou des faux négatifs. Cela dépend des informations du processus et des variables d'environnement qui peuvent mentir sur le terminal utilisé. Il est possible de transmettre un objet env
pour simuler l'utilisation d'un terminal spécifique. Cela peut être utile pour vérifier le comportement de paramètres d'environnement spécifiques.
Pour forcer une prise en charge spécifique des couleurs, utilisez l'un des paramètres d'environnement ci-dessous.
- 2 couleurs :
FORCE_COLOR = 0
(désactive les couleurs) - 16 couleurs :
FORCE_COLOR = 1
- 256 couleurs :
FORCE_COLOR = 2
- 16 777 216 couleurs :
FORCE_COLOR = 3
La désactivation de la prise en charge des couleurs est également possible en utilisant les variables d'environnement NO_COLOR
et NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
Ajouté dans : v0.7.7
- Retourne : <number[]>
writeStream.getWindowSize()
renvoie la taille du TTY correspondant à ce WriteStream
. Le tableau est du type [numColumns, numRows]
où numColumns
et numRows
représentent le nombre de colonnes et de lignes dans le TTY correspondant.
writeStream.hasColors([count][, env])
Ajouté dans : v11.13.0, v10.16.0
count
<integer> Le nombre de couleurs demandées (minimum 2). Par défaut : 16.env
<Object> Un objet contenant les variables d'environnement à vérifier. Cela permet de simuler l'utilisation d'un terminal spécifique. Par défaut :process.env
.- Retourne : <boolean>
Retourne true
si le writeStream
prend en charge au moins autant de couleurs que celles fournies dans count
. La prise en charge minimale est de 2 (noir et blanc).
Cela a les mêmes faux positifs et faux négatifs que ceux décrits dans writeStream.getColorDepth()
.
process.stdout.hasColors();
// Retourne true ou false selon que `stdout` prend en charge au moins 16 couleurs.
process.stdout.hasColors(256);
// Retourne true ou false selon que `stdout` prend en charge au moins 256 couleurs.
process.stdout.hasColors({ TMUX: '1' });
// Retourne true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Retourne false (le paramètre d'environnement prétend prendre en charge 2 ** 8 couleurs).
writeStream.isTTY
Ajouté dans : v0.5.8
Un boolean
qui est toujours true
.
writeStream.moveCursor(dx, dy[, callback])
[Historique]
Version | Modifications |
---|---|
v12.7.0 | Le rappel et la valeur de retour write() du flux sont exposés. |
v0.7.7 | Ajouté dans : v0.7.7 |
dx
<number>dy
<number>callback
<Function> Invoqué une fois l'opération terminée.- Retourne : <boolean>
false
si le flux souhaite que le code appelant attende que l'événement'drain'
soit émis avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.moveCursor()
déplace le curseur de ce WriteStream
par rapport à sa position actuelle.
writeStream.rows
Ajouté dans : v0.7.7
Un number
spécifiant le nombre de lignes que le TTY a actuellement. Cette propriété est mise à jour chaque fois que l'événement 'resize'
est émis.
tty.isatty(fd)
Ajouté dans : v0.5.8
La méthode tty.isatty()
renvoie true
si le fd
donné est associé à un TTY et false
s'il ne l'est pas, y compris lorsque fd
n'est pas un entier non négatif.