Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
node_modules/ | 12-May-2024 | - | 3,249 | 2,177 | ||
LICENSE | D | 12-May-2024 | 1.1 KiB | 24 | 20 | |
index.js | D | 12-May-2024 | 3.7 KiB | 145 | 125 | |
package.json | D | 12-May-2024 | 2.2 KiB | 90 | 89 | |
readme.md | D | 12-May-2024 | 3.4 KiB | 103 | 67 |
readme.md
1# concat-stream 2 3Writable 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. 4 5[](https://travis-ci.org/maxogden/concat-stream) 6 7[](https://nodei.co/npm/concat-stream/) 8 9### description 10 11Streams 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. 12 13Only use this if you know you can fit all of the output of your stream into a single Buffer (e.g. in RAM). 14 15There are also `objectMode` streams that emit things other than Buffers, and you can concatenate these too. See below for details. 16 17## Related 18 19`concat-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. 20 21### examples 22 23#### Buffers 24 25```js 26var fs = require('fs') 27var concat = require('concat-stream') 28 29var readStream = fs.createReadStream('cat.png') 30var concatStream = concat(gotPicture) 31 32readStream.on('error', handleError) 33readStream.pipe(concatStream) 34 35function gotPicture(imageBuffer) { 36 // imageBuffer is all of `cat.png` as a node.js Buffer 37} 38 39function handleError(err) { 40 // handle your error appropriately here, e.g.: 41 console.error(err) // print the error to STDERR 42 process.exit(1) // exit program with non-zero exit code 43} 44 45``` 46 47#### Arrays 48 49```js 50var write = concat(function(data) {}) 51write.write([1,2,3]) 52write.write([4,5,6]) 53write.end() 54// data will be [1,2,3,4,5,6] in the above callback 55``` 56 57#### Uint8Arrays 58 59```js 60var write = concat(function(data) {}) 61var a = new Uint8Array(3) 62a[0] = 97; a[1] = 98; a[2] = 99 63write.write(a) 64write.write('!') 65write.end(Buffer.from('!!1')) 66``` 67 68See `test/` for more examples 69 70# methods 71 72```js 73var concat = require('concat-stream') 74``` 75 76## var writable = concat(opts={}, cb) 77 78Return a `writable` stream that will fire `cb(data)` with all of the data that 79was written to the stream. Data can be written to `writable` as strings, 80Buffers, arrays of byte integers, and Uint8Arrays. 81 82By 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. 83 84* `string` - get a string 85* `buffer` - get back a Buffer 86* `array` - get an array of byte integers 87* `uint8array`, `u8`, `uint8` - get back a Uint8Array 88* `object`, get back an array of Objects 89 90If 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`. 91 92If nothing is written to `writable` then `data` will be an empty array `[]`. 93 94# error handling 95 96`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. 97 98We recommend using [`end-of-stream`](https://npmjs.org/end-of-stream) or [`pump`](https://npmjs.org/pump) for writing error tolerant stream code. 99 100# license 101 102MIT LICENSE 103