# stream-composer Modern stream composer ``` npm install stream-composer ``` Supports composing and pipelining multiple streams into a single [streamx](https://github.com/mafintosh/streamx) stream. ## Usage ``` js const Composer = require('stream-composer') // Make a duplex stream out of a read and write stream const stream = new Composer() stream.setReadable(someReadableStream) // set readable side stream.setWritable(someWritableStream) // set writable side // reads, read from the readable stream stream.on('data', function (data) { // data is from someReadableStream }) // writes, write to the writable stream stream.write(data) ``` ## API #### `stream = new Composer([options])` Make a new composer. Optionally pass the writable stream and readable stream in the constructor. Options are forwarded to streamx. #### `stream.setReadable(readableStream)` Set the readable stream. If you pass `null` the readable stream will be set to an empty stream for you. #### `stream.setWritable(writableStream)` Set the writable stream. If you pass `null` the writable stream will be set to an empty stream for you. #### `stream.setPipeline(...pipelineStreams)` Set the stream to a pipeline. Writing to the outer stream writes to the first stream in the pipeline and reading from the outer stream, reads from the last stream in the pipeline. #### `stream = Composer.pipeline(...pipelineStreams)` Helper for making a composer stream and setting the pipeline in one go. #### `stream = Composer.duplexer(writableStream, readableStream)` Helper for making a composer stream and setting the writable and readable stream in one go. ## License MIT