Socket
Socket
Sign inDemoInstall

decompress-response

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

decompress-response - npm Package Compare versions

Comparing version 7.0.0 to 8.0.0

23

index.d.ts

@@ -1,12 +0,9 @@

/// <reference types="node"/>
import {IncomingMessage, IncomingHttpHeaders} from 'http';
import {IncomingMessage, IncomingHttpHeaders} from 'node:http';
declare namespace decompressResponse {
interface UncompressedIncomingHttpHeaders extends IncomingHttpHeaders {
'content-encoding'?: never;
}
export interface UncompressedIncomingHttpHeaders extends IncomingHttpHeaders {
'content-encoding'?: never;
}
interface UncompressedIncomingMessage extends IncomingMessage {
headers: UncompressedIncomingHttpHeaders;
}
export interface UncompressedIncomingMessage extends IncomingMessage {
headers: UncompressedIncomingHttpHeaders;
}

@@ -22,4 +19,4 @@

```
import {http} from 'http';
import decompressResponse = require('decompress-response');
import http from 'node:http';
import decompressResponse from 'decompress-response';

@@ -31,4 +28,2 @@ http.get('https://sindresorhus.com', response => {

*/
declare function decompressResponse(response: IncomingMessage): decompressResponse.UncompressedIncomingMessage;
export = decompressResponse;
export default function decompressResponse(response: IncomingMessage): UncompressedIncomingMessage;

@@ -1,9 +0,7 @@

'use strict';
const {Transform, PassThrough} = require('stream');
const zlib = require('zlib');
const mimicResponse = require('mimic-response');
import {Transform as TransformStream, PassThrough as PassThroughStream} from 'node:stream';
import zlib from 'node:zlib';
import mimicResponse from 'mimic-response';
module.exports = response => {
export default function decompressResponse(response) {
const contentEncoding = (response.headers['content-encoding'] || '').toLowerCase();
delete response.headers['content-encoding'];

@@ -14,12 +12,7 @@ if (!['gzip', 'deflate', 'br'].includes(contentEncoding)) {

// TODO: Remove this when targeting Node.js 12.
const isBrotli = contentEncoding === 'br';
if (isBrotli && typeof zlib.createBrotliDecompress !== 'function') {
response.destroy(new Error('Brotli is not supported on Node.js < 12'));
return response;
}
delete response.headers['content-encoding'];
let isEmpty = true;
const checker = new Transform({
const checker = new TransformStream({
transform(data, _encoding, callback) {

@@ -33,6 +26,6 @@ isEmpty = false;

callback();
}
},
});
const finalStream = new PassThrough({
const finalStream = new PassThroughStream({
autoDestroy: false,

@@ -43,6 +36,6 @@ destroy(error, callback) {

callback(error);
}
},
});
const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();
const decompressStream = contentEncoding === 'br' ? zlib.createBrotliDecompress() : zlib.createUnzip();

@@ -62,2 +55,2 @@ decompressStream.once('error', error => {

return finalStream;
};
}
{
"name": "decompress-response",
"version": "7.0.0",
"version": "8.0.0",
"description": "Decompress a HTTP response if needed",

@@ -13,4 +13,6 @@ "license": "MIT",

},
"type": "module",
"exports": "./index.js",
"engines": {
"node": ">=10"
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},

@@ -42,17 +44,13 @@ "scripts": {

"dependencies": {
"mimic-response": "^3.1.0"
"mimic-response": "^4.0.0"
},
"devDependencies": {
"@types/node": "^14.0.1",
"ava": "^2.2.0",
"get-stream": "^5.0.0",
"@types/node": "^16.11.6",
"ava": "^3.15.0",
"get-stream": "^6.0.1",
"pify": "^5.0.0",
"tsd": "^0.11.0",
"xo": "^0.30.0"
},
"xo": {
"rules": {
"@typescript-eslint/prefer-readonly-parameter-types": "off"
}
"tsd": "^0.18.0",
"typescript": "^4.4.4",
"xo": "^0.45.0"
}
}

@@ -11,5 +11,5 @@ # decompress-response

```sh
npm install decompress-response
```
$ npm install decompress-response
```

@@ -19,4 +19,4 @@ ## Usage

```js
const http = require('http');
const decompressResponse = require('decompress-response');
import http from 'node:http';
import decompressResponse from 'decompress-response';

@@ -23,0 +23,0 @@ http.get('https://sindresorhus.com', response => {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc