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)
추가된 버전: v0.7.7
mode
<boolean>true
인 경우tty.ReadStream
이 원시 장치로 작동하도록 구성합니다.false
인 경우tty.ReadStream
이 기본 모드로 작동하도록 구성합니다.readStream.isRaw
속성은 결과 모드로 설정됩니다.- 반환 값: <this> 읽기 스트림 인스턴스입니다.
tty.ReadStream
이 원시 장치로 작동하도록 구성할 수 있습니다.
원시 모드에서는 입력이 수정자를 포함하지 않고 항상 문자 단위로 사용할 수 있습니다. 또한 터미널에서 문자를 특수 처리하는 기능(입력 문자 에코 포함)이 모두 비활성화됩니다. 이 모드에서는 +가 더 이상 SIGINT
를 발생시키지 않습니다.
클래스: tty.WriteStream
추가된 버전: 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 | 추가된 버전: v0.5.8 |
fd
<number> TTY와 연결된 파일 디스크립터입니다.options
<Object> 상위net.Socket
에 전달되는 옵션으로,net.Socket
생성자의options
를 참조하세요.- 반환 값 <tty.ReadStream>
TTY와 연결된 fd
에 대한 ReadStream
을 만듭니다.
new tty.WriteStream(fd)
추가된 버전: v0.5.8
fd
<number> TTY와 연결된 파일 디스크립터입니다.- 반환 값 <tty.WriteStream>
TTY와 연결된 fd
에 대한 WriteStream
을 만듭니다.
Event: 'resize'
Added in: v0.7.7
'resize'
이벤트는 writeStream.columns
또는 writeStream.rows
속성이 변경될 때마다 발생합니다. 호출 시 리스너 콜백에 전달되는 인수는 없습니다.
process.stdout.on('resize', () => {
console.log('화면 크기가 변경되었습니다!')
console.log(`${process.stdout.columns}x${process.stdout.rows}`)
})
writeStream.clearLine(dir[, callback])
[History]
버전 | 변경 사항 |
---|---|
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])
[History]
버전 | 변경 사항 |
---|---|
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
env
<Object> 확인할 환경 변수를 포함하는 객체입니다. 이를 통해 특정 터미널의 사용을 시뮬레이션할 수 있습니다. 기본값:process.env
.- 반환 값: <number>
반환 값:
- 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()
추가된 버전: v0.7.7
- 반환값: <<number[]>
writeStream.getWindowSize()
는 이 WriteStream
에 해당하는 TTY의 크기를 반환합니다. 배열은 [numColumns, numRows]
형식이며, numColumns
와 numRows
는 해당 TTY의 열 수와 행 수를 나타냅니다.
writeStream.hasColors([count][, env])
추가된 버전: 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
추가된 버전: v0.5.8
항상 true
인 boolean
값입니다.
writeStream.moveCursor(dx, dy[, callback])
[History]
버전 | 변경 사항 |
---|---|
v12.7.0 | 스트림의 write() 콜백과 반환값이 노출됩니다. |
v0.7.7 | 추가된 버전: 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
가 음수가 아닌 정수가 아닌 경우도 포함됩니다.