Bare Docs
ReferenceBareModules

bare-tty

Native TTY streams for JavaScript

Documented against v5.2.1
stable

bare-tty — Native TTY streams for JavaScript. It is a native addon and requires Bare >=1.16.0.

Mirrors the Node.js tty module.

npm i bare-tty

Usage

const tty = require('bare-tty')

const stdout = new tty.WriteStream(1)

stdout.write('Hello world!\n')

API

ReadStream

new ReadStream(fd: number, opts?: ReadStreamOptions)

Create a ReadStream for the TTY file descriptor fd.

Parameters

ParameterTypeDefaultDescription
fdnumber—The file descriptor of the TTY.
opts?ReadStreamOptions—Options; readBufferSize defaults to 65536 and allowHalfOpen to true.

ReadStream._destroy(err: Error | null, cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
errError | null——
cbStreamCallback——

ReadStream._open(cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
cbStreamCallback——

ReadStream._predestroy(): void

_read(size: number): void

Parameters

ParameterTypeDefaultDescription
sizenumber——

ReadStream.closed: boolean

ReadStream.destroy(err?: Error | null): void

Parameters

ParameterTypeDefaultDescription
err?Error | null——

ReadStream.destroyed: boolean

ReadStream.destroying: boolean

ReadStream.errored: Error | null

ReadStream.fd: number

The stream's underlying file descriptor.

ReadStream.isTTY: true

Always true, identifying the stream as a TTY.

pause(): this

pipe<S extends Writable>(dest: S, cb?: StreamCallback): S

Parameters

ParameterTypeDefaultDescription
destS——
cb?StreamCallback——

push(data: unknown | null, encoding?: BufferEncoding): boolean

Parameters

ParameterTypeDefaultDescription
dataunknown | null——
encoding?BufferEncoding——

read(): unknown | null

ReadStream.readable: boolean

resume(): this

setEncoding(encoding: BufferEncoding): void

Parameters

ParameterTypeDefaultDescription
encodingBufferEncoding——

setMode(mode: number): this

Set the TTY mode directly, using one of the constants.mode values. Returns the stream.

Parameters

ParameterTypeDefaultDescription
modenumber—The TTY mode to set, one of the constants.mode values.

setRawMode(mode: boolean): this

Enable or disable raw mode. In raw mode, input is delivered byte-by-byte without line buffering or special key processing. Returns the stream.

Parameters

ParameterTypeDefaultDescription
modeboolean—true to enable raw mode, false to return to normal mode.

unshift(data: unknown | null, encoding?: BufferEncoding): boolean

Parameters

ParameterTypeDefaultDescription
dataunknown | null——
encoding?BufferEncoding——

ReadStream.writable: boolean

WriteStream

new WriteStream(fd: number, opts?: WritableOptions)

Create a WriteStream for the TTY file descriptor fd.

Parameters

ParameterTypeDefaultDescription
fdnumber—The file descriptor of the TTY.
opts?WritableOptions——

WriteStream._destroy(err: Error | null, cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
errError | null——
cbStreamCallback——

_final(cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
cbStreamCallback——

WriteStream._open(cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
cbStreamCallback——

WriteStream._predestroy(): void

_write(data: unknown, encoding: StreamEncoding, cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
dataunknown——
encodingStreamEncoding——
cbStreamCallback——

_writev(batch: { chunk: unknown; encoding: StreamEncoding }[], cb: StreamCallback): void

Parameters

ParameterTypeDefaultDescription
batch{ chunk: unknown; encoding: StreamEncoding }[]——
cbStreamCallback——

WriteStream.closed: boolean

columns: number

The current number of columns in the TTY.

cork(): void

WriteStream.destroy(err?: Error | null): void

Parameters

ParameterTypeDefaultDescription
err?Error | null——

WriteStream.destroyed: boolean

WriteStream.destroying: boolean

end(cb?: StreamCallback): this

Overloads:

end(cb?: StreamCallback): this
end(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): this
end(data: unknown, cb?: StreamCallback): this

Parameters

ParameterTypeDefaultDescription
cb?StreamCallback——

WriteStream.errored: Error | null

WriteStream.fd: number

The stream's underlying file descriptor.

getWindowSize(): [width: number, height: number]

Return the current TTY dimensions as [width, height].

WriteStream.isTTY: true

Always true, identifying the stream as a TTY.

WriteStream.readable: boolean

rows: number

The current number of rows in the TTY.

uncork(): void

WriteStream.writable: boolean

write(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): boolean

Overloads:

write(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): boolean
write(data: unknown, cb?: StreamCallback): boolean

Parameters

ParameterTypeDefaultDescription
dataunknown——
encoding?BufferEncoding——
cb?StreamCallback——

Functions

isTTY(fd: number): boolean

Return whether fd refers to a TTY.

Parameters

ParameterTypeDefaultDescription
fdnumber—The file descriptor to check.

Constants and variables

constants

constants: {
  mode: { NORMAL: number; RAW: number; IO: number }
  state: { READING: number; CLOSING: number; CLOSED: number }
}

Native mode and internal state flags used by ReadStream/WriteStream, such as mode.NORMAL and mode.RAW.

Types

ReadStreamOptions

interface ReadStreamOptions {
  readBufferSize?: number
  encoding?: BufferEncoding
  read?(this: S, size: number): void
  eagerOpen?: boolean
  highWaterMark?: number
  signal?: AbortSignal
  open?(this: S, cb: StreamCallback): void
  predestroy?(this: S): void
  destroy?(this: S, err: Error | null, cb: StreamCallback): void
}

Classes

TTYError

class TTYError {
  code: string
}

bare-tty/constants

Constants and variables

constants

constants: {
  mode: { NORMAL: number; RAW: number; IO: number }
  state: { READING: number; CLOSING: number; CLOSED: number }
}

Native mode and internal state flags used by ReadStream/WriteStream, such as mode.NORMAL and mode.RAW.

bare-tty/errors

Classes

errors.TTYError

See also

  • Builds on bare-events, bare-signals, and bare-stream.
  • Bare modules — the full bare-* catalog.
  • Bare runtime API — the runtime these modules extend.

Last updated on

Was this helpful?

On this page

Usage
API
ReadStream
new ReadStream(fd: number, opts?: ReadStreamOptions)
ReadStream._destroy(err: Error | null, cb: StreamCallback): void
ReadStream._open(cb: StreamCallback): void
ReadStream._predestroy(): void
_read(size: number): void
ReadStream.closed: boolean
ReadStream.destroy(err?: Error | null): void
ReadStream.destroyed: boolean
ReadStream.destroying: boolean
ReadStream.errored: Error | null
ReadStream.fd: number
ReadStream.isTTY: true
pause(): this
pipe<S extends Writable>(dest: S, cb?: StreamCallback): S
push(data: unknown | null, encoding?: BufferEncoding): boolean
read(): unknown | null
ReadStream.readable: boolean
resume(): this
setEncoding(encoding: BufferEncoding): void
setMode(mode: number): this
setRawMode(mode: boolean): this
unshift(data: unknown | null, encoding?: BufferEncoding): boolean
ReadStream.writable: boolean
WriteStream
new WriteStream(fd: number, opts?: WritableOptions)
WriteStream._destroy(err: Error | null, cb: StreamCallback): void
_final(cb: StreamCallback): void
WriteStream._open(cb: StreamCallback): void
WriteStream._predestroy(): void
_write(data: unknown, encoding: StreamEncoding, cb: StreamCallback): void
_writev(batch: { chunk: unknown; encoding: StreamEncoding }[], cb: StreamCallback): void
WriteStream.closed: boolean
columns: number
cork(): void
WriteStream.destroy(err?: Error | null): void
WriteStream.destroyed: boolean
WriteStream.destroying: boolean
end(cb?: StreamCallback): this
WriteStream.errored: Error | null
WriteStream.fd: number
getWindowSize(): [width: number, height: number]
WriteStream.isTTY: true
WriteStream.readable: boolean
rows: number
uncork(): void
WriteStream.writable: boolean
write(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): boolean
Functions
isTTY(fd: number): boolean
Constants and variables
constants
Types
ReadStreamOptions
Classes
TTYError
bare-tty/constants
Constants and variables
constants
bare-tty/errors
Classes
errors.TTYError
See also