Combine merge and pipe streams into stream architectures that can bend packets to your will.
A merge stream will duplicate the input across all members and merge the output from all members (based on combine-stream.
A pipe stream will pass the output from each member as the input to the next (based on stream-combiner.
Both types accepts streams in their list - you can combine merge and pipes with each other - it's stream inception!
$ npm install streamworks
There are 2 main methods:
Create each type of stream by passing an array of either:
var from = ;var streamworks = ;// a merge is a stream that splits the input across each function and merges the output back into one streamvar mergestream = streamworks// a pipe is a stream that passes values through each functionvar pipestream = streamworks// run some data through the merge stream (which will duplicate it) and then through the pipe stream (which will filter it)from'apple' 'pie' 'custard'
Because streamworks streams are, umm, streams - you can create complex nested stream-structures:
var bigAssStream = streamworksvar arr = ;from'hello''world''apple'/*sub1:A1:hellosub1:A3:hellosub2:A3:hellosub1:A1:applesub1:A3:applesub2:A3:apple*/
If you pass true or:
as the first argument to pipe or merge - the stream will be in object mode.
this means that the 'chunks' will be what you sent and not buffers/strings.
You can also use:
Which are shortcuts for:
create a new readable/writable stream that will pipe each value through the array of streams/functions
shorthand for pipe(true, )
create a new readable/writable stream that will duplicate each value into each of the streams/functions and merge the results back into the output
shorthand for merge(true, )