TTY
ソースコード: lib/tty.js
node:tty モジュールは、tty.ReadStream と tty.WriteStream クラスを提供します。ほとんどの場合、このモジュールを直接使用する必要も可能性もありません。ただし、以下を使用してアクセスできます。
const tty = require('node:tty');Node.js がテキスト端末 ("TTY") が接続された状態で実行されていることを検出すると、デフォルトで process.stdin が tty.ReadStream のインスタンスとして初期化され、process.stdout と process.stderr の両方が、デフォルトで tty.WriteStream のインスタンスとして初期化されます。Node.js が TTY コンテキスト内で実行されているかどうかを判断する推奨される方法は、process.stdout.isTTY プロパティの値が true であることを確認することです。
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
falseほとんどの場合、アプリケーションが tty.ReadStream および tty.WriteStream クラスのインスタンスを手動で作成する理由はありません。
クラス: tty.ReadStream
追加: v0.5.8
- 拡張: <net.Socket>
TTY の読み取り可能な側を表します。通常の場合、process.stdin は Node.js プロセス内で唯一の tty.ReadStream インスタンスであり、追加のインスタンスを作成する理由はありません。
readStream.isRaw
追加: v0.7.7
TTY が現在、生のデバイスとして動作するように構成されている場合は true である boolean。
ターミナルが生モードで動作している場合でも、プロセスが開始されるとこのフラグは常に false になります。その値は、その後の setRawMode の呼び出しによって変化します。
readStream.isTTY
追加: v0.5.8
tty.ReadStream インスタンスの場合、常に true である boolean。
readStream.setRawMode(mode)
Added in: v0.7.7
mode<boolean>trueの場合、tty.ReadStreamを raw デバイスとして動作するように設定します。falseの場合、tty.ReadStreamをデフォルトモードで動作するように設定します。readStream.isRawプロパティは、結果のモードに設定されます。- 戻り値: <this> リードストリームのインスタンス。
tty.ReadStream を設定して、raw デバイスとして動作させることができます。
raw モードの場合、入力は常に文字単位で利用可能であり、修飾子は含まれません。さらに、端末による文字の特殊な処理はすべて無効になり、入力文字のエコーも無効になります。このモードでは、+ を押しても SIGINT は発生しません。
Class: tty.WriteStream
Added in: v0.5.8
- 継承元: <net.Socket>
TTY の書き込み可能な側を表します。通常、process.stdout と process.stderr は、Node.js プロセスで作成される唯一の tty.WriteStream インスタンスであり、追加のインスタンスを作成する理由はありません。
new tty.ReadStream(fd[, options])
[履歴]
| バージョン | 変更 |
|---|---|
| v0.9.4 | options 引数がサポートされています。 |
| v0.5.8 | Added in: v0.5.8 |
fd<number> TTY に関連付けられたファイル記述子。options<Object> 親のnet.Socketに渡されるオプション。net.Socketコンストラクター のoptionsを参照してください。- 戻り値 <tty.ReadStream>
TTY に関連付けられた fd の ReadStream を作成します。
new tty.WriteStream(fd)
Added in: v0.5.8
fd<number> TTY に関連付けられたファイル記述子。- 戻り値 <tty.WriteStream>
TTY に関連付けられた fd の WriteStream を作成します。
イベント: 'resize'
追加: v0.7.7
'resize' イベントは、writeStream.columns または writeStream.rows プロパティのいずれかが変更されるたびに発生します。呼び出される際、リスナーコールバックに引数は渡されません。
process.stdout.on('resize', () => {
console.log('screen size has changed!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});writeStream.clearLine(dir[, callback])
[履歴]
| バージョン | 変更点 |
|---|---|
| v12.7.0 | ストリームの write() コールバックと戻り値が公開されました。 |
| v0.7.7 | 追加: v0.7.7 |
dir<number>-1: カーソルから左1: カーソルから右0: 行全体
callback<Function> 操作が完了すると呼び出されます。戻り値: <boolean> ストリームが、追加のデータを書き込む前に
'drain'イベントが発行されるのを呼び出し元のコードに待機させたい場合はfalse。それ以外の場合はtrue。
writeStream.clearLine() は、dir で指定された方向にこの WriteStream の現在の行をクリアします。
writeStream.clearScreenDown([callback])
[履歴]
| バージョン | 変更点 |
|---|---|
| v12.7.0 | ストリームの write() コールバックと戻り値が公開されました。 |
| v0.7.7 | 追加: v0.7.7 |
callback<Function> 操作が完了すると呼び出されます。- 戻り値: <boolean> ストリームが、追加のデータを書き込む前に
'drain'イベントが発行されるのを呼び出し元のコードに待機させたい場合はfalse。それ以外の場合はtrue。
writeStream.clearScreenDown() は、この WriteStream を現在のカーソル位置から下方向にクリアします。
writeStream.columns
追加: v0.7.7
TTYが現在持っているカラム数を指定するnumber。このプロパティは、'resize'イベントが発生するたびに更新されます。
writeStream.cursorTo(x[, y][, callback])
[履歴]
| バージョン | 変更 |
|---|---|
| v12.7.0 | ストリームのwrite()コールバックと戻り値が公開されました。 |
| v0.7.7 | 追加: v0.7.7 |
x<number>y<number>callback<Function> 操作が完了すると呼び出されます。- 戻り値: <boolean> ストリームが、追加のデータを書き込む前に
'drain'イベントが発行されるのを呼び出し元のコードが待機することを望む場合はfalse、それ以外の場合はtrue。
writeStream.cursorTo() は、この WriteStream のカーソルを指定された位置に移動します。
writeStream.getColorDepth([env])
追加: v9.9.0
戻り値:
- 2色の場合
1 - 16色の場合
4 - 256色の場合
8 - 16,777,216色サポートの場合
24
これをターミナルがサポートする色を判断するために使用します。 ターミナルの色の性質上、偽陽性または偽陰性が発生する可能性があります。 プロセス情報と、使用されているターミナルについて嘘をつく可能性のある環境変数によって異なります。 特定のターミナルの使用をシミュレートするために env オブジェクトを渡すことが可能です。 これは、特定の環境設定がどのように動作するかを確認するのに役立ちます。
特定の色サポートを強制するには、以下の環境設定のいずれかを使用します。
- 2色:
FORCE_COLOR = 0(色を無効にします) - 16色:
FORCE_COLOR = 1 - 256色:
FORCE_COLOR = 2 - 16,777,216色:
FORCE_COLOR = 3
色サポートの無効化は、NO_COLOR および NODE_DISABLE_COLORS 環境変数を使用しても可能です。
writeStream.getWindowSize()
Added in: v0.7.7
- 戻り値: <number[]>
writeStream.getWindowSize() は、この WriteStream に対応する TTY のサイズを返します。配列は [numColumns, numRows] の型で、numColumns と numRows は対応する TTY の列数と行数を表します。
writeStream.hasColors([count][, env])
Added in: v11.13.0, v10.16.0
count<integer> 要求される色の数(最低2)。デフォルト: 16。env<Object> チェックする環境変数を含むオブジェクト。これにより、特定のターミナルの使用をシミュレートできます。デフォルト:process.env。- 戻り値: <boolean>
writeStream が count で指定された数以上の色をサポートしている場合は true を返します。最小サポートは 2 色(白黒)です。
これは、writeStream.getColorDepth() で説明されているのと同じ誤検出と誤陰性があります。
process.stdout.hasColors();
// `stdout` が少なくとも 16 色をサポートしている場合は true または false を返します。
process.stdout.hasColors(256);
// `stdout` が少なくとも 256 色をサポートしている場合は true または false を返します。
process.stdout.hasColors({ TMUX: '1' });
// true を返します。
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// false を返します(環境設定は 2 ** 8 色をサポートしているふりをします)。writeStream.isTTY
Added in: v0.5.8
常に true である boolean。
writeStream.moveCursor(dx, dy[, callback])
[履歴]
| バージョン | 変更 |
|---|---|
| v12.7.0 | ストリームの write() コールバックと戻り値が公開されました。 |
| v0.7.7 | Added in: v0.7.7 |
dx<number>dy<number>callback<Function> 操作が完了すると呼び出されます。- 戻り値: <boolean> ストリームが追加のデータを書き込む前に、呼び出し元のコードに
'drain'イベントが発行されるのを待つように要求する場合はfalse、そうでない場合はtrue。
writeStream.moveCursor() は、この WriteStream のカーソルを現在の位置から相対的に移動します。
writeStream.rows
追加: v0.7.7
TTY が現在持つ行数を指定する number。このプロパティは、'resize' イベントが発行されるたびに更新されます。
tty.isatty(fd)
追加: v0.5.8
tty.isatty() メソッドは、与えられた fd が TTY に関連付けられている場合は true を、そうでない場合は false を返します。これには、fd が非負の整数でない場合も含まれます。