Skip to content

Class Stream<T>

Source: stream.ts

A communication channel for process I/O, supporting event-based data transmission, signaling, and piping between streams.

Extends

Extended by

Type Parameters

T

T = string

Implements

Constructors

Constructor

new Stream<T>(): Stream<T>

Returns

Stream<T>

Inherited from

EventEmitter<StreamEvents<T>>.constructor

Properties

DATA_EVENT

readonly static DATA_EVENT: "data" = "data"


END_EVENT

readonly static END_EVENT: "end" = "end"


SIGNAL_EVENT

readonly static SIGNAL_EVENT: "signal" = "signal"


ERROR_EVENT

readonly static ERROR_EVENT: "error" = "error"


INTERRUPTED

readonly static INTERRUPTED: "interrupted" = "interrupted"


CLOSED

readonly static CLOSED: "closed" = "closed"

Methods

readLines()

static readLines(stream: InputStream): AsyncGenerator<Result<string, StreamError>>

Iterates over a readable string stream and yields each line.

Parameters

stream

InputStream

Returns

AsyncGenerator<Result<string, StreamError>>


end()

end(): this

Closes the stream (EOF). Subsequent calls to write will be rejected.

Returns

this


signal()

signal(signal: StreamSignal): this

Emits a control signal. Standard termination signals will automatically close the stream.

Parameters

signal

StreamSignal

Returns

this


write()

write(data: T): Promise<Result<void, StreamError>>

Broadcasts data to all listeners if the stream is open.

Parameters

data

T

Returns

Promise<Result<void, StreamError>>

Implementation of

OutputStream.write


read()

read(): Promise<Result<T | null, StreamError>>

Resolves with the next available chunk, or null if the stream is closed (EOF).

Returns

Promise<Result<T | null, StreamError>>

Implementation of

InputStream.read


pipe()

pipe(destination: Stream<T>, propagateEnd?: boolean): Stream<T>

Forwards data, end events, and signals from this stream to another.

Parameters

destination

Stream<T>

The stream that will receive the forwarded data.

propagateEnd?

boolean = true

Returns

Stream<T>

The destination stream to allow for chainable piping.


wait()

Call Signature

wait(): Promise<void>

Returns a promise that resolves when the stream is stopped.

Returns

Promise<void>

Call Signature

wait<U>(value: U): Promise<U>

Returns a promise that resolves when the stream is stopped.

Type Parameters
U

U

Parameters
value

U

Value to return when the promise resolves.

Returns

Promise<U>


on()

on<K>(event: K, listener: Listener<StreamEvents<T>, K>): Listener<StreamEvents<T>, K>

Starts listening to an event.

Type Parameters

K

K extends keyof StreamEvents<T>

Parameters

event

K

The event to listen to.

listener

Listener<StreamEvents<T>, K>

The function to call when the event is emitted.

Returns

Listener<StreamEvents<T>, K>

The listener.

Inherited from

EventEmitter.on


once()

once<K>(event: K, listener: Listener<StreamEvents<T>, K>): Listener<StreamEvents<T>, K>

Registers an event listener that is automatically removed when called.

Type Parameters

K

K extends keyof StreamEvents<T>

Parameters

event

K

The event to listen to.

listener

Listener<StreamEvents<T>, K>

The function to call once the event is emitted.

Returns

Listener<StreamEvents<T>, K>

The wrapped listener.

Inherited from

EventEmitter.once


off()

off<K>(event: K, listener: Listener<StreamEvents<T>, K>): void

Removes an event listener.

Type Parameters

K

K extends keyof StreamEvents<T>

Parameters

event

K

The event to remove the listener from.

listener

Listener<StreamEvents<T>, K>

The listener to remove.

Returns

void

Inherited from

EventEmitter.off


emit()

emit<K>(event: K, ...args: StreamEvents<T>[K]): void

Emits an event to all its listeners.

Type Parameters

K

K extends keyof StreamEvents<T>

Parameters

event

K

The event to emit.

args

...StreamEvents<T>[K]

The arguments to pass to the listeners.

Returns

void

Inherited from

EventEmitter.emit


emitAsync()

emitAsync<K>(event: K, ...args: StreamEvents<T>[K]): Promise<void>

Emits an event and waits for all listeners to resolve.

Type Parameters

K

K extends keyof StreamEvents<T>

Parameters

event

K

The event to emit.

args

...StreamEvents<T>[K]

The arguments to pass to the listeners.

Returns

Promise<void>

Inherited from

EventEmitter.emitAsync

Built by Prozilla