ordered-read-streams

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

Usage no npm install needed!

<script type="module">
  import orderedReadStreams from 'https://cdn.skypack.dev/ordered-read-streams';
</script>

README

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