62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
|
# 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
|