Comparing version 6.1.0 to 7.0.0
{ | ||
"name": "bent", | ||
"version": "6.1.0", | ||
"version": "7.0.0", | ||
"description": "Functional HTTP client for Node.js w/ async/await.", | ||
@@ -9,3 +9,4 @@ "main": "src/nodejs.js", | ||
"test": "hundreds aegir test -t node browser", | ||
"pretest": "aegir lint" | ||
"pretest": "aegir lint", | ||
"coverage": "nyc --reporter=html mocha test/*.spec.js && npx http-server coverage" | ||
}, | ||
@@ -12,0 +13,0 @@ "keywords": [], |
@@ -9,3 +9,32 @@ 'use strict' | ||
const bent = require('./core') | ||
const zlib = require('zlib') | ||
const { PassThrough } = require('stream') | ||
const compression = {} | ||
/* istanbul ignore else */ | ||
if (zlib.createBrotliDecompress) compression.br = () => zlib.createBrotliDecompress() | ||
/* istanbul ignore else */ | ||
if (zlib.createGunzip) compression.gzip = () => zlib.createGunzip() | ||
/* istanbul ignore else */ | ||
if (zlib.createInflate) compression.deflate = () => zlib.createInflate() | ||
const acceptEncoding = Object.keys(compression).join(', ') | ||
const getResponse = resp => { | ||
const ret = new PassThrough() | ||
ret.statusCode = resp.statusCode | ||
ret.statusMessage = resp.statusMessage | ||
ret.headers = resp.headers | ||
ret._response = resp | ||
if (ret.headers['content-encoding']) { | ||
const encodings = ret.headers['content-encoding'].split(', ').reverse() | ||
while (encodings.length) { | ||
const enc = encodings.shift() | ||
resp = resp.pipe(compression[enc]()) | ||
} | ||
} | ||
return resp.pipe(ret) | ||
} | ||
class StatusError extends Error { | ||
@@ -51,4 +80,4 @@ constructor (res, ...params) { | ||
} | ||
const c = caseless(request.headers) | ||
if (encoding === 'json') { | ||
const c = caseless(request.headers) | ||
if (!c.get('accept')) { | ||
@@ -58,2 +87,5 @@ c.set('accept', 'application/json') | ||
} | ||
if (!c.has('accept-encoding')) { | ||
c.set('accept-encoding', acceptEncoding) | ||
} | ||
return new Promise((resolve, reject) => { | ||
@@ -65,2 +97,4 @@ const req = h.request(request, async res => { | ||
} | ||
res = getResponse(res) | ||
if (!encoding) return resolve(res) | ||
@@ -67,0 +101,0 @@ else { |
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
18313
9
458