TTY
[Estável: 2 - Estável]
Estável: 2 Estabilidade: 2 - Estável
Código-fonte: lib/tty.js
O módulo node:tty fornece as classes tty.ReadStream e tty.WriteStream. Na maioria dos casos, não será necessário ou possível usar este módulo diretamente. No entanto, ele pode ser acessado usando:
const tty = require('node:tty');Quando o Node.js detecta que está sendo executado com um terminal de texto ("TTY") anexado, process.stdin será, por padrão, inicializado como uma instância de tty.ReadStream e ambos process.stdout e process.stderr serão, por padrão, instâncias de tty.WriteStream. O método preferido para determinar se o Node.js está sendo executado dentro de um contexto TTY é verificar se o valor da propriedade process.stdout.isTTY é true:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
falseNa maioria dos casos, não deve haver pouca ou nenhuma razão para que um aplicativo crie manualmente instâncias das classes tty.ReadStream e tty.WriteStream.
Classe: tty.ReadStream
Adicionado em: v0.5.8
- Estende: <net.Socket>
Representa o lado legível de um TTY. Em circunstâncias normais, process.stdin será a única instância de tty.ReadStream em um processo Node.js e não deve haver razão para criar instâncias adicionais.
readStream.isRaw
Adicionado em: v0.7.7
Um boolean que é true se o TTY estiver atualmente configurado para operar como um dispositivo bruto.
Este sinalizador é sempre false quando um processo é iniciado, mesmo que o terminal esteja operando no modo bruto. Seu valor mudará com chamadas subsequentes para setRawMode.
readStream.isTTY
Adicionado em: v0.5.8
Um boolean que é sempre true para instâncias de tty.ReadStream.
readStream.setRawMode(mode)
Adicionado em: v0.7.7
mode<boolean> Setrue, configura otty.ReadStreampara operar como um dispositivo bruto. Sefalse, configura otty.ReadStreampara operar em seu modo padrão. A propriedadereadStream.isRawserá definida para o modo resultante.- Retorna: <this> A instância do stream de leitura.
Permite a configuração de tty.ReadStream para que ele opere como um dispositivo bruto.
Quando em modo bruto, a entrada está sempre disponível caractere por caractere, não incluindo modificadores. Além disso, todo o processamento especial de caracteres pelo terminal é desativado, incluindo o eco dos caracteres de entrada. + não causará mais um SIGINT quando estiver neste modo.
Classe: tty.WriteStream
Adicionado em: v0.5.8
- Estende: <net.Socket>
Representa o lado gravável de um TTY. Em circunstâncias normais, process.stdout e process.stderr serão as únicas instâncias de tty.WriteStream criadas para um processo Node.js e não deve haver razão para criar instâncias adicionais.
new tty.ReadStream(fd[, options])
[Histórico]
| Versão | Mudanças |
|---|---|
| v0.9.4 | O argumento options é suportado. |
| v0.5.8 | Adicionado em: v0.5.8 |
fd<number> Um descritor de arquivo associado a um TTY.options<Object> Opções passadas para onet.Socketpai, vejaoptionsdonet.Socketconstructor.- Retorna <tty.ReadStream>
Cria um ReadStream para fd associado a um TTY.
new tty.WriteStream(fd)
Adicionado em: v0.5.8
fd<number> Um descritor de arquivo associado a um TTY.- Retorna <tty.WriteStream>
Cria um WriteStream para fd associado a um TTY.
Evento: 'resize'
Adicionado em: v0.7.7
O evento 'resize' é emitido sempre que uma das propriedades writeStream.columns ou writeStream.rows é alterada. Nenhum argumento é passado para o callback do listener quando chamado.
process.stdout.on('resize', () => {
console.log('o tamanho da tela foi alterado!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});writeStream.clearLine(dir[, callback])
[Histórico]
| Versão | Alterações |
|---|---|
| v12.7.0 | O callback write() do stream e o valor de retorno são expostos. |
| v0.7.7 | Adicionado em: v0.7.7 |
dir<number>-1: à esquerda do cursor1: à direita do cursor0: a linha inteira
callback<Function> Invocado quando a operação é concluída.Retorna: <boolean>
falsese o stream deseja que o código de chamada espere que o evento'drain'seja emitido antes de continuar a gravar dados adicionais; caso contrário,true.
writeStream.clearLine() limpa a linha atual deste WriteStream em uma direção identificada por dir.
writeStream.clearScreenDown([callback])
[Histórico]
| Versão | Alterações |
|---|---|
| v12.7.0 | O callback write() do stream e o valor de retorno são expostos. |
| v0.7.7 | Adicionado em: v0.7.7 |
callback<Function> Invocado quando a operação é concluída.- Retorna: <boolean>
falsese o stream deseja que o código de chamada espere que o evento'drain'seja emitido antes de continuar a gravar dados adicionais; caso contrário,true.
writeStream.clearScreenDown() limpa este WriteStream do cursor atual para baixo.
writeStream.columns
Adicionado em: v0.7.7
Um number especificando o número de colunas que o TTY possui atualmente. Esta propriedade é atualizada sempre que o evento 'resize' é emitido.
writeStream.cursorTo(x[, y][, callback])
[Histórico]
| Versão | Mudanças |
|---|---|
| v12.7.0 | O callback e o valor de retorno de write() do stream são expostos. |
| v0.7.7 | Adicionado em: v0.7.7 |
x<number>y<number>callback<Function> Invocado quando a operação for concluída.- Retorna: <boolean>
falsese o stream deseja que o código de chamada espere que o evento'drain'seja emitido antes de continuar a gravar dados adicionais; caso contrário,true.
writeStream.cursorTo() move o cursor deste WriteStream para a posição especificada.
writeStream.getColorDepth([env])
Adicionado em: v9.9.0
env<Object> Um objeto contendo as variáveis de ambiente para verificar. Isso permite simular o uso de um terminal específico. Padrão:process.env.- Retorna: <number>
Retorna:
1para 2,4para 16,8para 256,24para 16.777.216 cores suportadas.
Use isso para determinar quais cores o terminal suporta. Devido à natureza das cores nos terminais, é possível ter falsos positivos ou falsos negativos. Depende das informações do processo e das variáveis de ambiente que podem mentir sobre qual terminal está sendo usado. É possível passar um objeto env para simular o uso de um terminal específico. Isso pode ser útil para verificar como configurações de ambiente específicas se comportam.
Para impor um suporte de cor específico, use uma das configurações de ambiente abaixo.
- 2 cores:
FORCE_COLOR = 0(Desativa as cores) - 16 cores:
FORCE_COLOR = 1 - 256 cores:
FORCE_COLOR = 2 - 16.777.216 cores:
FORCE_COLOR = 3
A desativação do suporte a cores também é possível usando as variáveis de ambiente NO_COLOR e NODE_DISABLE_COLORS.
writeStream.getWindowSize()
Adicionado em: v0.7.7
- Retorna: <number[]>
writeStream.getWindowSize() retorna o tamanho do TTY correspondente a este WriteStream. O array é do tipo [numColumns, numRows] onde numColumns e numRows representam o número de colunas e linhas no TTY correspondente.
writeStream.hasColors([count][, env])
Adicionado em: v11.13.0, v10.16.0
count<integer> O número de cores solicitadas (mínimo 2). Padrão: 16.env<Object> Um objeto contendo as variáveis de ambiente para verificar. Isso permite simular o uso de um terminal específico. Padrão:process.env.- Retorna: <boolean>
Retorna true se o writeStream suportar pelo menos tantas cores quanto as fornecidas em count. O suporte mínimo é 2 (preto e branco).
Isso tem os mesmos falsos positivos e negativos descritos em writeStream.getColorDepth().
process.stdout.hasColors();
// Retorna true ou false dependendo se `stdout` suporta pelo menos 16 cores.
process.stdout.hasColors(256);
// Retorna true ou false dependendo se `stdout` suporta pelo menos 256 cores.
process.stdout.hasColors({ TMUX: '1' });
// Retorna true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Retorna false (a configuração do ambiente finge suportar 2 ** 8 cores).writeStream.isTTY
Adicionado em: v0.5.8
Um boolean que é sempre true.
writeStream.moveCursor(dx, dy[, callback])
[Histórico]
| Versão | Mudanças |
|---|---|
| v12.7.0 | O retorno de chamada e o valor de retorno write() do stream são expostos. |
| v0.7.7 | Adicionado em: v0.7.7 |
dx<number>dy<number>callback<Function> Invocado quando a operação for concluída.- Retorna: <boolean>
falsese o stream deseja que o código de chamada espere que o evento'drain'seja emitido antes de continuar a gravar dados adicionais; caso contrário,true.
writeStream.moveCursor() move o cursor deste WriteStream relativo à sua posição atual.
writeStream.rows
Adicionado em: v0.7.7
Um number especificando o número de linhas que o TTY tem atualmente. Esta propriedade é atualizada sempre que o evento 'resize' é emitido.
tty.isatty(fd)
Adicionado em: v0.5.8
O método tty.isatty() retorna true se o fd fornecido estiver associado a um TTY e false se não estiver, incluindo sempre que fd não for um inteiro não negativo.