Skip to content

Instantly share code, notes, and snippets.

@gabemeola
Last active April 5, 2019 22:15
Show Gist options
  • Save gabemeola/6c5beb060daa39a9a6c7b93c82cfc895 to your computer and use it in GitHub Desktop.
Save gabemeola/6c5beb060daa39a9a6c7b93c82cfc895 to your computer and use it in GitHub Desktop.
Returns an awaitable promise from a stream
import fs from 'fs';
/**
* Returns a Promise from createReadStream pipe.
* Resolves Promise when end of data event fires.
* Rejects Promise when error occurs in stream.
*
* @param {String} filePath - File Path to create readable stream from
* @param {Stream} writableStream - Writable Stream to write to
* @return {Promise}
*/
const streamToPromise = (filePath, writableStream) => new Promise((resolve, reject) => {
fs.createReadStream(filePath)
.on('error', reject)
.on('end', resolve)
.pipe(writableStream, { end: false });
});
export default streamToPromise;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment