stream-connect

WebJar for stream-connect

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

stream-connect
Last Version

Last Version

1.0.2
Release Date

Release Date

Type

Type

jar
Description

Description

stream-connect
WebJar for stream-connect
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/75lb/stream-connect

Download stream-connect

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/stream-connect/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>stream-connect</artifactId>
    <version>1.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/stream-connect/
implementation 'org.webjars.npm:stream-connect:1.0.2'
// https://jarcasting.com/artifacts/org.webjars.npm/stream-connect/
implementation ("org.webjars.npm:stream-connect:1.0.2")
'org.webjars.npm:stream-connect:jar:1.0.2'
<dependency org="org.webjars.npm" name="stream-connect" rev="1.0.2">
  <artifact name="stream-connect" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='stream-connect', version='1.0.2')
)
libraryDependencies += "org.webjars.npm" % "stream-connect" % "1.0.2"
[org.webjars.npm/stream-connect "1.0.2"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : array-back jar [1.0.2,2)

Project Modules

There are no modules declared in this project.

view on npm npm module downloads Build Status Coverage Status Dependency Status js-standard-style

stream-connect

Similar to .pipe except .pipe returns the last stream in a pipeline. stream-connect returns a stream which writes to the first stream in the pipeline and reads from the last.

Synopsis

const connect = require('stream-connect')
const fs = require('fs')

const connected = connect(stream1, stream2, stream3, stream4)

// data piped into the connected stream is transparently passed through all four internal streams
// then output into process.stdout. Errors in any of the internal streams are emitted
// by the connected stream.
process.stdin
  .pipe(connected)
  .on('error', console.error)
  .pipe(process.stdout)

More detail

Consider this .pipe example.

function getExampleStream () {
 ...
 return streamOne.pipe(streamTwo)
}
const stream = getExampleStream()
stream.on('data', function (chunk) {}) // catches data from streamOne via streamTwo
stream.on('error', function (err) {}) // catches errors only from streamTwo
stream.end('test') // is written to streamTwo

If you write to the output it will be written to streamTwo, whereas you probably wanted to write to the start of the pipeline and read from the end. Fixed by stream-connect:

const connect = require('stream-connect')
function getExampleStream () {
 ...
 return connect(streamOne, streamTwo)
}
const stream = getExampleStream()
stream.on('data', function (chunk) {}) // catches data from streamOne via streamTwo
stream.on('error', function (err) {}) // catches errors from both streamOne and streamTwo
stream.end('test') // is written to streamOne

Any errors emitted in streamOne or streamTwo are propagated to the output stream.

stream-connect

Example

const connect = require('stream-connect')

connect(...streams) ⇒ Duplex

Connect streams.

Kind: Exported function

Param Type Description
...streams Duplex One or more streams to connect.

© 2015 Lloyd Brookes <[email protected]>. Documented by jsdoc-to-markdown.

Versions

Version
1.0.2
1.0.1