ZlibHeaderTransformStream.js 688 B

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. import stream from 'stream';
  3. class ZlibHeaderTransformStream extends stream.Transform {
  4. __transform(chunk, encoding, callback) {
  5. this.push(chunk);
  6. callback();
  7. }
  8. _transform(chunk, encoding, callback) {
  9. if (chunk.length !== 0) {
  10. this._transform = this.__transform;
  11. // Add Default Compression headers if no zlib headers are present
  12. if (chunk[0] !== 120) {
  13. // Hex: 78
  14. const header = Buffer.alloc(2);
  15. header[0] = 120; // Hex: 78
  16. header[1] = 156; // Hex: 9C
  17. this.push(header, encoding);
  18. }
  19. }
  20. this.__transform(chunk, encoding, callback);
  21. }
  22. }
  23. export default ZlibHeaderTransformStream;