Skip to content

Commit e20c15e

Browse files
committed
fix(js): manually added decompression logic to node http requester
1 parent c5ca337 commit e20c15e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

clients/algoliasearch-client-javascript/packages/requester-node-http/src/createHttpRequester.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import http from 'http';
22
import https from 'https';
33
import { URL } from 'url';
4+
import zlib from 'zlib';
45

56
import type { EndRequest, Requester, Response } from '@algolia/client-common';
67

@@ -41,6 +42,7 @@ export function createHttpRequester({
4142
method: request.method,
4243
...requesterOptions,
4344
headers: {
45+
'accept-encoding': 'gzip',
4446
...request.headers,
4547
...requesterOptions.headers,
4648
},
@@ -61,9 +63,14 @@ export function createHttpRequester({
6163
clearTimeout(connectTimeout as NodeJS.Timeout);
6264
clearTimeout(responseTimeout as NodeJS.Timeout);
6365

66+
let buffer = Buffer.concat(contentBuffers);
67+
if (response.headers['content-encoding'] === 'gzip') {
68+
buffer = zlib.gunzipSync(buffer);
69+
}
70+
6471
resolve({
6572
status: response.statusCode || 0,
66-
content: Buffer.concat(contentBuffers).toString(),
73+
content: buffer.toString(),
6774
isTimedOut: false,
6875
});
6976
});

0 commit comments

Comments
 (0)