summaryrefslogtreecommitdiff
path: root/client/node_modules/decompress-response/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/node_modules/decompress-response/index.js')
-rw-r--r--client/node_modules/decompress-response/index.js58
1 files changed, 0 insertions, 58 deletions
diff --git a/client/node_modules/decompress-response/index.js b/client/node_modules/decompress-response/index.js
deleted file mode 100644
index c861036..0000000
--- a/client/node_modules/decompress-response/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-'use strict';
-const {Transform, PassThrough} = require('stream');
-const zlib = require('zlib');
-const mimicResponse = require('mimic-response');
-
-module.exports = response => {
- const contentEncoding = (response.headers['content-encoding'] || '').toLowerCase();
-
- if (!['gzip', 'deflate', 'br'].includes(contentEncoding)) {
- return response;
- }
-
- // 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;
- }
-
- let isEmpty = true;
-
- const checker = new Transform({
- transform(data, _encoding, callback) {
- isEmpty = false;
-
- callback(null, data);
- },
-
- flush(callback) {
- callback();
- }
- });
-
- const finalStream = new PassThrough({
- autoDestroy: false,
- destroy(error, callback) {
- response.destroy();
-
- callback(error);
- }
- });
-
- const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();
-
- decompressStream.once('error', error => {
- if (isEmpty && !response.readable) {
- finalStream.end();
- return;
- }
-
- finalStream.destroy(error);
- });
-
- mimicResponse(response, finalStream);
- response.pipe(checker).pipe(decompressStream).pipe(finalStream);
-
- return finalStream;
-};