A stream that emits multiple other streams one after another (streams3)
Simple, robust streams3 version of combined-stream. Allows you to combine multiple streams into a single stream. When the first stream ends, the next one starts, and so on, until all streams are consumed.
This module is used by WebTorrent, specifically create-torrent.
npm install multistream
Use
multistreamlike this:
var MultiStream = require('multistream') var fs = require('fs')var streams = [ fs.createReadStream(__dirname + '/numbers/1.txt'), fs.createReadStream(__dirname + '/numbers/2.txt'), fs.createReadStream(__dirname + '/numbers/3.txt') ]
new MultiStream(streams).pipe(process.stdout) // => 123
You can also create an object-mode stream with
MultiStream.obj(streams).
To lazily create the streams, wrap them in a function:
var streams = [ fs.createReadStream(__dirname + '/numbers/1.txt'), function () { // will be executed when the stream is active return fs.createReadStream(__dirname + '/numbers/2.txt') }, function () { // same return fs.createReadStream(__dirname + '/numbers/3.txt') } ]new MultiStream(streams).pipe(process.stdout) // => 123
Alternatively, streams may be created by an asynchronous "factory" function:
var count = 0 function factory (cb) { if (count > 3) return cb(null, null) count++ setTimeout(function () { cb(null, fs.createReadStream(__dirname + '/numbers/' + count + '.txt')) }, 100) }new MultiStream(factory).pipe(process.stdout) // => 123
MIT. Copyright (c) Feross Aboukhadijeh.