1.0.1 • Published 9 years ago

dynamic-duplex v1.0.1

Weekly downloads
2
License
ISC
Repository
github
Last release
9 years ago

dynamic-duplex

Dynamically wires up a duplex stream based on the data it receives.

build status

Installation

This module is installed via npm:

$ npm install dynamic-duplex

Testing

This module can be tested by running:

$ npm run test

Example Usage

var Readable = require('stream').Readable;
var streamify = require('stream-array');
var dynamicDuplex = require('dynamic-duplex');

var input = new Readable({objectMode: true});

var streams = {
	a: streamify([1,2,3,4]),
	b: streamify([5,6,7,8])
};
input.pipe(dynamicDuplex(function(letter, en, cb) {
	cb(null, streams[letter]);
})).pipe(through(function(chunk, end, cb) {
	console.log(chunk);

	if (chunk === 2) {
		// force a switch to stream b
		input.push('b');
	}

	cb();
}));

// To get the ball rolling
input.push('a');

// Expected output from this code is:
// 1 2 5 6 7 8