decompress-response
Advanced tools
Comparing version 7.0.0 to 8.0.0
@@ -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; |
29
index.js
@@ -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 => { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Yes
5398
7
59
+ Addedmimic-response@4.0.0(transitive)
- Removedmimic-response@3.1.0(transitive)
Updatedmimic-response@^4.0.0