Request compression issue fixed

This commit is contained in:
killer069 2021-12-07 14:00:31 +05:30
parent 9a2289353a
commit 68f435a658

View File

@ -76,16 +76,22 @@ export function request(req_url: string, options: RequestOpts = { method: 'GET'
reject(new Error(`Got ${res.statusCode} from the request`)); reject(new Error(`Got ${res.statusCode} from the request`));
} }
const data: string[] = []; const data: string[] = [];
let decoder: BrotliDecompress | Gunzip | Deflate; let decoder: BrotliDecompress | Gunzip | Deflate | undefined = undefined;
const encoding = res.headers['content-encoding']; const encoding = res.headers['content-encoding'];
if (encoding === 'gzip') decoder = zlib.createGunzip(); if (encoding === 'gzip') decoder = zlib.createGunzip();
else if (encoding === 'br') decoder = zlib.createBrotliDecompress(); else if (encoding === 'br') decoder = zlib.createBrotliDecompress();
else decoder = zlib.createDeflate(); else if (encoding === 'deflate') decoder = zlib.createDeflate();
res.pipe(decoder); if (decoder) {
decoder.setEncoding('utf-8'); res.pipe(decoder);
decoder.on('data', (c) => data.push(c)); decoder.setEncoding('utf-8');
decoder.on('end', () => resolve(data.join(''))); decoder.on('data', (c) => data.push(c));
decoder.on('end', () => resolve(data.join('')));
} else {
res.setEncoding('utf-8');
res.on('data', (c) => data.push(c));
res.on('end', () => resolve(data.join('')));
}
}); });
} }