Skip to content

Merge multiple streams into a unified stream

License

Notifications You must be signed in to change notification settings

sindresorhus/merge-streams

Repository files navigation

merge-streams

Merge multiple streams into a unified stream

Install

npm install @sindresorhus/merge-streams

Usage

import mergeStreams from '@sindresorhus/merge-streams';

const stream = mergeStreams([streamA, streamB]);

for await (const chunk of stream) {
	console.log(chunk);
	//=> 'A1'
	//=> 'B1'
	//=> 'A2'
	//=> 'B2'
}

API

mergeStreams(streams: stream.Readable[]): MergedStream

Merges an array of readable streams and returns a new readable stream that emits data from the individual streams as it arrives.

If you provide an empty array, the stream remains open but can be manually ended.

MergedStream

Type: stream.Readable

A single stream combining the output of multiple streams.

MergedStream.add(stream: stream.Readable): void

Pipe a new readable stream.

Throws if MergedStream has already ended.

MergedStream.remove(stream: stream.Readable): Promise<boolean>

Unpipe a stream previously added using either mergeStreams(streams) or MergedStream.add(stream).

Returns false if the stream was not previously added, or if it was already removed by MergedStream.remove(stream).

The removed stream is not automatically ended.