Skip to content

Instantly share code, notes, and snippets.

@tsmx
Last active November 9, 2020 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsmx/886be65f68773c280f8420bc1860866d to your computer and use it in GitHub Desktop.
Save tsmx/886be65f68773c280f8420bc1860866d to your computer and use it in GitHub Desktop.
NodeJS: convert stream to buffer and vice versa
const Readable = require('stream').Readable;
// stream-to-buffer promise variant
module.exports.streamToBufferPromise = function (stream) {
return new Promise((resolve, reject) => {
var bufs = [];
var buffer = null;
stream.on('error', (error) => { reject(error); });
stream.on('data', (data) => { bufs.push(data); });
stream.on('end', () => {
buffer = Buffer.concat(bufs);
resolve(buffer);
});
});
};
// stream-to-buffer callback variant
module.exports.streamToBuffer = function (stream, cbSuccess, cbError) {
var bufs = [];
var buffer = null;
stream.on('error', (error) => { cbError(error); });
stream.on('data', (data) => { bufs.push(data); });
stream.on('end', () => {
buffer = Buffer.concat(bufs);
cbSuccess(buffer);
});
};
module.exports.bufferToStream = function (buffer) {
var stream = new Readable();
stream.push(buffer);
stream.push(null);
return stream;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment