You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					29 lines
				
				681 B
			
		
		
			
		
	
	
					29 lines
				
				681 B
			| 
											3 years ago
										 | "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; |