TTY
[Stable : 2 - Stable]
Stable : 2 Stability : 2 - Stable
Source Code : lib/tty.js
Le module node:tty
fournit les classes tty.ReadStream
et tty.WriteStream
. Dans la plupart des cas, il ne sera pas nécessaire ni possible d'utiliser ce module directement. Cependant, il est accessible via :
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 consiste à 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 n'y aura pratiquement aucune raison pour une application de créer manuellement des instances des classes tty.ReadStream
et tty.WriteStream
.
Class: tty.ReadStream
Ajouté dans : v0.5.8
- Extend : <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 d'en créer d'autres.
readStream.isRaw
Ajouté dans : v0.7.7
Un booléen qui vaut true
si le TTY est actuellement configuré pour fonctionner comme un périphérique brut.
Ce drapeau est toujours false
lorsqu'un processus démarre, même si le terminal fonctionne en mode brut. Sa valeur changera avec les appels suivants à setRawMode
.
readStream.isTTY
Ajouté dans : v0.5.8
Un booléen qui est toujours true
pour les instances tty.ReadStream
.
readStream.setRawMode(mode)
Ajouté dans : v0.7.7
mode
<booléen> Sitrue
, configuretty.ReadStream
pour fonctionner comme un périphérique brut. Sifalse
, configuretty.ReadStream
pour fonctionner en 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, la saisie est toujours disponible caractère par caractère, sans les modificateurs. De plus, tout traitement spécial des caractères par le terminal est désactivé, y compris l'écho des caractères de saisie. + ne provoquera plus de SIGINT
en ce mode.
Classe : tty.WriteStream
Ajouté dans : v0.5.8
- Étend : <net.Socket>
Représente le côté inscriptible d'un TTY. Dans des circonstances normales, process.stdout
et process.stderr
seront les seules instances 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
<nombre> Un descripteur de fichier associé à un TTY.options
<Objet> Options passées au parentnet.Socket
, voiroptions
du constructeurnet.Socket
.- Retourne <tty.ReadStream>
Crée un ReadStream
pour fd
associé à un TTY.
new tty.WriteStream(fd)
Ajouté dans : v0.5.8
fd
<nombre> 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 les propriétés writeStream.columns
ou writeStream.rows
changent. 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
: vers la gauche du curseur1
: vers la droite du curseur0
: toute la ligne
callback
<Function> Appelée une fois l'opération terminée.Retourne : <boolean>
false
si le flux souhaite que le code appelant attende l'émission de l'événement'drain'
avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.clearLine()
efface la ligne actuelle de ce WriteStream
dans la 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> Appelée une fois l'opération terminée.- Retourne : <boolean>
false
si le flux souhaite que le code appelant attende l'émission de l'événement'drain'
avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.clearScreenDown()
efface ce WriteStream
depuis le curseur actuel vers le bas.
writeStream.columns
Ajouté dans : v0.7.7
Un nombre
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 flux sont exposés. |
v0.7.7 | Ajouté dans : v0.7.7 |
x
<nombre>y
<nombre>callback
<Fonction> Invoqué une fois l'opération terminée.- Retourne : <booléen>
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.cursorTo()
déplace le curseur de ce WriteStream
à la position spécifiée.
writeStream.getColorDepth([env])
Ajouté dans : v9.9.0
env
<Objet> Un objet contenant les variables d'environnement à vérifier. Cela permet de simuler l'utilisation d'un terminal spécifique. Défaut :process.env
.- Retourne : <nombre>
Retourne :
1
pour 2,4
pour 16,8
pour 256,24
pour 16 777 216 couleurs prises en charge.
Utilisez ceci pour déterminer les couleurs prises en charge par le terminal. 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 appliquer une prise en charge de couleur spécifique, 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
Il est également possible de désactiver la prise en charge des couleurs à l'aide des variables d'environnement NO_COLOR
et NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
Ajouté dans : v0.7.7
- Retourne : <number[]>
writeStream.getWindowSize()
retourne la taille du TTY correspondant à ce WriteStream
. Le tableau est de 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
. Le support minimum est de 2 (noir et blanc).
Cela présente 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 simule la prise en charge de 2 ** 8 couleurs).
writeStream.isTTY
Ajouté dans : v0.5.8
Un booléen qui est toujours true
.
writeStream.moveCursor(dx, dy[, callback])
[Historique]
Version | Modifications |
---|---|
v12.7.0 | Le rappel write() du flux et la valeur de retour 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 l'émission de l'événement'drain'
avant de continuer à écrire des données supplémentaires ; sinontrue
.
writeStream.moveCursor()
déplace le curseur de ce WriteStream
relativement à sa position actuelle.
writeStream.rows
Ajouté dans : v0.7.7
Un nombre
spécifiant le nombre de lignes que le TTY possède 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()
retourne true
si le fd
donné est associé à un TTY et false
si ce n'est pas le cas, y compris lorsque fd
n'est pas un entier positif ou nul.