apply a through stream to the output side of another through stream
Apply a through stream to the output side of another through stream, preserving the first stream as input in the returned stream.
var through = require'through';var throughout = require'throughput';var doubler = throughvar dbuf = buflength * 2;for var i = 0; i < dbuflength; i++dbufi = bufMathfloori/2;thisqueuedbuf;;var counter = throughthis_count = this_count || 0 + buflength;thisqueuethis_count + '\n';thisqueuenull;;processstdinpipethroughoutdoubler counterpipeprocessstdout;
If you want to transform just the output side of a through stream, this is actually somewhat difficult and it's not immediately obvious why something like:
var duplexer = require'duplexer';apipeb;return duplexera b;
shouldn't just work. The worst part is that it does work, until you try to pipe the results to a slow endpoint that will throttle with pause and resume.
The problem is that both
.pipe() will handle pause and resume
in a mutually exclusive way that will cause the stream to hang indefinitely if a
slow downstream consumer ever triggers a pause.
If you try to use event-stream's .pipeline() function you will get the same problem.
var throughout = require'throughout';
Pipe the output of a through stream
a into the input of a through stream
returning a new stream
c that writes its input to
a and forwards the output
With npm do:
npm install throughout