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.
Use multistream
like 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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4