repo_description: Promise based HTTP client for the browser and node.js
repo_topics: hacktoberfest http-client javascript nodejs promise
code: 'use strict';
  
  import stream from 'stream';
  
  class ZlibHeaderTransformStream extends stream.Transform {
    __transform(chunk, encoding, callback) {
      this.push(chunk);
      callback();
    }
  
    _transform(chunk, encoding, callback) {
      if (chunk.length !== 0) {
        this._transform = this.__transform;
  
        // Add Default Compression headers if no zlib headers are present
        if (chunk[0] !== 120) {
          // Hex: 78
          const header = Buffer.alloc(2);
          header[0] = 120; // Hex: 78
          header[1] = 156; // Hex: 9C
          this.push(header, encoding);
        }
      }
  
      this.__transform(chunk, encoding, callback);
    }
  }
  
  export default ZlibHeaderTransformStream;
  