stream.js 672 B

123456789101112131415161718192021222324252627
  1. 'use strict';
  2. const tar = require('../tar');
  3. const gzip = require('../gzip');
  4. const BaseStream = require('../base_stream');
  5. class TgzStream extends BaseStream {
  6. constructor(opts) {
  7. super(opts);
  8. const tarStream = this._tarStream = new tar.Stream();
  9. tarStream.on('error', err => this.emit('error', err));
  10. const gzipStream = new gzip.FileStream();
  11. gzipStream.on('end', () => this.push(null));
  12. gzipStream.on('data', chunk => this.push(chunk));
  13. gzipStream.on('error', err => this.emit('error', err));
  14. tarStream.pipe(gzipStream);
  15. }
  16. addEntry(entry, opts) {
  17. this._tarStream.addEntry(entry, opts);
  18. }
  19. }
  20. module.exports = TgzStream;