@subsquid/http-client 1.6.0 → 1.7.0-2-0.a5e4b7
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/lib/client.d.ts +14 -5
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +72 -56
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +1 -1
- package/package.json +3 -4
- package/src/client.ts +130 -97
- package/src/index.ts +0 -1
- package/esm.d.ts +0 -2
- package/esm.js +0 -3
- package/lib/agent.d.ts +0 -15
- package/lib/agent.d.ts.map +0 -1
- package/lib/agent.js +0 -57
- package/lib/agent.js.map +0 -1
- package/lib/client.test.d.ts +0 -2
- package/lib/client.test.d.ts.map +0 -1
- package/lib/client.test.js +0 -14
- package/lib/client.test.js.map +0 -1
- package/lib/request.d.ts +0 -9
- package/lib/request.d.ts.map +0 -1
- package/lib/request.js +0 -32
- package/lib/request.js.map +0 -1
- package/src/agent.ts +0 -39
- package/src/client.test.ts +0 -10
- package/src/request.ts +0 -29
package/lib/client.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { Logger } from '@subsquid/logger';
|
|
2
|
-
import type { Headers, RequestInit, Response } from 'node-fetch';
|
|
3
|
-
import { AgentProvider } from './agent';
|
|
4
2
|
import { HttpBody } from './body';
|
|
5
3
|
export { HttpBody };
|
|
6
4
|
export interface HttpClientOptions {
|
|
7
|
-
agent?: AgentProvider;
|
|
8
5
|
baseUrl?: string;
|
|
9
6
|
headers?: Record<string, string | number | bigint>;
|
|
10
7
|
/**
|
|
@@ -14,9 +11,12 @@ export interface HttpClientOptions {
|
|
|
14
11
|
* Overall request processing time might be much larger due to retries.
|
|
15
12
|
*/
|
|
16
13
|
httpTimeout?: number;
|
|
14
|
+
bodyTimeout?: number;
|
|
17
15
|
retryAttempts?: number;
|
|
18
16
|
retrySchedule?: number[];
|
|
17
|
+
keepalive?: boolean;
|
|
19
18
|
log?: Logger | null;
|
|
19
|
+
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
20
20
|
}
|
|
21
21
|
export interface RequestOptions {
|
|
22
22
|
query?: Record<string, string | number | bigint>;
|
|
@@ -24,8 +24,10 @@ export interface RequestOptions {
|
|
|
24
24
|
retryAttempts?: number;
|
|
25
25
|
retrySchedule?: number[];
|
|
26
26
|
httpTimeout?: number;
|
|
27
|
+
bodyTimeout?: number;
|
|
27
28
|
abort?: AbortSignal;
|
|
28
29
|
stream?: boolean;
|
|
30
|
+
keepalive?: boolean;
|
|
29
31
|
}
|
|
30
32
|
export interface GraphqlRequestOptions extends RequestOptions {
|
|
31
33
|
variables?: Record<string, any>;
|
|
@@ -38,6 +40,7 @@ export interface FetchRequest extends RequestInit {
|
|
|
38
40
|
url: string;
|
|
39
41
|
headers: Headers;
|
|
40
42
|
timeout?: number;
|
|
43
|
+
bodyTimeout?: number;
|
|
41
44
|
signal?: AbortSignal;
|
|
42
45
|
stream?: boolean;
|
|
43
46
|
}
|
|
@@ -46,11 +49,13 @@ export declare class HttpClient {
|
|
|
46
49
|
protected log?: Logger;
|
|
47
50
|
protected headers?: Record<string, string | number | bigint>;
|
|
48
51
|
private baseUrl?;
|
|
49
|
-
private agent;
|
|
50
52
|
private retrySchedule;
|
|
51
53
|
private retryAttempts;
|
|
52
54
|
private httpTimeout;
|
|
55
|
+
private bodyTimeout?;
|
|
53
56
|
private requestCounter;
|
|
57
|
+
private keepalive?;
|
|
58
|
+
private fetch;
|
|
54
59
|
constructor(options?: HttpClientOptions);
|
|
55
60
|
get<T = any>(url: string, options?: RequestOptions): Promise<T>;
|
|
56
61
|
post<T = any>(url: string, options?: RequestOptions & HttpBody): Promise<T>;
|
|
@@ -97,6 +102,10 @@ export declare class HttpTimeoutError extends Error {
|
|
|
97
102
|
constructor(ms: number);
|
|
98
103
|
get name(): string;
|
|
99
104
|
}
|
|
105
|
+
export declare class HttpBodyTimeoutError extends Error {
|
|
106
|
+
constructor(ms: number);
|
|
107
|
+
get name(): string;
|
|
108
|
+
}
|
|
100
109
|
export interface GraphqlMessage {
|
|
101
110
|
message: string;
|
|
102
111
|
path?: (string | number)[];
|
|
@@ -106,6 +115,6 @@ export declare class GraphqlError extends Error {
|
|
|
106
115
|
constructor(messages: GraphqlMessage[]);
|
|
107
116
|
get name(): string;
|
|
108
117
|
}
|
|
109
|
-
export declare function isHttpConnectionError(err: unknown): boolean;
|
|
110
118
|
export declare function asRetryAfterPause(res: HttpResponse | Error): number | undefined;
|
|
119
|
+
export declare function isHttpConnectionError(error: unknown): boolean;
|
|
111
120
|
//# sourceMappingURL=client.d.ts.map
|
package/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/client.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GraphqlError = exports.HttpTimeoutError = exports.HttpError = exports.HttpResponse = exports.HttpClient = void 0;
|
|
4
|
-
exports.isHttpConnectionError = isHttpConnectionError;
|
|
3
|
+
exports.GraphqlError = exports.HttpBodyTimeoutError = exports.HttpTimeoutError = exports.HttpError = exports.HttpResponse = exports.HttpClient = void 0;
|
|
5
4
|
exports.asRetryAfterPause = asRetryAfterPause;
|
|
6
|
-
|
|
5
|
+
exports.isHttpConnectionError = isHttpConnectionError;
|
|
7
6
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
8
|
-
const
|
|
9
|
-
const request_1 = require("./request");
|
|
7
|
+
const util_timeout_1 = require("@subsquid/util-timeout");
|
|
10
8
|
class HttpClient {
|
|
11
9
|
constructor(options = {}) {
|
|
12
10
|
this.requestCounter = 0;
|
|
13
|
-
this.log = options.log === null ? undefined : options.log
|
|
11
|
+
this.log = options.log === null ? undefined : options.log;
|
|
14
12
|
this.headers = options.headers;
|
|
15
13
|
this.setBaseUrl(options.baseUrl);
|
|
16
|
-
this.agent = options.agent || agent_1.defaultAgentProvider;
|
|
17
14
|
this.retrySchedule = options.retrySchedule || [10, 100, 500, 2000, 10000, 20000];
|
|
18
15
|
this.retryAttempts = options.retryAttempts || 0;
|
|
19
16
|
this.httpTimeout = options.httpTimeout ?? 20000;
|
|
17
|
+
this.bodyTimeout = options.bodyTimeout;
|
|
18
|
+
this.keepalive = options.keepalive;
|
|
19
|
+
this.fetch = options.fetch || fetch;
|
|
20
20
|
}
|
|
21
21
|
get(url, options) {
|
|
22
|
-
return this.request('GET', url, options).then(res => res.body);
|
|
22
|
+
return this.request('GET', url, options).then((res) => res.body);
|
|
23
23
|
}
|
|
24
24
|
post(url, options) {
|
|
25
|
-
return this.request('POST', url, options).then(res => res.body);
|
|
25
|
+
return this.request('POST', url, options).then((res) => res.body);
|
|
26
26
|
}
|
|
27
27
|
async request(method, url, options = {}) {
|
|
28
28
|
let req = await this.prepareRequest(method, url, options);
|
|
@@ -36,9 +36,7 @@ class HttpClient {
|
|
|
36
36
|
if (retryAttempts > retries && this.isRetryableError(res, req)) {
|
|
37
37
|
let pause = asRetryAfterPause(res);
|
|
38
38
|
if (pause == null) {
|
|
39
|
-
pause = retrySchedule.length
|
|
40
|
-
? retrySchedule[Math.min(retries, retrySchedule.length - 1)]
|
|
41
|
-
: 1000;
|
|
39
|
+
pause = retrySchedule.length ? retrySchedule[Math.min(retries, retrySchedule.length - 1)] : 1000;
|
|
42
40
|
}
|
|
43
41
|
retries += 1;
|
|
44
42
|
this.beforeRetryPause(req, res, pause);
|
|
@@ -63,7 +61,7 @@ class HttpClient {
|
|
|
63
61
|
httpRequestUrl: req.url,
|
|
64
62
|
httpRequestMethod: req.method,
|
|
65
63
|
httpRequestHeaders: Array.from(req.headers),
|
|
66
|
-
httpRequestBody: req.body
|
|
64
|
+
httpRequestBody: req.body,
|
|
67
65
|
}, 'http request');
|
|
68
66
|
}
|
|
69
67
|
}
|
|
@@ -72,7 +70,8 @@ class HttpClient {
|
|
|
72
70
|
let info = {
|
|
73
71
|
httpRequestId: req.id,
|
|
74
72
|
httpRequestUrl: req.url,
|
|
75
|
-
httpRequestMethod: req.method
|
|
73
|
+
httpRequestMethod: req.method,
|
|
74
|
+
httpRequestBody: req.body,
|
|
76
75
|
};
|
|
77
76
|
if (reason instanceof Error) {
|
|
78
77
|
info.reason = reason.toString();
|
|
@@ -93,7 +92,7 @@ class HttpClient {
|
|
|
93
92
|
httpRequestId: req.id,
|
|
94
93
|
httpResponseUrl: url,
|
|
95
94
|
httpResponseStatus: status,
|
|
96
|
-
httpResponseHeaders: Array.from(headers)
|
|
95
|
+
httpResponseHeaders: Array.from(headers),
|
|
97
96
|
}, 'http headers');
|
|
98
97
|
}
|
|
99
98
|
}
|
|
@@ -107,21 +106,21 @@ class HttpClient {
|
|
|
107
106
|
}
|
|
108
107
|
this.log.debug({
|
|
109
108
|
httpRequestId: req.id,
|
|
110
|
-
httpResponseBody
|
|
109
|
+
httpResponseBody,
|
|
111
110
|
}, 'http body');
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
async prepareRequest(method, url, options) {
|
|
115
|
-
await request_1.nodeFetch.load();
|
|
116
114
|
let req = {
|
|
117
115
|
id: this.requestCounter++,
|
|
118
116
|
method,
|
|
119
|
-
headers: new
|
|
117
|
+
headers: new Headers(options.headers),
|
|
120
118
|
url: this.getAbsUrl(url),
|
|
121
119
|
signal: options.abort,
|
|
122
|
-
compress: true,
|
|
123
120
|
timeout: options.httpTimeout ?? this.httpTimeout,
|
|
124
|
-
|
|
121
|
+
bodyTimeout: options.bodyTimeout ?? this.bodyTimeout,
|
|
122
|
+
stream: options.stream,
|
|
123
|
+
keepalive: options.keepalive ?? this.keepalive,
|
|
125
124
|
};
|
|
126
125
|
this.handleBasicAuth(req);
|
|
127
126
|
if (options.query) {
|
|
@@ -133,7 +132,6 @@ class HttpClient {
|
|
|
133
132
|
req.url += '?' + qs;
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
|
-
req.agent = this.agent.getNativeAgent(req.url);
|
|
137
135
|
if (options.content !== undefined) {
|
|
138
136
|
if (typeof options.content == 'string') {
|
|
139
137
|
req.body = options.content;
|
|
@@ -141,11 +139,8 @@ class HttpClient {
|
|
|
141
139
|
req.headers.set('content-type', 'text/plain');
|
|
142
140
|
}
|
|
143
141
|
}
|
|
144
|
-
else if (Buffer.isBuffer(options.content)) {
|
|
145
|
-
req.body = options.content;
|
|
146
|
-
}
|
|
147
142
|
else {
|
|
148
|
-
req.body =
|
|
143
|
+
req.body = options.content;
|
|
149
144
|
}
|
|
150
145
|
}
|
|
151
146
|
if (options.json !== undefined) {
|
|
@@ -184,7 +179,7 @@ class HttpClient {
|
|
|
184
179
|
}, req.timeout);
|
|
185
180
|
let res;
|
|
186
181
|
try {
|
|
187
|
-
return res = await this.performRequest({ ...req, signal: ac.signal });
|
|
182
|
+
return (res = await this.performRequest({ ...req, signal: ac.signal }));
|
|
188
183
|
}
|
|
189
184
|
catch (err) {
|
|
190
185
|
if (timer == null) {
|
|
@@ -195,36 +190,27 @@ class HttpClient {
|
|
|
195
190
|
}
|
|
196
191
|
}
|
|
197
192
|
finally {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
if (req.signal && res?.stream) {
|
|
202
|
-
// FIXME: is `close` always emitted?
|
|
203
|
-
res.body.on('close', () => {
|
|
204
|
-
req.signal.removeEventListener('abort', abort);
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
req.signal?.removeEventListener('abort', abort);
|
|
209
|
-
}
|
|
193
|
+
clearTimeout(timer);
|
|
194
|
+
req.signal?.removeEventListener('abort', abort);
|
|
210
195
|
}
|
|
211
196
|
}
|
|
212
197
|
async performRequest(req) {
|
|
213
|
-
let res = await
|
|
198
|
+
let res = await this.fetch(req.url, req);
|
|
214
199
|
this.afterResponseHeaders(req, res.url, res.status, res.headers);
|
|
215
|
-
let
|
|
216
|
-
|
|
217
|
-
httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, res.body, res.body != null);
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
let body = await this.handleResponseBody(req, res);
|
|
221
|
-
httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, body, false);
|
|
222
|
-
}
|
|
200
|
+
let body = await this.handleResponseBody(req, res);
|
|
201
|
+
let httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, body, body instanceof ReadableStream);
|
|
223
202
|
this.afterResponse(req, httpResponse);
|
|
224
203
|
return httpResponse;
|
|
225
204
|
}
|
|
226
205
|
async handleResponseBody(req, res) {
|
|
227
206
|
let contentType = (res.headers.get('content-type') || '').split(';')[0];
|
|
207
|
+
if (req.bodyTimeout != null && res.body != null) {
|
|
208
|
+
let body = (0, util_timeout_1.addStreamTimeout)(res.body, req.bodyTimeout, () => new HttpBodyTimeoutError(req.bodyTimeout));
|
|
209
|
+
res = new Response(body, res);
|
|
210
|
+
}
|
|
211
|
+
if (req.stream && res.ok && res.body != null) {
|
|
212
|
+
return res.body;
|
|
213
|
+
}
|
|
228
214
|
if (contentType == 'application/json') {
|
|
229
215
|
return res.json();
|
|
230
216
|
}
|
|
@@ -234,7 +220,7 @@ class HttpClient {
|
|
|
234
220
|
let arrayBuffer = await res.arrayBuffer();
|
|
235
221
|
if (arrayBuffer.byteLength == 0)
|
|
236
222
|
return undefined;
|
|
237
|
-
return
|
|
223
|
+
return arrayBuffer;
|
|
238
224
|
}
|
|
239
225
|
isRetryableError(error, req) {
|
|
240
226
|
if (isHttpConnectionError(error))
|
|
@@ -311,7 +297,7 @@ class HttpClient {
|
|
|
311
297
|
else {
|
|
312
298
|
req.json = {
|
|
313
299
|
query: gql,
|
|
314
|
-
variables
|
|
300
|
+
variables,
|
|
315
301
|
};
|
|
316
302
|
}
|
|
317
303
|
let res = await this.request(method, url, req);
|
|
@@ -346,7 +332,7 @@ class HttpResponse {
|
|
|
346
332
|
status: this.status,
|
|
347
333
|
headers: Array.from(this.headers),
|
|
348
334
|
body: this.stream ? undefined : this.body,
|
|
349
|
-
url: this.url
|
|
335
|
+
url: this.url,
|
|
350
336
|
};
|
|
351
337
|
}
|
|
352
338
|
}
|
|
@@ -371,6 +357,15 @@ class HttpTimeoutError extends Error {
|
|
|
371
357
|
}
|
|
372
358
|
}
|
|
373
359
|
exports.HttpTimeoutError = HttpTimeoutError;
|
|
360
|
+
class HttpBodyTimeoutError extends Error {
|
|
361
|
+
constructor(ms) {
|
|
362
|
+
super(`request body timed out after ${ms} ms`);
|
|
363
|
+
}
|
|
364
|
+
get name() {
|
|
365
|
+
return 'HttpBodyTimeoutError';
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
exports.HttpBodyTimeoutError = HttpBodyTimeoutError;
|
|
374
369
|
class GraphqlError extends Error {
|
|
375
370
|
constructor(messages) {
|
|
376
371
|
super(`GraphQL error: ${messages[0].message}`);
|
|
@@ -381,12 +376,13 @@ class GraphqlError extends Error {
|
|
|
381
376
|
}
|
|
382
377
|
}
|
|
383
378
|
exports.GraphqlError = GraphqlError;
|
|
384
|
-
function isHttpConnectionError(err) {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
379
|
+
// export function isHttpConnectionError(err: unknown): boolean {
|
|
380
|
+
// return false
|
|
381
|
+
// nodeFetch.isLoaded
|
|
382
|
+
// && err instanceof nodeFetch.FetchError
|
|
383
|
+
// && err.type == 'system'
|
|
384
|
+
// && (err.message.startsWith('request to') || err.code == 'ERR_STREAM_PREMATURE_CLOSE')
|
|
385
|
+
// }
|
|
390
386
|
function asRetryAfterPause(res) {
|
|
391
387
|
if (res instanceof HttpError) {
|
|
392
388
|
res = res.response;
|
|
@@ -403,4 +399,24 @@ function asRetryAfterPause(res) {
|
|
|
403
399
|
return undefined;
|
|
404
400
|
}
|
|
405
401
|
const HTTP_DATE_REGEX = /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/;
|
|
402
|
+
// ref: https://github.com/sindresorhus/is-network-error/blob/main/index.js
|
|
403
|
+
const errorMessages = new Set([
|
|
404
|
+
'network error', // Chrome
|
|
405
|
+
'Failed to fetch', // Chrome
|
|
406
|
+
'NetworkError when attempting to fetch resource.', // Firefox
|
|
407
|
+
'The Internet connection appears to be offline.', // Safari 16
|
|
408
|
+
'Load failed', // Safari 17+
|
|
409
|
+
'Network request failed', // `cross-fetch`
|
|
410
|
+
'fetch failed', // Undici (Node.js)
|
|
411
|
+
'terminated', // Undici (Node.js)
|
|
412
|
+
]);
|
|
413
|
+
function isHttpConnectionError(error) {
|
|
414
|
+
if (error instanceof TypeError) {
|
|
415
|
+
if (error.message === 'Load failed') {
|
|
416
|
+
return error.stack === undefined;
|
|
417
|
+
}
|
|
418
|
+
return errorMessages.has(error.message);
|
|
419
|
+
}
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
406
422
|
//# sourceMappingURL=client.js.map
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -14,8 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.HttpAgent = void 0;
|
|
18
17
|
__exportStar(require("./client"), exports);
|
|
19
|
-
var agent_1 = require("./agent");
|
|
20
|
-
Object.defineProperty(exports, "HttpAgent", { enumerable: true, get: function () { return agent_1.HttpAgent; } });
|
|
21
18
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/http-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-2-0.a5e4b7",
|
|
4
4
|
"description": "Small convenience layer on top of fetch",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"repository": "git@github.com:subsquid/squid.git",
|
|
@@ -16,11 +16,10 @@
|
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@subsquid/logger": "^1.3.3",
|
|
19
|
-
"@subsquid/util-internal": "
|
|
20
|
-
"
|
|
19
|
+
"@subsquid/util-internal": "3.3.0-2-0.a5e4b7",
|
|
20
|
+
"@subsquid/util-timeout": "2.3.3-2-0.a5e4b7"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@types/node": "^18.18.14",
|
|
24
23
|
"typescript": "~5.5.4"
|
|
25
24
|
},
|
|
26
25
|
"scripts": {
|
package/src/client.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import type {Logger} from '@subsquid/logger'
|
|
2
|
-
import {createLogger} from '@subsquid/logger'
|
|
3
2
|
import {addErrorContext, ensureError, wait} from '@subsquid/util-internal'
|
|
4
|
-
import type {Headers, RequestInit, Response} from 'node-fetch'
|
|
5
|
-
import {AgentProvider, defaultAgentProvider} from './agent'
|
|
6
3
|
import {HttpBody} from './body'
|
|
7
|
-
import {
|
|
8
|
-
|
|
4
|
+
import {addStreamTimeout} from '@subsquid/util-timeout'
|
|
9
5
|
|
|
10
6
|
export {HttpBody}
|
|
11
7
|
|
|
12
|
-
|
|
13
8
|
export interface HttpClientOptions {
|
|
14
|
-
agent?: AgentProvider
|
|
15
9
|
baseUrl?: string
|
|
16
10
|
headers?: Record<string, string | number | bigint>
|
|
17
11
|
/**
|
|
@@ -21,23 +15,27 @@ export interface HttpClientOptions {
|
|
|
21
15
|
* Overall request processing time might be much larger due to retries.
|
|
22
16
|
*/
|
|
23
17
|
httpTimeout?: number
|
|
18
|
+
bodyTimeout?: number
|
|
24
19
|
retryAttempts?: number
|
|
25
20
|
retrySchedule?: number[]
|
|
21
|
+
keepalive?: boolean
|
|
22
|
+
|
|
26
23
|
log?: Logger | null
|
|
24
|
+
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
|
|
30
27
|
export interface RequestOptions {
|
|
31
28
|
query?: Record<string, string | number | bigint>
|
|
32
29
|
headers?: HeadersInit
|
|
33
30
|
retryAttempts?: number
|
|
34
31
|
retrySchedule?: number[]
|
|
35
32
|
httpTimeout?: number
|
|
33
|
+
bodyTimeout?: number
|
|
36
34
|
abort?: AbortSignal
|
|
37
35
|
stream?: boolean
|
|
36
|
+
keepalive?: boolean
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
|
|
41
39
|
export interface GraphqlRequestOptions extends RequestOptions {
|
|
42
40
|
variables?: Record<string, any>
|
|
43
41
|
url?: string
|
|
@@ -45,52 +43,54 @@ export interface GraphqlRequestOptions extends RequestOptions {
|
|
|
45
43
|
stream?: false
|
|
46
44
|
}
|
|
47
45
|
|
|
48
|
-
|
|
49
46
|
export interface FetchRequest extends RequestInit {
|
|
50
47
|
id: number
|
|
51
48
|
url: string
|
|
52
49
|
headers: Headers
|
|
53
50
|
timeout?: number
|
|
51
|
+
bodyTimeout?: number
|
|
54
52
|
signal?: AbortSignal
|
|
55
53
|
stream?: boolean
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
|
|
59
56
|
export type FetchResponse = Response
|
|
60
57
|
|
|
61
|
-
|
|
62
58
|
export class HttpClient {
|
|
63
59
|
protected log?: Logger
|
|
64
60
|
protected headers?: Record<string, string | number | bigint>
|
|
65
61
|
private baseUrl?: string
|
|
66
|
-
private agent: AgentProvider
|
|
67
62
|
private retrySchedule: number[]
|
|
68
63
|
private retryAttempts: number
|
|
69
64
|
private httpTimeout: number
|
|
65
|
+
private bodyTimeout?: number
|
|
70
66
|
private requestCounter = 0
|
|
67
|
+
private keepalive?: boolean
|
|
68
|
+
private fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>
|
|
71
69
|
|
|
72
70
|
constructor(options: HttpClientOptions = {}) {
|
|
73
|
-
this.log = options.log === null ? undefined : options.log
|
|
71
|
+
this.log = options.log === null ? undefined : options.log
|
|
74
72
|
this.headers = options.headers
|
|
75
73
|
this.setBaseUrl(options.baseUrl)
|
|
76
|
-
this.agent = options.agent || defaultAgentProvider
|
|
77
74
|
this.retrySchedule = options.retrySchedule || [10, 100, 500, 2000, 10000, 20000]
|
|
78
75
|
this.retryAttempts = options.retryAttempts || 0
|
|
79
76
|
this.httpTimeout = options.httpTimeout ?? 20000
|
|
77
|
+
this.bodyTimeout = options.bodyTimeout
|
|
78
|
+
this.keepalive = options.keepalive
|
|
79
|
+
this.fetch = options.fetch || fetch
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
get<T=any>(url: string, options?: RequestOptions): Promise<T> {
|
|
83
|
-
return this.request('GET', url, options).then(res => res.body)
|
|
82
|
+
get<T = any>(url: string, options?: RequestOptions): Promise<T> {
|
|
83
|
+
return this.request('GET', url, options).then((res) => res.body)
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
post<T=any>(url: string, options?: RequestOptions & HttpBody): Promise<T> {
|
|
87
|
-
return this.request('POST', url, options).then(res => res.body)
|
|
86
|
+
post<T = any>(url: string, options?: RequestOptions & HttpBody): Promise<T> {
|
|
87
|
+
return this.request('POST', url, options).then((res) => res.body)
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
async request<T=any>(
|
|
90
|
+
async request<T = any>(
|
|
91
91
|
method: string,
|
|
92
92
|
url: string,
|
|
93
|
-
options: RequestOptions & HttpBody = {}
|
|
93
|
+
options: RequestOptions & HttpBody = {}
|
|
94
94
|
): Promise<HttpResponse<T>> {
|
|
95
95
|
let req = await this.prepareRequest(method, url, options)
|
|
96
96
|
|
|
@@ -106,9 +106,7 @@ export class HttpClient {
|
|
|
106
106
|
if (retryAttempts > retries && this.isRetryableError(res, req)) {
|
|
107
107
|
let pause = asRetryAfterPause(res)
|
|
108
108
|
if (pause == null) {
|
|
109
|
-
pause = retrySchedule.length
|
|
110
|
-
? retrySchedule[Math.min(retries, retrySchedule.length - 1)]
|
|
111
|
-
: 1000
|
|
109
|
+
pause = retrySchedule.length ? retrySchedule[Math.min(retries, retrySchedule.length - 1)] : 1000
|
|
112
110
|
}
|
|
113
111
|
retries += 1
|
|
114
112
|
this.beforeRetryPause(req, res, pause)
|
|
@@ -126,13 +124,16 @@ export class HttpClient {
|
|
|
126
124
|
|
|
127
125
|
protected beforeRequest(req: FetchRequest): void {
|
|
128
126
|
if (this.log?.isDebug()) {
|
|
129
|
-
this.log.debug(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
127
|
+
this.log.debug(
|
|
128
|
+
{
|
|
129
|
+
httpRequestId: req.id,
|
|
130
|
+
httpRequestUrl: req.url,
|
|
131
|
+
httpRequestMethod: req.method,
|
|
132
|
+
httpRequestHeaders: Array.from(req.headers),
|
|
133
|
+
httpRequestBody: req.body,
|
|
134
|
+
},
|
|
135
|
+
'http request'
|
|
136
|
+
)
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
|
|
@@ -141,7 +142,8 @@ export class HttpClient {
|
|
|
141
142
|
let info: any = {
|
|
142
143
|
httpRequestId: req.id,
|
|
143
144
|
httpRequestUrl: req.url,
|
|
144
|
-
httpRequestMethod: req.method
|
|
145
|
+
httpRequestMethod: req.method,
|
|
146
|
+
httpRequestBody: req.body,
|
|
145
147
|
}
|
|
146
148
|
if (reason instanceof Error) {
|
|
147
149
|
info.reason = reason.toString()
|
|
@@ -158,12 +160,15 @@ export class HttpClient {
|
|
|
158
160
|
|
|
159
161
|
protected afterResponseHeaders(req: FetchRequest, url: string, status: number, headers: Headers): void {
|
|
160
162
|
if (this.log?.isDebug()) {
|
|
161
|
-
this.log.debug(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
this.log.debug(
|
|
164
|
+
{
|
|
165
|
+
httpRequestId: req.id,
|
|
166
|
+
httpResponseUrl: url,
|
|
167
|
+
httpResponseStatus: status,
|
|
168
|
+
httpResponseHeaders: Array.from(headers),
|
|
169
|
+
},
|
|
170
|
+
'http headers'
|
|
171
|
+
)
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
174
|
|
|
@@ -175,10 +180,13 @@ export class HttpClient {
|
|
|
175
180
|
httpResponseBody = '...body is too long to be logged'
|
|
176
181
|
}
|
|
177
182
|
}
|
|
178
|
-
this.log.debug(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
183
|
+
this.log.debug(
|
|
184
|
+
{
|
|
185
|
+
httpRequestId: req.id,
|
|
186
|
+
httpResponseBody,
|
|
187
|
+
},
|
|
188
|
+
'http body'
|
|
189
|
+
)
|
|
182
190
|
}
|
|
183
191
|
}
|
|
184
192
|
|
|
@@ -187,17 +195,16 @@ export class HttpClient {
|
|
|
187
195
|
url: string,
|
|
188
196
|
options: RequestOptions & HttpBody
|
|
189
197
|
): Promise<FetchRequest> {
|
|
190
|
-
await nodeFetch.load()
|
|
191
|
-
|
|
192
198
|
let req: FetchRequest = {
|
|
193
199
|
id: this.requestCounter++,
|
|
194
200
|
method,
|
|
195
|
-
headers: new
|
|
201
|
+
headers: new Headers(options.headers),
|
|
196
202
|
url: this.getAbsUrl(url),
|
|
197
203
|
signal: options.abort,
|
|
198
|
-
compress: true,
|
|
199
204
|
timeout: options.httpTimeout ?? this.httpTimeout,
|
|
200
|
-
|
|
205
|
+
bodyTimeout: options.bodyTimeout ?? this.bodyTimeout,
|
|
206
|
+
stream: options.stream,
|
|
207
|
+
keepalive: options.keepalive ?? this.keepalive,
|
|
201
208
|
}
|
|
202
209
|
|
|
203
210
|
this.handleBasicAuth(req)
|
|
@@ -211,18 +218,14 @@ export class HttpClient {
|
|
|
211
218
|
}
|
|
212
219
|
}
|
|
213
220
|
|
|
214
|
-
req.agent = this.agent.getNativeAgent(req.url)
|
|
215
|
-
|
|
216
221
|
if (options.content !== undefined) {
|
|
217
222
|
if (typeof options.content == 'string') {
|
|
218
223
|
req.body = options.content
|
|
219
224
|
if (!req.headers.has('content-type')) {
|
|
220
225
|
req.headers.set('content-type', 'text/plain')
|
|
221
226
|
}
|
|
222
|
-
} else if (Buffer.isBuffer(options.content)) {
|
|
223
|
-
req.body = options.content
|
|
224
227
|
} else {
|
|
225
|
-
req.body =
|
|
228
|
+
req.body = options.content
|
|
226
229
|
}
|
|
227
230
|
}
|
|
228
231
|
|
|
@@ -235,7 +238,7 @@ export class HttpClient {
|
|
|
235
238
|
|
|
236
239
|
for (let name in this.headers) {
|
|
237
240
|
if (!req.headers.has(name)) {
|
|
238
|
-
req.headers.set(name, ''+this.headers[name])
|
|
241
|
+
req.headers.set(name, '' + this.headers[name])
|
|
239
242
|
}
|
|
240
243
|
}
|
|
241
244
|
|
|
@@ -270,38 +273,31 @@ export class HttpClient {
|
|
|
270
273
|
|
|
271
274
|
let res: HttpResponse | undefined
|
|
272
275
|
try {
|
|
273
|
-
return res = await this.performRequest({...req, signal: ac.signal})
|
|
274
|
-
} catch(err: any) {
|
|
276
|
+
return (res = await this.performRequest({...req, signal: ac.signal}))
|
|
277
|
+
} catch (err: any) {
|
|
275
278
|
if (timer == null) {
|
|
276
279
|
throw new HttpTimeoutError(req.timeout)
|
|
277
280
|
} else {
|
|
278
281
|
throw err
|
|
279
282
|
}
|
|
280
283
|
} finally {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
284
|
-
if (req.signal && res?.stream) {
|
|
285
|
-
// FIXME: is `close` always emitted?
|
|
286
|
-
(res.body as NodeJS.ReadableStream).on('close', () => {
|
|
287
|
-
req.signal!.removeEventListener('abort', abort)
|
|
288
|
-
})
|
|
289
|
-
} else {
|
|
290
|
-
req.signal?.removeEventListener('abort', abort)
|
|
291
|
-
}
|
|
284
|
+
clearTimeout(timer)
|
|
285
|
+
req.signal?.removeEventListener('abort', abort)
|
|
292
286
|
}
|
|
293
287
|
}
|
|
294
288
|
|
|
295
289
|
private async performRequest(req: FetchRequest): Promise<HttpResponse> {
|
|
296
|
-
let res = await
|
|
290
|
+
let res = await this.fetch(req.url, req)
|
|
297
291
|
this.afterResponseHeaders(req, res.url, res.status, res.headers)
|
|
298
|
-
let
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
292
|
+
let body = await this.handleResponseBody(req, res)
|
|
293
|
+
let httpResponse = new HttpResponse(
|
|
294
|
+
req.id,
|
|
295
|
+
res.url,
|
|
296
|
+
res.status,
|
|
297
|
+
res.headers,
|
|
298
|
+
body,
|
|
299
|
+
body instanceof ReadableStream
|
|
300
|
+
)
|
|
305
301
|
this.afterResponse(req, httpResponse)
|
|
306
302
|
return httpResponse
|
|
307
303
|
}
|
|
@@ -309,6 +305,15 @@ export class HttpClient {
|
|
|
309
305
|
protected async handleResponseBody(req: FetchRequest, res: FetchResponse): Promise<any> {
|
|
310
306
|
let contentType = (res.headers.get('content-type') || '').split(';')[0]
|
|
311
307
|
|
|
308
|
+
if (req.bodyTimeout != null && res.body != null) {
|
|
309
|
+
let body = addStreamTimeout(res.body, req.bodyTimeout, () => new HttpBodyTimeoutError(req.bodyTimeout!))
|
|
310
|
+
res = new Response(body, res)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (req.stream && res.ok && res.body != null) {
|
|
314
|
+
return res.body
|
|
315
|
+
}
|
|
316
|
+
|
|
312
317
|
if (contentType == 'application/json') {
|
|
313
318
|
return res.json()
|
|
314
319
|
}
|
|
@@ -319,7 +324,7 @@ export class HttpClient {
|
|
|
319
324
|
|
|
320
325
|
let arrayBuffer = await res.arrayBuffer()
|
|
321
326
|
if (arrayBuffer.byteLength == 0) return undefined
|
|
322
|
-
return
|
|
327
|
+
return arrayBuffer
|
|
323
328
|
}
|
|
324
329
|
|
|
325
330
|
isRetryableError(error: HttpResponse | Error, req?: FetchRequest): boolean {
|
|
@@ -329,7 +334,7 @@ export class HttpClient {
|
|
|
329
334
|
error = error.response
|
|
330
335
|
}
|
|
331
336
|
if (error instanceof HttpResponse) {
|
|
332
|
-
switch(error.status) {
|
|
337
|
+
switch (error.status) {
|
|
333
338
|
case 429:
|
|
334
339
|
case 502:
|
|
335
340
|
case 503:
|
|
@@ -343,7 +348,7 @@ export class HttpClient {
|
|
|
343
348
|
return false
|
|
344
349
|
}
|
|
345
350
|
|
|
346
|
-
private getRequestUrlAndAuth(url: string): {url: string
|
|
351
|
+
private getRequestUrlAndAuth(url: string): {url: string; basic?: string} {
|
|
347
352
|
let u = new URL(this.getAbsUrl(url))
|
|
348
353
|
if (u.username || u.password) {
|
|
349
354
|
let basic = btoa(u.username + ':' + u.password)
|
|
@@ -378,7 +383,7 @@ export class HttpClient {
|
|
|
378
383
|
}
|
|
379
384
|
}
|
|
380
385
|
|
|
381
|
-
async graphqlRequest<T=any>(gql: string, options: GraphqlRequestOptions = {}): Promise<T> {
|
|
386
|
+
async graphqlRequest<T = any>(gql: string, options: GraphqlRequestOptions = {}): Promise<T> {
|
|
382
387
|
let {method = 'POST', url = '/', variables, ...reqOptions} = options
|
|
383
388
|
let req: RequestOptions & {json?: any} = reqOptions
|
|
384
389
|
if (method == 'GET') {
|
|
@@ -392,10 +397,10 @@ export class HttpClient {
|
|
|
392
397
|
} else {
|
|
393
398
|
req.json = {
|
|
394
399
|
query: gql,
|
|
395
|
-
variables
|
|
400
|
+
variables,
|
|
396
401
|
}
|
|
397
402
|
}
|
|
398
|
-
let res = await this.request<{data: T
|
|
403
|
+
let res = await this.request<{data: T; errors?: GraphqlMessage[]}>(method, url, req)
|
|
399
404
|
if (res.body.errors?.length) {
|
|
400
405
|
throw new GraphqlError(res.body.errors)
|
|
401
406
|
} else {
|
|
@@ -404,8 +409,7 @@ export class HttpClient {
|
|
|
404
409
|
}
|
|
405
410
|
}
|
|
406
411
|
|
|
407
|
-
|
|
408
|
-
export class HttpResponse<T=any> {
|
|
412
|
+
export class HttpResponse<T = any> {
|
|
409
413
|
constructor(
|
|
410
414
|
public readonly requestId: number,
|
|
411
415
|
public readonly url: string,
|
|
@@ -413,8 +417,7 @@ export class HttpResponse<T=any> {
|
|
|
413
417
|
public readonly headers: Headers,
|
|
414
418
|
public readonly body: T,
|
|
415
419
|
public readonly stream: boolean
|
|
416
|
-
) {
|
|
417
|
-
}
|
|
420
|
+
) {}
|
|
418
421
|
|
|
419
422
|
get ok(): boolean {
|
|
420
423
|
return this.status >= 200 && this.status < 300
|
|
@@ -430,12 +433,11 @@ export class HttpResponse<T=any> {
|
|
|
430
433
|
status: this.status,
|
|
431
434
|
headers: Array.from(this.headers),
|
|
432
435
|
body: this.stream ? undefined : this.body,
|
|
433
|
-
url: this.url
|
|
436
|
+
url: this.url,
|
|
434
437
|
}
|
|
435
438
|
}
|
|
436
439
|
}
|
|
437
440
|
|
|
438
|
-
|
|
439
441
|
export class HttpError extends Error {
|
|
440
442
|
constructor(public readonly response: HttpResponse) {
|
|
441
443
|
super(`Got ${response.status} from ${response.url}`)
|
|
@@ -446,7 +448,6 @@ export class HttpError extends Error {
|
|
|
446
448
|
}
|
|
447
449
|
}
|
|
448
450
|
|
|
449
|
-
|
|
450
451
|
export class HttpTimeoutError extends Error {
|
|
451
452
|
constructor(public readonly ms: number) {
|
|
452
453
|
super(`request timed out after ${ms} ms`)
|
|
@@ -457,13 +458,21 @@ export class HttpTimeoutError extends Error {
|
|
|
457
458
|
}
|
|
458
459
|
}
|
|
459
460
|
|
|
461
|
+
export class HttpBodyTimeoutError extends Error {
|
|
462
|
+
constructor(ms: number) {
|
|
463
|
+
super(`request body timed out after ${ms} ms`)
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
get name(): string {
|
|
467
|
+
return 'HttpBodyTimeoutError'
|
|
468
|
+
}
|
|
469
|
+
}
|
|
460
470
|
|
|
461
471
|
export interface GraphqlMessage {
|
|
462
472
|
message: string
|
|
463
473
|
path?: (string | number)[]
|
|
464
474
|
}
|
|
465
475
|
|
|
466
|
-
|
|
467
476
|
export class GraphqlError extends Error {
|
|
468
477
|
constructor(public readonly messages: GraphqlMessage[]) {
|
|
469
478
|
super(`GraphQL error: ${messages[0].message}`)
|
|
@@ -474,14 +483,13 @@ export class GraphqlError extends Error {
|
|
|
474
483
|
}
|
|
475
484
|
}
|
|
476
485
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
}
|
|
484
|
-
|
|
486
|
+
// export function isHttpConnectionError(err: unknown): boolean {
|
|
487
|
+
// return false
|
|
488
|
+
// nodeFetch.isLoaded
|
|
489
|
+
// && err instanceof nodeFetch.FetchError
|
|
490
|
+
// && err.type == 'system'
|
|
491
|
+
// && (err.message.startsWith('request to') || err.code == 'ERR_STREAM_PREMATURE_CLOSE')
|
|
492
|
+
// }
|
|
485
493
|
|
|
486
494
|
export function asRetryAfterPause(res: HttpResponse | Error): number | undefined {
|
|
487
495
|
if (res instanceof HttpError) {
|
|
@@ -497,4 +505,29 @@ export function asRetryAfterPause(res: HttpResponse | Error): number | undefined
|
|
|
497
505
|
return undefined
|
|
498
506
|
}
|
|
499
507
|
|
|
500
|
-
const HTTP_DATE_REGEX =
|
|
508
|
+
const HTTP_DATE_REGEX =
|
|
509
|
+
/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/
|
|
510
|
+
|
|
511
|
+
// ref: https://github.com/sindresorhus/is-network-error/blob/main/index.js
|
|
512
|
+
const errorMessages = new Set([
|
|
513
|
+
'network error', // Chrome
|
|
514
|
+
'Failed to fetch', // Chrome
|
|
515
|
+
'NetworkError when attempting to fetch resource.', // Firefox
|
|
516
|
+
'The Internet connection appears to be offline.', // Safari 16
|
|
517
|
+
'Load failed', // Safari 17+
|
|
518
|
+
'Network request failed', // `cross-fetch`
|
|
519
|
+
'fetch failed', // Undici (Node.js)
|
|
520
|
+
'terminated', // Undici (Node.js)
|
|
521
|
+
])
|
|
522
|
+
|
|
523
|
+
export function isHttpConnectionError(error: unknown) {
|
|
524
|
+
if (error instanceof TypeError) {
|
|
525
|
+
if (error.message === 'Load failed') {
|
|
526
|
+
return error.stack === undefined
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
return errorMessages.has(error.message)
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
return false
|
|
533
|
+
}
|
package/src/index.ts
CHANGED
package/esm.d.ts
DELETED
package/esm.js
DELETED
package/lib/agent.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as http from 'http';
|
|
2
|
-
import * as https from 'https';
|
|
3
|
-
export interface AgentProvider {
|
|
4
|
-
getNativeAgent(url: string): http.Agent;
|
|
5
|
-
}
|
|
6
|
-
export declare const defaultAgentProvider: AgentProvider;
|
|
7
|
-
export declare class HttpAgent implements AgentProvider {
|
|
8
|
-
private options;
|
|
9
|
-
private http?;
|
|
10
|
-
private https?;
|
|
11
|
-
constructor(options: https.AgentOptions);
|
|
12
|
-
getNativeAgent(url: string): http.Agent;
|
|
13
|
-
close(): void;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=agent.d.ts.map
|
package/lib/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,aAAa;IAC1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;CAC1C;AAGD,eAAO,MAAM,oBAAoB,EAAE,aAQlC,CAAA;AAGD,qBAAa,SAAU,YAAW,aAAa;IAI/B,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEP,OAAO,EAAE,KAAK,CAAC,YAAY;IAE/C,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK;IAQvC,KAAK;CAIR"}
|
package/lib/agent.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.HttpAgent = exports.defaultAgentProvider = void 0;
|
|
27
|
-
const http = __importStar(require("http"));
|
|
28
|
-
const https = __importStar(require("https"));
|
|
29
|
-
exports.defaultAgentProvider = {
|
|
30
|
-
getNativeAgent(url) {
|
|
31
|
-
if (url.startsWith('https://')) {
|
|
32
|
-
return https.globalAgent;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return http.globalAgent;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
class HttpAgent {
|
|
40
|
-
constructor(options) {
|
|
41
|
-
this.options = options;
|
|
42
|
-
}
|
|
43
|
-
getNativeAgent(url) {
|
|
44
|
-
if (url.startsWith('https://')) {
|
|
45
|
-
return this.https || (this.https = new https.Agent(this.options));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return this.http || (this.http = new http.Agent(this.options));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
close() {
|
|
52
|
-
this.http?.destroy();
|
|
53
|
-
this.https?.destroy();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.HttpAgent = HttpAgent;
|
|
57
|
-
//# sourceMappingURL=agent.js.map
|
package/lib/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,6CAA8B;AAQjB,QAAA,oBAAoB,GAAkB;IAC/C,cAAc,CAAC,GAAW;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,WAAW,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3B,CAAC;IACL,CAAC;CACJ,CAAA;AAGD,MAAa,SAAS;IAIlB,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD,cAAc,CAAC,GAAW;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAClE,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ;AAlBD,8BAkBC"}
|
package/lib/client.test.d.ts
DELETED
package/lib/client.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":""}
|
package/lib/client.test.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const assert_1 = __importDefault(require("assert"));
|
|
7
|
-
const node_test_1 = require("node:test");
|
|
8
|
-
const client_1 = require("./client");
|
|
9
|
-
(0, node_test_1.it)('basic auth', async () => {
|
|
10
|
-
let client = new client_1.HttpClient();
|
|
11
|
-
let credentials = await client.get('http://hello:world@httpbin.org/basic-auth/hello/world');
|
|
12
|
-
assert_1.default.deepStrictEqual(credentials, { authenticated: true, user: 'hello' });
|
|
13
|
-
});
|
|
14
|
-
//# sourceMappingURL=client.test.js.map
|
package/lib/client.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,yCAA4B;AAC5B,qCAAmC;AAGnC,IAAA,cAAE,EAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IACxB,IAAI,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAA;IAC7B,IAAI,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IAC3F,gBAAM,CAAC,eAAe,CAAC,WAAW,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA"}
|
package/lib/request.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { RequestInit, Response } from 'node-fetch';
|
|
2
|
-
export declare const nodeFetch: {
|
|
3
|
-
load(): Promise<typeof import("node-fetch")>;
|
|
4
|
-
readonly Headers: typeof import("node-fetch").Headers;
|
|
5
|
-
readonly FetchError: typeof import("node-fetch").FetchError;
|
|
6
|
-
readonly isLoaded: boolean;
|
|
7
|
-
request(url: string, init?: RequestInit): Promise<Response>;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=request.d.ts.map
|
package/lib/request.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAA;AAOrD,eAAO,MAAM,SAAS;YACJ,OAAO,CAAC,cAAc,YAAY,CAAC,CAAC;;;;iBAe/B,MAAM,SAAS,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAIpE,CAAA"}
|
package/lib/request.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.nodeFetch = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const esm_1 = require("../esm");
|
|
9
|
-
let mod;
|
|
10
|
-
exports.nodeFetch = {
|
|
11
|
-
async load() {
|
|
12
|
-
if (mod)
|
|
13
|
-
return mod;
|
|
14
|
-
return mod = await (0, esm_1.esm)('node-fetch');
|
|
15
|
-
},
|
|
16
|
-
get Headers() {
|
|
17
|
-
(0, assert_1.default)(mod, 'node-fetch ESM is not loaded');
|
|
18
|
-
return mod.Headers;
|
|
19
|
-
},
|
|
20
|
-
get FetchError() {
|
|
21
|
-
(0, assert_1.default)(mod, 'node-fetch ESM is not loaded');
|
|
22
|
-
return mod.FetchError;
|
|
23
|
-
},
|
|
24
|
-
get isLoaded() {
|
|
25
|
-
return !!mod;
|
|
26
|
-
},
|
|
27
|
-
async request(url, init) {
|
|
28
|
-
let m = await exports.nodeFetch.load();
|
|
29
|
-
return m.default(url, init);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=request.js.map
|
package/lib/request.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,gCAA0B;AAG1B,IAAI,GAA4C,CAAA;AAGnC,QAAA,SAAS,GAAG;IACrB,KAAK,CAAC,IAAI;QACN,IAAI,GAAG;YAAE,OAAO,GAAG,CAAA;QACnB,OAAO,GAAG,GAAG,MAAM,IAAA,SAAG,EAA+B,YAAY,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,OAAO;QACP,IAAA,gBAAM,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAC,OAAO,CAAA;IACtB,CAAC;IACD,IAAI,UAAU;QACV,IAAA,gBAAM,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAC,UAAU,CAAA;IACzB,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,CAAC,CAAC,GAAG,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAkB;QACzC,IAAI,CAAC,GAAG,MAAM,iBAAS,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;CACJ,CAAA"}
|
package/src/agent.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as http from 'http'
|
|
2
|
-
import * as https from 'https'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export interface AgentProvider {
|
|
6
|
-
getNativeAgent(url: string): http.Agent
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export const defaultAgentProvider: AgentProvider = {
|
|
11
|
-
getNativeAgent(url: string): http.Agent {
|
|
12
|
-
if (url.startsWith('https://')) {
|
|
13
|
-
return https.globalAgent
|
|
14
|
-
} else {
|
|
15
|
-
return http.globalAgent
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export class HttpAgent implements AgentProvider {
|
|
22
|
-
private http?: http.Agent
|
|
23
|
-
private https?: https.Agent
|
|
24
|
-
|
|
25
|
-
constructor(private options: https.AgentOptions) {}
|
|
26
|
-
|
|
27
|
-
getNativeAgent(url: string): http.Agent {
|
|
28
|
-
if (url.startsWith('https://')) {
|
|
29
|
-
return this.https || (this.https = new https.Agent(this.options))
|
|
30
|
-
} else {
|
|
31
|
-
return this.http || (this.http = new http.Agent(this.options))
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
close() {
|
|
36
|
-
this.http?.destroy()
|
|
37
|
-
this.https?.destroy()
|
|
38
|
-
}
|
|
39
|
-
}
|
package/src/client.test.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {it} from 'node:test'
|
|
3
|
-
import {HttpClient} from './client'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
it('basic auth', async () => {
|
|
7
|
-
let client = new HttpClient()
|
|
8
|
-
let credentials = await client.get('http://hello:world@httpbin.org/basic-auth/hello/world')
|
|
9
|
-
assert.deepStrictEqual(credentials, {authenticated: true, user: 'hello'})
|
|
10
|
-
})
|
package/src/request.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import type {RequestInit, Response} from 'node-fetch'
|
|
3
|
-
import {esm} from '../esm'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
let mod: typeof import('node-fetch') | undefined
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export const nodeFetch = {
|
|
10
|
-
async load(): Promise<typeof import('node-fetch')> {
|
|
11
|
-
if (mod) return mod
|
|
12
|
-
return mod = await esm<typeof import('node-fetch') >('node-fetch')
|
|
13
|
-
},
|
|
14
|
-
get Headers() {
|
|
15
|
-
assert(mod, 'node-fetch ESM is not loaded')
|
|
16
|
-
return mod.Headers
|
|
17
|
-
},
|
|
18
|
-
get FetchError() {
|
|
19
|
-
assert(mod, 'node-fetch ESM is not loaded')
|
|
20
|
-
return mod.FetchError
|
|
21
|
-
},
|
|
22
|
-
get isLoaded() {
|
|
23
|
-
return !!mod
|
|
24
|
-
},
|
|
25
|
-
async request(url: string, init?: RequestInit): Promise<Response> {
|
|
26
|
-
let m = await nodeFetch.load()
|
|
27
|
-
return m.default(url, init)
|
|
28
|
-
}
|
|
29
|
-
}
|