Replacements for concat-stream
Utility Consumers (native, since Node.js 16.7.0)
Consuming as a string
js
import concat from 'concat-stream'
import { text } from 'node:stream/consumers'
readable.pipe(concat((data) => {
const str = data.toString('utf-8')
console.log(str)
}))
const str = await text(readable)
console.log(str) Consuming as Buffer
js
import concat from 'concat-stream'
import { buffer } from 'node:stream/consumers'
readable.pipe(concat((data) => {
console.log(data.length)
}))
const data = await buffer(readable)
console.log(data.length) Consuming as an Array
js
import concat from 'concat-stream'
import { toArray } from 'node:stream/consumers'
readable.pipe(concat({ encoding: 'object' }, (items) => {
console.log(items)
}))
const items = await toArray(readable)
console.log(items) Alternatively, using an async iterable loop:
js
for await (const chunk of readable) {
// ...
}