BufferStream.js 669 B

12345678910111213141516171819202122232425
  1. var Promise = require('bluebird');
  2. var Stream = require('stream');
  3. var Buffer = require('./Buffer');
  4. // Backwards compatibility for node versions < 8
  5. if (!Stream.Writable || !Stream.Writable.prototype.destroy)
  6. Stream = require('readable-stream');
  7. module.exports = function(entry) {
  8. return new Promise(function(resolve,reject) {
  9. var chunks = [];
  10. var bufferStream = Stream.Transform()
  11. .on('finish',function() {
  12. resolve(Buffer.concat(chunks));
  13. })
  14. .on('error',reject);
  15. bufferStream._transform = function(d,e,cb) {
  16. chunks.push(d);
  17. cb();
  18. };
  19. entry.on('error',reject)
  20. .pipe(bufferStream);
  21. });
  22. };