File size: 1,661 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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