stream-pipeline

Efficient way of connecting disparate streams

pipeline

Efficient way of connecting disparate streams

When you want to connect several disparate pipes in a configuration driven way use this tool. Disparate here means pipes that at the end should buffer completely.

a => b => c wait for c to end then c => d => e wait for e to end then e => f => g

How to.

Create a config and pass it in to pipline.

    var pipeline = new Pipeline(
        [
            { 
                pipes: [
                    through(function(d) {
                      d.newData = 1;//Math.random(); 
                      this.queue(d);
                      }),
                    JSONStream.stringify(),
                ]
            },
            {
                pipes: [
                    JSONStream.parse(),
                    JSONStream.stringify()
                ]
            },
            {
                pipes: [
                    JSONStream.parse()
                    
                ]
            }
            
        ]
    );
 

Pipeline exposes the 'in' stream and 'out' stream through two properties.

process.stdout.pipe(pipeline.out);
pipeline.in.write("hello");

The above will break because pipeline.out in the above example is objects. but add in another JSONStream.stringify and you will have a working pipeline.

Pipelines are executed in the array order they are provided.

Please look at the Test file for examples.