|  | ||
|---|---|---|
| .. | ||
| docs | ||
| lib | ||
| package.json | ||
| README.md | ||
Join Stream
Transform stream which joins streamed data.
Usage
var joinStream = require( '@stdlib/streams/node/join' );
joinStream( [options] )
Creates a transform stream which joins streamed data.
var stdout = require( '@stdlib/streams/node/stdout' );
var stream = joinStream();
stream.pipe( stdout );
stream.write( '1' );
stream.write( '2' );
stream.write( '3' );
stream.end();
// prints: 1\n2\n3
The function accepts the following options:
- sep: separator used to join streamed data. Default: '\n'.
- objectMode: specifies whether a stream should operate in object mode. Default: false.
- encoding: specifies how Bufferobjects should be decoded tostrings. Default:null.
- highWaterMark: specifies the Bufferlevel at whichwrite()calls start returningfalse.
- allowHalfOpen: specifies whether a stream should remain open even if one side ends. Default: false.
- readableObjectMode: specifies whether the readable side should be in object mode. Default: false.
To set stream options,
var opts = {
    'sep': ',',
    'objectMode': true,
    'encoding': 'utf8',
    'highWaterMark': 64,
    'allowHalfOpen': true,
    'readableObjectMode': false // overridden by `objectMode` option when `objectMode=true`
};
var stream = joinStream( opts );
joinStream.factory( [options] )
Returns a function for creating streams which are identically configured according to provided options.
var opts = {
    'sep': '\t',
    'objectMode': true,
    'encoding': 'utf8',
    'highWaterMark': 64
};
var factory = joinStream.factory( opts );
// Create 10 identically configured streams...
var streams = [];
var i;
for ( i = 0; i < 10; i++ ) {
    streams.push( factory() );
}
This method accepts the same options as joinStream().
joinStream.objectMode( [options] )
This method is a convenience function to create streams which always operate in objectMode.
var stdout = require( '@stdlib/streams/node/stdout' );
var stream = joinStream.objectMode({
    'sep': ','
});
stream.pipe( stdout );
stream.write( 'a' );
stream.write( 'b' );
stream.write( 'c' );
stream.end();
// prints: a,b,c
This method accepts the same options as joinStream(); however, the method will always override the objectMode option in options.
Examples
var splitStream = require( '@stdlib/streams/node/split' );
var inspectStream = require( '@stdlib/streams/node/inspect-sink' );
var joinStream = require( '@stdlib/streams/node/join' );
var inspect;
var split;
var join;
var i;
function log( chunk ) {
    console.log( chunk.toString() );
}
// Create a split stream for tab delimited data:
split = splitStream({
    'sep': /\t/
});
// Create a stream to make newline delimited data:
join = joinStream({
    'sep': '\n'
});
// Create a stream to inspect joined output:
inspect = inspectStream( log );
// Create a stream pipeline:
split
    .pipe( join )
    .pipe( inspect );
// Write values to the split stream...
for ( i = 0; i < 10; i++ ) {
    split.write( i+'\t', 'utf8' );
}
split.end();