@hyper-fetch/graphql 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js DELETED
@@ -1,215 +0,0 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
-
22
- // src/adapter/adapter.browser.ts
23
- import { getAdapterBindings, getResponseHeaders, parseResponse, parseErrorResponse } from "@hyper-fetch/core";
24
- var adapter = (request, requestId) => __async(void 0, null, function* () {
25
- const {
26
- makeRequest,
27
- config,
28
- headers,
29
- onError,
30
- onResponseEnd,
31
- onTimeoutError,
32
- onRequestEnd,
33
- createAbortListener,
34
- onResponseProgress,
35
- onRequestProgress,
36
- onResponseStart,
37
- onBeforeRequest,
38
- onRequestStart,
39
- onSuccess
40
- } = yield getAdapterBindings(request, requestId, 0, gqlExtra);
41
- const { fullUrl, payload, method } = getRequestValues(request);
42
- return makeRequest((resolve) => {
43
- const xhr = new XMLHttpRequest();
44
- xhr.timeout = defaultTimeout;
45
- const abort = () => xhr.abort();
46
- Object.entries(config).forEach(([name, value]) => {
47
- xhr[name] = value;
48
- });
49
- xhr.open(method, fullUrl, true);
50
- Object.entries(headers).forEach(([name, value]) => xhr.setRequestHeader(name, value));
51
- const unmountListener = createAbortListener(0, gqlExtra, abort, resolve);
52
- xhr.upload.onprogress = onRequestProgress;
53
- xhr.onloadstart = () => {
54
- onRequestEnd();
55
- onResponseStart();
56
- };
57
- xhr.onprogress = onResponseProgress;
58
- xhr.onloadend = () => {
59
- onResponseEnd();
60
- unmountListener();
61
- };
62
- xhr.ontimeout = () => onTimeoutError(0, gqlExtra, resolve);
63
- xhr.onreadystatechange = (e) => {
64
- const event = e;
65
- const finishedState = 4;
66
- if (event.target && event.target.readyState === finishedState) {
67
- const { status } = event.target;
68
- const success = String(status).startsWith("2") || String(status).startsWith("3");
69
- const responseHeaders = getResponseHeaders(xhr.getAllResponseHeaders());
70
- if (success) {
71
- const data = parseResponse(event.target.response);
72
- onSuccess(data, status, { headers: responseHeaders }, resolve);
73
- } else {
74
- const data = parseErrorResponse(event.target.response);
75
- onError(data, status, { headers: responseHeaders }, resolve);
76
- }
77
- }
78
- };
79
- onBeforeRequest();
80
- onRequestStart();
81
- xhr.send(payload);
82
- });
83
- });
84
-
85
- // src/adapter/adapter.server.ts
86
- import { getAdapterBindings as getAdapterBindings2, parseErrorResponse as parseErrorResponse2, parseResponse as parseResponse2 } from "@hyper-fetch/core";
87
- import http from "http";
88
- import https from "https";
89
- var adapter2 = (request, requestId) => __async(void 0, null, function* () {
90
- const {
91
- makeRequest,
92
- config,
93
- headers,
94
- onError,
95
- onResponseEnd,
96
- onTimeoutError,
97
- onRequestEnd,
98
- createAbortListener,
99
- onResponseProgress,
100
- onResponseStart,
101
- onBeforeRequest,
102
- onRequestStart,
103
- onSuccess
104
- } = yield getAdapterBindings2(request, requestId, 0, gqlExtra);
105
- const { fullUrl, payload, method } = getRequestValues(request);
106
- const httpClient = request.client.url.includes("https://") ? https : http;
107
- const options = {
108
- path: fullUrl,
109
- method,
110
- headers,
111
- timeout: defaultTimeout
112
- };
113
- Object.entries(config).forEach(([name, value]) => {
114
- options[name] = value;
115
- });
116
- let unmountListener = () => null;
117
- onBeforeRequest();
118
- if (payload) {
119
- options.headers["Content-Length"] = Buffer.byteLength(JSON.stringify(payload));
120
- }
121
- return makeRequest((resolve) => {
122
- const httpRequest = httpClient.request(options, (response) => {
123
- response.setEncoding("utf8");
124
- unmountListener = createAbortListener(0, gqlExtra, response.destroy, resolve);
125
- let chunks = "";
126
- const totalDownloadBytes = Number(response.headers["content-length"]);
127
- let downloadedBytes = 0;
128
- onRequestStart();
129
- response.on("data", (chunk) => {
130
- if (!chunks) {
131
- onRequestEnd();
132
- onResponseStart();
133
- }
134
- downloadedBytes += chunk.length;
135
- chunks += chunk;
136
- onResponseProgress({ total: totalDownloadBytes, loaded: downloadedBytes });
137
- });
138
- response.on("end", () => {
139
- const { statusCode } = response;
140
- const success = String(statusCode).startsWith("2") || String(statusCode).startsWith("3");
141
- if (success) {
142
- const data = parseResponse2(chunks);
143
- onSuccess(data, statusCode, { headers: response.headers }, resolve);
144
- } else {
145
- const data = parseErrorResponse2(chunks);
146
- onError(data, statusCode, { headers: response.headers }, resolve);
147
- }
148
- unmountListener();
149
- onResponseEnd();
150
- });
151
- });
152
- httpRequest.on("timeout", () => onTimeoutError(0, gqlExtra, resolve));
153
- httpRequest.on("error", (error) => onError(error, 0, gqlExtra, resolve));
154
- if (payload) {
155
- httpRequest.write(payload);
156
- }
157
- httpRequest.end();
158
- });
159
- });
160
-
161
- // src/adapter/adapter.ts
162
- import { HttpMethodsEnum } from "@hyper-fetch/core";
163
- import { print } from "graphql/language/printer";
164
- var graphqlAdapter = (client) => {
165
- const adapter3 = (request, requestId) => __async(void 0, null, function* () {
166
- if (typeof XMLHttpRequest !== "undefined") {
167
- return adapter(request, requestId);
168
- }
169
- return adapter2(request, requestId);
170
- });
171
- const mapper = (endpoint) => {
172
- if (typeof endpoint === "string") {
173
- return endpoint;
174
- }
175
- return print(endpoint);
176
- };
177
- return client.setDefaultMethod(HttpMethodsEnum.post).setEndpointMapper(mapper).setAdapter(() => adapter3);
178
- };
179
-
180
- // src/adapter/adapter.types.ts
181
- var GraphQlMethod = /* @__PURE__ */ ((GraphQlMethod2) => {
182
- GraphQlMethod2["POST"] = "POST";
183
- GraphQlMethod2["GET"] = "GET";
184
- return GraphQlMethod2;
185
- })(GraphQlMethod || {});
186
-
187
- // src/adapter/adapter.utils.ts
188
- import { HttpMethodsEnum as HttpMethodsEnum2 } from "@hyper-fetch/core";
189
- var getRequestValues = (request) => {
190
- const { method } = request;
191
- const isPostRequest = request.method === HttpMethodsEnum2.post;
192
- const query = request.endpoint;
193
- const variables = request.data;
194
- const fullUrl = isPostRequest ? request.client.url : request.client.url + request.client.stringifyQueryParams({ query, variables });
195
- const payload = isPostRequest ? JSON.stringify({
196
- query,
197
- variables
198
- }) : null;
199
- return { fullUrl, payload, method };
200
- };
201
-
202
- // src/adapter/adapter.constants.ts
203
- import { DateInterval } from "@hyper-fetch/core";
204
- var defaultTimeout = DateInterval.second * 5;
205
- var gqlExtra = {
206
- headers: {}
207
- };
208
- export {
209
- GraphQlMethod,
210
- defaultTimeout,
211
- getRequestValues,
212
- gqlExtra,
213
- graphqlAdapter
214
- };
215
- //# sourceMappingURL=index.esm.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/adapter/adapter.browser.ts", "../src/adapter/adapter.server.ts", "../src/adapter/adapter.ts", "../src/adapter/adapter.types.ts", "../src/adapter/adapter.utils.ts", "../src/adapter/adapter.constants.ts"],
4
- "sourcesContent": ["import { getAdapterBindings, getResponseHeaders, parseResponse, parseErrorResponse } from \"@hyper-fetch/core\";\n\nimport { gqlExtra, GraphQLAdapterType, defaultTimeout, getRequestValues } from \"adapter\";\n\nexport const adapter: GraphQLAdapterType = async (request, requestId) => {\n const {\n makeRequest,\n config,\n headers,\n onError,\n onResponseEnd,\n onTimeoutError,\n onRequestEnd,\n createAbortListener,\n onResponseProgress,\n onRequestProgress,\n onResponseStart,\n onBeforeRequest,\n onRequestStart,\n onSuccess,\n } = await getAdapterBindings<GraphQLAdapterType>(request, requestId, 0, gqlExtra);\n\n const { fullUrl, payload, method } = getRequestValues(request);\n\n return makeRequest((resolve) => {\n const xhr = new XMLHttpRequest();\n xhr.timeout = defaultTimeout;\n\n const abort = () => xhr.abort();\n\n // Inject xhr options\n Object.entries(config).forEach(([name, value]) => {\n xhr[name] = value;\n });\n\n // Open connection\n xhr.open(method, fullUrl, true);\n\n // Set Headers\n Object.entries(headers).forEach(([name, value]) => xhr.setRequestHeader(name, value as string));\n\n // Listen to abort signal\n const unmountListener = createAbortListener(0, gqlExtra, abort, resolve);\n\n // Request handlers\n xhr.upload.onprogress = onRequestProgress;\n\n // Response handlers\n xhr.onloadstart = (): void => {\n onRequestEnd();\n onResponseStart();\n };\n\n xhr.onprogress = onResponseProgress;\n\n xhr.onloadend = () => {\n onResponseEnd();\n unmountListener();\n };\n\n xhr.ontimeout = () => onTimeoutError(0, gqlExtra, resolve);\n\n // Data handler\n xhr.onreadystatechange = (e: Event) => {\n const event = e as unknown as ProgressEvent<XMLHttpRequest>;\n const finishedState = 4;\n\n if (event.target && event.target.readyState === finishedState) {\n const { status } = event.target;\n const success = String(status).startsWith(\"2\") || String(status).startsWith(\"3\");\n const responseHeaders = getResponseHeaders(xhr.getAllResponseHeaders());\n\n if (success) {\n const data = parseResponse(event.target.response);\n onSuccess(data, status, { headers: responseHeaders }, resolve);\n } else {\n // delay to finish after onabort/ontimeout\n const data = parseErrorResponse(event.target.response);\n onError(data, status, { headers: responseHeaders }, resolve);\n }\n }\n };\n\n // Start request\n onBeforeRequest();\n onRequestStart();\n\n xhr.send(payload);\n });\n};\n", "import { getAdapterBindings, parseErrorResponse, parseResponse } from \"@hyper-fetch/core\";\nimport http, { OutgoingHttpHeaders } from \"http\";\nimport https from \"https\";\n\nimport { gqlExtra, defaultTimeout, GraphQLAdapterType, getRequestValues } from \"adapter\";\n\nexport const adapter: GraphQLAdapterType = async (request, requestId) => {\n const {\n makeRequest,\n config,\n headers,\n onError,\n onResponseEnd,\n onTimeoutError,\n onRequestEnd,\n createAbortListener,\n onResponseProgress,\n onResponseStart,\n onBeforeRequest,\n onRequestStart,\n onSuccess,\n } = await getAdapterBindings<GraphQLAdapterType>(request, requestId, 0, gqlExtra);\n\n const { fullUrl, payload, method } = getRequestValues(request);\n\n const httpClient = request.client.url.includes(\"https://\") ? https : http;\n const options = {\n path: fullUrl,\n method,\n headers: headers as OutgoingHttpHeaders,\n timeout: defaultTimeout,\n };\n\n Object.entries(config).forEach(([name, value]) => {\n options[name] = value;\n });\n\n let unmountListener = () => null;\n onBeforeRequest();\n\n if (payload) {\n options.headers[\"Content-Length\"] = Buffer.byteLength(JSON.stringify(payload));\n }\n\n return makeRequest((resolve) => {\n const httpRequest = httpClient.request(options, (response) => {\n response.setEncoding(\"utf8\");\n unmountListener = createAbortListener(0, gqlExtra, response.destroy, resolve);\n\n let chunks = \"\";\n const totalDownloadBytes = Number(response.headers[\"content-length\"]);\n let downloadedBytes = 0;\n\n onRequestStart();\n\n response.on(\"data\", (chunk) => {\n if (!chunks) {\n onRequestEnd();\n onResponseStart();\n }\n downloadedBytes += chunk.length;\n chunks += chunk;\n onResponseProgress({ total: totalDownloadBytes, loaded: downloadedBytes });\n });\n\n response.on(\"end\", () => {\n const { statusCode } = response;\n const success = String(statusCode).startsWith(\"2\") || String(statusCode).startsWith(\"3\");\n\n if (success) {\n const data = parseResponse(chunks);\n onSuccess(data, statusCode, { headers: response.headers as Record<string, string> }, resolve);\n } else {\n // delay to finish after onabort/ontimeout\n const data = parseErrorResponse(chunks);\n onError(data, statusCode, { headers: response.headers as Record<string, string> }, resolve);\n }\n\n unmountListener();\n onResponseEnd();\n });\n });\n\n httpRequest.on(\"timeout\", () => onTimeoutError(0, gqlExtra, resolve));\n httpRequest.on(\"error\", (error) => onError(error, 0, gqlExtra, resolve));\n if (payload) {\n httpRequest.write(payload);\n }\n httpRequest.end();\n });\n};\n", "import * as browser from \"@browser-adapter\";\nimport * as server from \"@server-adapter\";\nimport { HttpMethodsEnum, ClientInstance } from \"@hyper-fetch/core\";\nimport { print } from \"graphql/language/printer\";\n\nimport { GraphQLAdapterType, GraphQlEndpointType } from \"adapter\";\n\nexport const graphqlAdapter = (client: ClientInstance) => {\n const adapter: GraphQLAdapterType = async (request, requestId) => {\n if (typeof XMLHttpRequest !== \"undefined\") {\n return browser.adapter(request, requestId);\n }\n return server.adapter(request, requestId);\n };\n\n const mapper = <E extends GraphQlEndpointType>(endpoint: E): string => {\n if (typeof endpoint === \"string\") {\n return endpoint;\n }\n return print(endpoint);\n };\n\n return client\n .setDefaultMethod(HttpMethodsEnum.post)\n .setEndpointMapper(mapper)\n .setAdapter(() => adapter);\n};\n", "import { AdapterType, NegativeTypes, QueryParamsType } from \"@hyper-fetch/core\";\nimport { DocumentNode } from \"graphql/language/ast\";\n\nexport enum GraphQlMethod {\n POST = \"POST\",\n GET = \"GET\",\n}\n\nexport type GraphQlExtraType = { headers: HeadersInit };\n\nexport type GraphQlEndpointType = string | DocumentNode;\n\nexport type GraphQLAdapterType = AdapterType<\n Partial<XMLHttpRequest>,\n GraphQlMethod,\n number,\n GraphQlExtraType,\n QueryParamsType | string,\n GraphQlEndpointType\n>;\n\n// Extract\n\ntype GqlParamType = boolean | string | number | Record<string, any> | NegativeTypes;\n\nexport type ExtractGqlRouteParams<T extends string> = string extends T\n ? NegativeTypes\n : T extends `${string}query ${infer Parameters} {${infer QueryRest}`\n ? Parameters extends `${string}$${infer Param},${infer Rest}`\n ? GqlParameter<Param, Rest> &\n // eslint-disable-next-line @typescript-eslint/ban-types\n (ExtractGqlRouteParams<QueryRest> extends NegativeTypes ? {} : ExtractGqlRouteParams<QueryRest>)\n : Parameters extends `${string}$${infer Param})${infer Rest}`\n ? GqlParameter<Param, Rest> &\n // eslint-disable-next-line @typescript-eslint/ban-types\n (ExtractGqlRouteParams<QueryRest> extends NegativeTypes ? {} : ExtractGqlRouteParams<QueryRest>)\n : NegativeTypes\n : T extends `${string}$${infer Parameters},${infer Rest}`\n ? GqlParameter<Parameters, Rest>\n : T extends `${string}$${infer Parameters})${infer Rest}`\n ? GqlParameter<Parameters, Rest>\n : NegativeTypes;\n\nexport type GqlParameter<T extends string, Rest extends string> = T extends `${infer Param}:${string}!`\n ? { [k in Param]: GqlParamType } & (ExtractGqlRouteParams<Rest> extends NegativeTypes\n ? // eslint-disable-next-line @typescript-eslint/ban-types\n {}\n : ExtractGqlRouteParams<Rest>)\n : T extends `${infer Param}:${string}`\n ? { [k in Param]?: GqlParamType } & (ExtractGqlRouteParams<Rest> extends NegativeTypes\n ? // eslint-disable-next-line @typescript-eslint/ban-types\n {}\n : ExtractGqlRouteParams<Rest>)\n : NegativeTypes;\n", "import { RequestInstance, HttpMethodsEnum } from \"@hyper-fetch/core\";\n\nexport const getRequestValues = (request: RequestInstance) => {\n const { method } = request;\n\n const isPostRequest = request.method === HttpMethodsEnum.post;\n\n const query = request.endpoint;\n const variables = request.data;\n\n const fullUrl = isPostRequest\n ? request.client.url\n : request.client.url + request.client.stringifyQueryParams({ query, variables });\n\n const payload = isPostRequest\n ? JSON.stringify({\n query,\n variables,\n })\n : null;\n\n return { fullUrl, payload, method };\n};\n", "import { DateInterval } from \"@hyper-fetch/core\";\n\nimport { GraphQlExtraType } from \"./adapter.types\";\n\nexport const defaultTimeout = DateInterval.second * 5;\n\nexport const gqlExtra: GraphQlExtraType = {\n headers: {},\n};\n"],
5
- "mappings": "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",
6
- "names": ["getAdapterBindings", "parseErrorResponse", "parseResponse", "adapter", "getAdapterBindings", "parseResponse", "parseErrorResponse", "adapter", "GraphQlMethod", "HttpMethodsEnum"]
7
- }
@@ -1,90 +0,0 @@
1
- import { getAdapterBindings, getResponseHeaders, parseResponse, parseErrorResponse } from "@hyper-fetch/core";
2
-
3
- import { gqlExtra, GraphQLAdapterType, defaultTimeout, getRequestValues } from "adapter";
4
-
5
- export const adapter: GraphQLAdapterType = async (request, requestId) => {
6
- const {
7
- makeRequest,
8
- config,
9
- headers,
10
- onError,
11
- onResponseEnd,
12
- onTimeoutError,
13
- onRequestEnd,
14
- createAbortListener,
15
- onResponseProgress,
16
- onRequestProgress,
17
- onResponseStart,
18
- onBeforeRequest,
19
- onRequestStart,
20
- onSuccess,
21
- } = await getAdapterBindings<GraphQLAdapterType>(request, requestId, 0, gqlExtra);
22
-
23
- const { fullUrl, payload, method } = getRequestValues(request);
24
-
25
- return makeRequest((resolve) => {
26
- const xhr = new XMLHttpRequest();
27
- xhr.timeout = defaultTimeout;
28
-
29
- const abort = () => xhr.abort();
30
-
31
- // Inject xhr options
32
- Object.entries(config).forEach(([name, value]) => {
33
- xhr[name] = value;
34
- });
35
-
36
- // Open connection
37
- xhr.open(method, fullUrl, true);
38
-
39
- // Set Headers
40
- Object.entries(headers).forEach(([name, value]) => xhr.setRequestHeader(name, value as string));
41
-
42
- // Listen to abort signal
43
- const unmountListener = createAbortListener(0, gqlExtra, abort, resolve);
44
-
45
- // Request handlers
46
- xhr.upload.onprogress = onRequestProgress;
47
-
48
- // Response handlers
49
- xhr.onloadstart = (): void => {
50
- onRequestEnd();
51
- onResponseStart();
52
- };
53
-
54
- xhr.onprogress = onResponseProgress;
55
-
56
- xhr.onloadend = () => {
57
- onResponseEnd();
58
- unmountListener();
59
- };
60
-
61
- xhr.ontimeout = () => onTimeoutError(0, gqlExtra, resolve);
62
-
63
- // Data handler
64
- xhr.onreadystatechange = (e: Event) => {
65
- const event = e as unknown as ProgressEvent<XMLHttpRequest>;
66
- const finishedState = 4;
67
-
68
- if (event.target && event.target.readyState === finishedState) {
69
- const { status } = event.target;
70
- const success = String(status).startsWith("2") || String(status).startsWith("3");
71
- const responseHeaders = getResponseHeaders(xhr.getAllResponseHeaders());
72
-
73
- if (success) {
74
- const data = parseResponse(event.target.response);
75
- onSuccess(data, status, { headers: responseHeaders }, resolve);
76
- } else {
77
- // delay to finish after onabort/ontimeout
78
- const data = parseErrorResponse(event.target.response);
79
- onError(data, status, { headers: responseHeaders }, resolve);
80
- }
81
- }
82
- };
83
-
84
- // Start request
85
- onBeforeRequest();
86
- onRequestStart();
87
-
88
- xhr.send(payload);
89
- });
90
- };
@@ -1,91 +0,0 @@
1
- import { getAdapterBindings, parseErrorResponse, parseResponse } from "@hyper-fetch/core";
2
- import http, { OutgoingHttpHeaders } from "http";
3
- import https from "https";
4
-
5
- import { gqlExtra, defaultTimeout, GraphQLAdapterType, getRequestValues } from "adapter";
6
-
7
- export const adapter: GraphQLAdapterType = async (request, requestId) => {
8
- const {
9
- makeRequest,
10
- config,
11
- headers,
12
- onError,
13
- onResponseEnd,
14
- onTimeoutError,
15
- onRequestEnd,
16
- createAbortListener,
17
- onResponseProgress,
18
- onResponseStart,
19
- onBeforeRequest,
20
- onRequestStart,
21
- onSuccess,
22
- } = await getAdapterBindings<GraphQLAdapterType>(request, requestId, 0, gqlExtra);
23
-
24
- const { fullUrl, payload, method } = getRequestValues(request);
25
-
26
- const httpClient = request.client.url.includes("https://") ? https : http;
27
- const options = {
28
- path: fullUrl,
29
- method,
30
- headers: headers as OutgoingHttpHeaders,
31
- timeout: defaultTimeout,
32
- };
33
-
34
- Object.entries(config).forEach(([name, value]) => {
35
- options[name] = value;
36
- });
37
-
38
- let unmountListener = () => null;
39
- onBeforeRequest();
40
-
41
- if (payload) {
42
- options.headers["Content-Length"] = Buffer.byteLength(JSON.stringify(payload));
43
- }
44
-
45
- return makeRequest((resolve) => {
46
- const httpRequest = httpClient.request(options, (response) => {
47
- response.setEncoding("utf8");
48
- unmountListener = createAbortListener(0, gqlExtra, response.destroy, resolve);
49
-
50
- let chunks = "";
51
- const totalDownloadBytes = Number(response.headers["content-length"]);
52
- let downloadedBytes = 0;
53
-
54
- onRequestStart();
55
-
56
- response.on("data", (chunk) => {
57
- if (!chunks) {
58
- onRequestEnd();
59
- onResponseStart();
60
- }
61
- downloadedBytes += chunk.length;
62
- chunks += chunk;
63
- onResponseProgress({ total: totalDownloadBytes, loaded: downloadedBytes });
64
- });
65
-
66
- response.on("end", () => {
67
- const { statusCode } = response;
68
- const success = String(statusCode).startsWith("2") || String(statusCode).startsWith("3");
69
-
70
- if (success) {
71
- const data = parseResponse(chunks);
72
- onSuccess(data, statusCode, { headers: response.headers as Record<string, string> }, resolve);
73
- } else {
74
- // delay to finish after onabort/ontimeout
75
- const data = parseErrorResponse(chunks);
76
- onError(data, statusCode, { headers: response.headers as Record<string, string> }, resolve);
77
- }
78
-
79
- unmountListener();
80
- onResponseEnd();
81
- });
82
- });
83
-
84
- httpRequest.on("timeout", () => onTimeoutError(0, gqlExtra, resolve));
85
- httpRequest.on("error", (error) => onError(error, 0, gqlExtra, resolve));
86
- if (payload) {
87
- httpRequest.write(payload);
88
- }
89
- httpRequest.end();
90
- });
91
- };