node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »

ordered-read-streams

ordered-read-streams NPM version Build Status

Combines array of streams into one read stream in strict order.

Installation

npm install ordered-read-streams

Overview

ordered-read-streams handles all data/errors from input streams in parallel, but emits data/errors in strict order in which streams are passed to constructor. This is objectMode = true stream.

Example

var through = require('through2');
var Ordered = require('ordered-read-streams');
 
var s1 = through.obj(function (data, enc, next) {
  var self = this;
  setTimeout(function () {
    self.push(data);
    next();
  }, 200)
});
var s2 = through.obj(function (data, enc, next) {
  var self = this;
  setTimeout(function () {
    self.push(data);
    next();
  }, 30)
});
var s3 = through.obj(function (data, enc, next) {
  var self = this;
  setTimeout(function () {
    self.push(data);
    next();
  }, 100)
});
 
var streams = new Ordered([s1, s2, s3]);
streams.on('data', function (data) {
  console.log(data);
})
 
s1.write('stream 1');
s1.end();
 
s2.write('stream 2');
s2.end();
 
s3.write('stream 3');
s3.end();

Ouput will be:

stream 1
stream 2
stream 3

Licence

MIT