max-mapper/concat-stream


writable stream that concatenates strings or data and calls a callback with the result

License: MIT

Language: JavaScript


concat-stream

Writable stream that concatenates all the data from a stream and calls a callback with the result. Use this when you want to collect all the data from a stream into a single buffer.

Build Status

NPM

description

Streams emit many buffers. If you want to collect all of the buffers, and when the stream ends concatenate all of the buffers together and receive a single buffer then this is the module for you.

Only use this if you know you can fit all of the output of your stream into a single Buffer (e.g. in RAM).

There are also objectMode streams that emit things other than Buffers, and you can concatenate these too. See below for details.

Related

concat-stream is part of the mississippi stream utility collection which includes more useful stream modules similar to this one.

examples

Buffers

var fs = require('fs')
var concat = require('concat-stream')

var readStream = fs.createReadStream('cat.png')
var concatStream = concat(gotPicture)

readStream.on('error', handleError)
readStream.pipe(concatStream)

function gotPicture(imageBuffer) {
  // imageBuffer is all of `cat.png` as a node.js Buffer
}

function handleError(err) {
  // handle your error appropriately here, e.g.:
  console.error(err) // print the error to STDERR
  process.exit(1) // exit program with non-zero exit code
}

Arrays

var write = concat(function(data) {})
write.write([1,2,3])
write.write([4,5,6])
write.end()
// data will be [1,2,3,4,5,6] in the above callback

Uint8Arrays

var write = concat(function(data) {})
var a = new Uint8Array(3)
a[0] = 97; a[1] = 98; a[2] = 99
write.write(a)
write.write('!')
write.end(Buffer.from('!!1'))

See test/ for more examples

methods

var concat = require('concat-stream')

var writable = concat(opts={}, cb)

Return a writable stream that will fire cb(data) with all of the data that was written to the stream. Data can be written to writable as strings, Buffers, arrays of byte integers, and Uint8Arrays.

By default concat-stream will give you back the same data type as the type of the first buffer written to the stream. Use opts.encoding to set what format data should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason.

  • string - get a string
  • buffer - get back a Buffer
  • array - get an array of byte integers
  • uint8array, u8, uint8 - get back a Uint8Array
  • object, get back an array of Objects

If you don't specify an encoding, and the types can't be inferred (e.g. you write things that aren't in the list above), it will try to convert concat them into a Buffer.

If nothing is written to writable then data will be an empty array [].

error handling

concat-stream does not handle errors for you, so you must handle errors on whatever streams you pipe into concat-stream. This is a general rule when programming with node.js streams: always handle errors on each and every stream. Since concat-stream is not itself a stream it does not emit errors.

We recommend using end-of-stream or pump for writing error tolerant stream code.

license

MIT LICENSE

Project Statistics

Sourcerank 20
Repository Size 60.5 KB
Stars 574
Forks 64
Watchers 13
Open issues 18
Dependencies 13
Contributors 21
Tags 13
Created
Last updated
Last pushed

Top Contributors See all

Max James Halliday Mathias Buus Kevin MÄrtensson Andy Trevorah shinnn Jordan Harband Haoliang Gao Andres Suarez Anders D. Johnson Trevor L TÔnis Tiigi Mike Brevoort Myles Borins David Volm Kira Oakley James M Snell Brian J Brennan jmannanc Parsha Pourkhomami

Packages Referencing this Repo

@tradle/concat-stream
(Streams 2) writable stream that concatenates strings or binary data and calls a callback with th...
Latest release 1.5.1 - Published - 574 stars
org.webjars.npm:concat-stream
WebJar for concat-stream
Latest release 2.0.0 - Updated - 574 stars
concat-stream
writable stream that concatenates strings or binary data and calls a callback with the result
Latest release 2.0.0 - Updated - 574 stars
concat-stream-0.6
writable stream that concatenates strings or data and calls a callback with the result
Latest release 0.0.8 - Published - 574 stars

Recent Tags See all

v2.0.0 December 21, 2018
v1.6.2 March 21, 2018
v1.6.1 March 01, 2018
v1.3.2 March 01, 2018
v1.4.11 March 01, 2018
v1.6.0 December 19, 2016
v1.5.2 September 01, 2016
v1.5.1 October 18, 2015
v1.5.0 June 17, 2015
v1.4.10 June 10, 2015
v1.4.9 June 10, 2015
v1.4.8 April 04, 2015
v1.4.7 November 27, 2014

Something wrong with this page? Make a suggestion

Last synced: 2024-05-04 01:31:13 UTC

Login to resync this repository