What is concat-stream?
The concat-stream npm package is a writable stream that concatenates data and calls a callback with the result. It can be used to collect stream data and concatenate it into a single buffer, string, or array. It is useful for collecting stream data from sources like HTTP requests, file reads, and other stream sources.
What are concat-stream's main functionalities?
Concatenate stream data into a buffer
This code sample demonstrates how to use concat-stream to read data from a file and concatenate it into a buffer. The buffer is then converted to a string and logged to the console.
const concat = require('concat-stream');
const fs = require('fs');
const readStream = fs.createReadStream('file.txt');
const concatStream = concat(function(buffer) {
console.log(buffer.toString());
});
readStream.pipe(concatStream);
Concatenate stream data into a string
This code sample shows how to use concat-stream to collect HTTP response data and concatenate it into a string. The string is then logged to the console.
const concat = require('concat-stream');
const http = require('http');
http.get('http://example.com', function(response) {
response.pipe(concat(function(data) {
console.log(data.toString());
}));
});
Concatenate stream data into an array
This example demonstrates how to use concat-stream to collect data from a readable stream and concatenate it into an array. The resulting array is then logged to the console.
const concat = require('concat-stream');
const { Readable } = require('stream');
const arrayStream = Readable.from(['hello', ' ', 'world']);
const concatStream = concat({ encoding: 'array' }, function(array) {
console.log(array);
});
arrayStream.pipe(concatStream);
Other packages similar to concat-stream
bl
The 'bl' (Buffer List) package is similar to concat-stream as it provides a storage object for collections of Node.js Buffers. It can be used to collect buffers and access them with a standard readable Buffer interface. It differs in its API and additional features like the ability to access data at specific indices without creating a new Buffer.
stream-buffers
The 'stream-buffers' package offers writable and readable stream implementations using a growable buffer. It is similar to concat-stream in that it allows for the collection of stream data, but it also provides more control over the buffer size and growth.
concat-stream
$ npm install concat-stream
then
var concat = require('concat-stream')
var fs = require('fs')
var read = fs.createReadStream('readme.md')
var write = concat(function(data) {})
read.pipe(write)
works with arrays too!
var write = concat(function(data) {})
write.write([1,2,3])
write.write([4,5,6])
write.end()
works with buffers too! can't believe the deals!
var write = concat(function(data) {})
write.write(new Buffer('hello '))
write.write(new Buffer('world'))
write.end()
MIT LICENSE