Add keepalive option in JsonApi.getResponse (#4374)

* add keepalive option in JsonApi.getResponse

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen authored and GitHub committed 2021-11-18 09:21:28 -05:00
1 parent 4121672838
commit fe4a56ba59
1 file changed
+10
+10
View File
@@ -21,6 +21,8 @@
// Base http-service / json-api class
import { Agent as HttpAgent } from "http";
import { Agent as HttpsAgent } from "https";
import { merge } from "lodash";
import fetch, { Response, RequestInit } from "node-fetch";
import { stringify } from "querystring";
@@ -54,6 +56,10 @@ export interface JsonApiConfig {
debug?: boolean;
getRequestOptions?: () => Promise<RequestInit>;
}
const httpAgent = new HttpAgent({ keepAlive: true });
const httpsAgent = new HttpsAgent({ keepAlive: true });
export class JsonApi<D = JsonApiData, P extends JsonApiParams = JsonApiParams> {
static reqInitDefault: RequestInit = {
headers: {
@@ -95,6 +101,10 @@ export class JsonApi<D = JsonApiData, P extends JsonApiParams = JsonApiParams> {
reqInit.method = "get";
}
if (!reqInit.agent) {
reqInit.agent = reqUrl.startsWith("https:") ? httpsAgent : httpAgent;
}
if (query) {
const queryString = stringify(query);