OBSOLETE: since node@18, there is now a stream.toArray() function
Concatenate a readable stream's data into a single array.
You may also be interested in:
- raw-body for strings
vartoArray=require('stream-to-array')Returns all the data objects in an array. This is useful for streams in object mode if you want to just use an array.
varstream=newStream.Readable()toArray(stream,function(err,arr){assert.ok(Array.isArray(arr))})If stream is not defined, it is assumed that this is a stream.
varstream=newStream.Readable()stream.toArray=toArraystream.toArray(function(err,arr){})If callback is not defined, then it returns a promise.
toArray(stream).then(function(parts){})If you want to return a buffer, just use Buffer.concat(arr)
toArray(stream).then(function(parts){constbuffers=parts.map(part=>util.isBuffer(part) ? part : Buffer.from(part));returnBuffer.concat(buffers);})