@vertesia/api-fetch-client 1.4.0 → 1.5.0-dev.20260713.151751Z
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/base.d.ts +24 -0
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js +59 -16
- package/lib/base.js.map +1 -1
- package/package.json +3 -3
- package/src/base.ts +95 -17
package/lib/base.d.ts
CHANGED
|
@@ -49,6 +49,23 @@ type NormalizedRetryPolicy = {
|
|
|
49
49
|
maxDelayMs: number;
|
|
50
50
|
jitter: boolean;
|
|
51
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Auto-retry for rate-limiter pacing responses (server contract: a 429 with
|
|
54
|
+
* `x-ratelimit-reason: pacing` and a precise `x-ratelimit-retry-ms`). A pacing 429 is emitted by
|
|
55
|
+
* the rate limiter BEFORE any handler runs, so replaying is safe for every method, POST included.
|
|
56
|
+
* Quota rejections (`x-ratelimit-reason: quota`) are never auto-retried.
|
|
57
|
+
*
|
|
58
|
+
* Enabled by default; independent from the opt-in IRequestRetryPolicy (pacing retries do not
|
|
59
|
+
* consume policy attempts).
|
|
60
|
+
*/
|
|
61
|
+
export interface IPacingRetryPolicy {
|
|
62
|
+
/** Defaults to true. */
|
|
63
|
+
enabled?: boolean;
|
|
64
|
+
/** Hints above this are not auto-waited (the caller sees the 429). Defaults to 3000. */
|
|
65
|
+
maxWaitMs?: number;
|
|
66
|
+
/** Maximum pacing retries per request. Defaults to 2. */
|
|
67
|
+
attempts?: number;
|
|
68
|
+
}
|
|
52
69
|
export interface IRequestParams {
|
|
53
70
|
query?: Record<string, IPrimitives> | null;
|
|
54
71
|
headers?: Record<string, string> | null;
|
|
@@ -75,6 +92,11 @@ export interface IRequestParams {
|
|
|
75
92
|
* Caller-supplied AbortSignal. Merged with the timeout signal — whichever aborts first wins.
|
|
76
93
|
*/
|
|
77
94
|
signal?: AbortSignal;
|
|
95
|
+
/**
|
|
96
|
+
* Per-request override for pacing auto-retry (enabled by default at the client level).
|
|
97
|
+
* Set to false to surface pacing 429s to the caller.
|
|
98
|
+
*/
|
|
99
|
+
pacingRetry?: IPacingRetryPolicy | false | null;
|
|
78
100
|
}
|
|
79
101
|
export interface IRequestParamsWithPayload extends IRequestParams {
|
|
80
102
|
payload?: object | BodyInit | null;
|
|
@@ -86,6 +108,7 @@ export declare abstract class ClientBase {
|
|
|
86
108
|
errorFactory: (err: RequestError) => Error;
|
|
87
109
|
verboseErrors: boolean;
|
|
88
110
|
retryPolicy?: IRequestRetryPolicy;
|
|
111
|
+
pacingRetry?: IPacingRetryPolicy | false;
|
|
89
112
|
defaultTimeoutMs?: number;
|
|
90
113
|
abstract get headers(): Record<string, string>;
|
|
91
114
|
constructor(baseUrl: string, fetchImpl?: FETCH_FN | Promise<FETCH_FN>);
|
|
@@ -94,6 +117,7 @@ export declare abstract class ClientBase {
|
|
|
94
117
|
* @param err
|
|
95
118
|
*/
|
|
96
119
|
throwError(err: RequestError): never;
|
|
120
|
+
withPacingRetry(policy?: IPacingRetryPolicy | false | null): this;
|
|
97
121
|
withRetryPolicy(policy?: IRequestRetryPolicy | null): this;
|
|
98
122
|
getRetryPolicy(): IRequestRetryPolicy | undefined;
|
|
99
123
|
/**
|
package/lib/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAe,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,KAAK,eAAe,EAAO,MAAM,gBAAgB,CAAC;AAG3D,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrF,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,qBAAqB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/lib/base.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { ConnectionError, ServerError } from './errors.js';
|
|
2
2
|
import { sse } from './sse/index.js';
|
|
3
3
|
import { buildQueryString, join, removeTrailingSlash } from './utils.js';
|
|
4
|
+
const DEFAULT_PACING_MAX_WAIT_MS = 3000;
|
|
5
|
+
const DEFAULT_PACING_ATTEMPTS = 2;
|
|
6
|
+
const RATELIMIT_REASON_HEADER = 'x-ratelimit-reason';
|
|
7
|
+
const RATELIMIT_RETRY_MS_HEADER = 'x-ratelimit-retry-ms';
|
|
8
|
+
function normalizePacingPolicy(policy) {
|
|
9
|
+
if (policy === false || policy === null || policy?.enabled === false) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
maxWaitMs: Math.max(0, policy?.maxWaitMs ?? DEFAULT_PACING_MAX_WAIT_MS),
|
|
14
|
+
attempts: Math.max(0, Math.floor(policy?.attempts ?? DEFAULT_PACING_ATTEMPTS)),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
4
17
|
const DEFAULT_RETRY_METHODS = ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE'];
|
|
5
18
|
const DEFAULT_RETRY_STATUSES = [502, 503, 504];
|
|
6
19
|
const DEFAULT_RETRY_ATTEMPTS = 3;
|
|
@@ -72,6 +85,23 @@ function retryAfterDelayMs(res) {
|
|
|
72
85
|
}
|
|
73
86
|
return undefined;
|
|
74
87
|
}
|
|
88
|
+
function pacingDelayMs(res, pacing) {
|
|
89
|
+
if (res.status !== 429 || res.headers.get(RATELIMIT_REASON_HEADER) !== 'pacing') {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
// Treat an absent/empty header as "no hint" — Number(null) and Number('') are 0, which
|
|
93
|
+
// would otherwise turn a pacing 429 carrying only Retry-After into an immediate retry.
|
|
94
|
+
const rawRetryMs = res.headers.get(RATELIMIT_RETRY_MS_HEADER);
|
|
95
|
+
const retryMs = rawRetryMs ? Number(rawRetryMs) : Number.NaN;
|
|
96
|
+
const delay = Number.isFinite(retryMs) && retryMs >= 0 ? retryMs : retryAfterDelayMs(res);
|
|
97
|
+
if (delay === undefined || delay > pacing.maxWaitMs) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return delay;
|
|
101
|
+
}
|
|
102
|
+
function sleep(ms) {
|
|
103
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
104
|
+
}
|
|
75
105
|
function retryDelayMs(policy, attempt, res) {
|
|
76
106
|
const retryAfter = res ? retryAfterDelayMs(res) : undefined;
|
|
77
107
|
const delay = retryAfter ?? Math.min(policy.maxDelayMs, policy.baseDelayMs * 2 ** attempt);
|
|
@@ -143,6 +173,7 @@ export class ClientBase {
|
|
|
143
173
|
errorFactory = (err) => err;
|
|
144
174
|
verboseErrors = true;
|
|
145
175
|
retryPolicy;
|
|
176
|
+
pacingRetry;
|
|
146
177
|
defaultTimeoutMs;
|
|
147
178
|
constructor(baseUrl, fetchImpl) {
|
|
148
179
|
this.baseUrl = removeTrailingSlash(baseUrl);
|
|
@@ -155,6 +186,10 @@ export class ClientBase {
|
|
|
155
186
|
throwError(err) {
|
|
156
187
|
throw this.errorFactory(err);
|
|
157
188
|
}
|
|
189
|
+
withPacingRetry(policy) {
|
|
190
|
+
this.pacingRetry = policy === null ? undefined : policy;
|
|
191
|
+
return this;
|
|
192
|
+
}
|
|
158
193
|
withRetryPolicy(policy) {
|
|
159
194
|
this.retryPolicy = policy || undefined;
|
|
160
195
|
return this;
|
|
@@ -364,23 +399,16 @@ export class ClientBase {
|
|
|
364
399
|
return init;
|
|
365
400
|
};
|
|
366
401
|
const retryPolicy = this.resolveRetryPolicy(params);
|
|
402
|
+
const pacing = params?.reader === 'sse' ? undefined : normalizePacingPolicy(params?.pacingRetry ?? this.pacingRetry);
|
|
367
403
|
const fetch = await this._fetch;
|
|
368
|
-
if (!retryPolicy) {
|
|
369
|
-
const req = await this.createRequest(url, createRequestInit());
|
|
370
|
-
let res;
|
|
371
|
-
try {
|
|
372
|
-
res = await fetch(req);
|
|
373
|
-
}
|
|
374
|
-
catch (err) {
|
|
375
|
-
console.error(`Failed to connect to ${url}`, err);
|
|
376
|
-
this.throwError(new ConnectionError(req, toError(err)));
|
|
377
|
-
}
|
|
378
|
-
this.handleFetchResponse(req, res);
|
|
379
|
-
return this.handleResponse(req, res, params);
|
|
380
|
-
}
|
|
381
404
|
const replayableBody = isReplayableBody(body);
|
|
405
|
+
// Unified loop: `attempt` budgets the opt-in retry policy; pacing auto-retries (server
|
|
406
|
+
// says "come back in N ms" via a pacing 429 emitted before any handler ran) have their
|
|
407
|
+
// own independent budget and exact server-provided wait.
|
|
408
|
+
let attempt = 0;
|
|
409
|
+
let pacingAttemptsUsed = 0;
|
|
382
410
|
let lastReq;
|
|
383
|
-
|
|
411
|
+
while (true) {
|
|
384
412
|
const req = await this.createRequest(url, createRequestInit());
|
|
385
413
|
lastReq = req;
|
|
386
414
|
let res;
|
|
@@ -388,19 +416,34 @@ export class ClientBase {
|
|
|
388
416
|
res = await fetch(req);
|
|
389
417
|
}
|
|
390
418
|
catch (err) {
|
|
391
|
-
if (!
|
|
419
|
+
if (!retryPolicy ||
|
|
420
|
+
!this.shouldRetryConnectionError(retryPolicy, normalizedMethod, attempt, replayableBody)) {
|
|
392
421
|
console.error(`Failed to connect to ${url}`, err);
|
|
393
422
|
this.throwError(new ConnectionError(req, toError(err)));
|
|
394
423
|
}
|
|
395
424
|
await this.waitBeforeRetry(retryPolicy, attempt);
|
|
425
|
+
attempt++;
|
|
396
426
|
continue;
|
|
397
427
|
}
|
|
398
428
|
this.handleFetchResponse(req, res);
|
|
399
|
-
if (
|
|
429
|
+
if (pacing && pacingAttemptsUsed < pacing.attempts && replayableBody) {
|
|
430
|
+
const delay = pacingDelayMs(res, pacing);
|
|
431
|
+
if (delay !== undefined) {
|
|
432
|
+
await discardBody(res);
|
|
433
|
+
await sleep(delay);
|
|
434
|
+
pacingAttemptsUsed++;
|
|
435
|
+
continue;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
if (retryPolicy && this.shouldRetryResponse(retryPolicy, normalizedMethod, attempt, replayableBody, res)) {
|
|
400
439
|
await discardBody(res);
|
|
401
440
|
await this.waitBeforeRetry(retryPolicy, attempt, res);
|
|
441
|
+
attempt++;
|
|
402
442
|
continue;
|
|
403
443
|
}
|
|
444
|
+
if (retryPolicy && attempt >= retryPolicy.attempts) {
|
|
445
|
+
break;
|
|
446
|
+
}
|
|
404
447
|
return this.handleResponse(req, res, params);
|
|
405
448
|
}
|
|
406
449
|
if (lastReq) {
|
package/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/api-fetch-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0-dev.20260713.151751Z",
|
|
4
4
|
"description": "HTTP client which wraps a fetch implementation and simplify the creation of REST API clients. Works both in browser and in node.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"mocha": "^11.7.6",
|
|
46
46
|
"tsx": "^4.22.4",
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
|
-
"@koa-stack/router": "0.
|
|
48
|
+
"@koa-stack/router": "0.26.0-dev",
|
|
49
49
|
"@vertesia/tsconfig": "0.1.0",
|
|
50
|
-
"@koa-stack/server": "0.
|
|
50
|
+
"@koa-stack/server": "0.26.0-dev"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"eventsource-parser": "^3.1.0"
|
package/src/base.ts
CHANGED
|
@@ -54,6 +54,43 @@ type NormalizedRetryPolicy = {
|
|
|
54
54
|
jitter: boolean;
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Auto-retry for rate-limiter pacing responses (server contract: a 429 with
|
|
59
|
+
* `x-ratelimit-reason: pacing` and a precise `x-ratelimit-retry-ms`). A pacing 429 is emitted by
|
|
60
|
+
* the rate limiter BEFORE any handler runs, so replaying is safe for every method, POST included.
|
|
61
|
+
* Quota rejections (`x-ratelimit-reason: quota`) are never auto-retried.
|
|
62
|
+
*
|
|
63
|
+
* Enabled by default; independent from the opt-in IRequestRetryPolicy (pacing retries do not
|
|
64
|
+
* consume policy attempts).
|
|
65
|
+
*/
|
|
66
|
+
export interface IPacingRetryPolicy {
|
|
67
|
+
/** Defaults to true. */
|
|
68
|
+
enabled?: boolean;
|
|
69
|
+
/** Hints above this are not auto-waited (the caller sees the 429). Defaults to 3000. */
|
|
70
|
+
maxWaitMs?: number;
|
|
71
|
+
/** Maximum pacing retries per request. Defaults to 2. */
|
|
72
|
+
attempts?: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type NormalizedPacingPolicy = { maxWaitMs: number; attempts: number };
|
|
76
|
+
|
|
77
|
+
const DEFAULT_PACING_MAX_WAIT_MS = 3000;
|
|
78
|
+
const DEFAULT_PACING_ATTEMPTS = 2;
|
|
79
|
+
const RATELIMIT_REASON_HEADER = 'x-ratelimit-reason';
|
|
80
|
+
const RATELIMIT_RETRY_MS_HEADER = 'x-ratelimit-retry-ms';
|
|
81
|
+
|
|
82
|
+
function normalizePacingPolicy(
|
|
83
|
+
policy: IPacingRetryPolicy | false | null | undefined,
|
|
84
|
+
): NormalizedPacingPolicy | undefined {
|
|
85
|
+
if (policy === false || policy === null || policy?.enabled === false) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
maxWaitMs: Math.max(0, policy?.maxWaitMs ?? DEFAULT_PACING_MAX_WAIT_MS),
|
|
90
|
+
attempts: Math.max(0, Math.floor(policy?.attempts ?? DEFAULT_PACING_ATTEMPTS)),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
57
94
|
const DEFAULT_RETRY_METHODS = ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE'];
|
|
58
95
|
const DEFAULT_RETRY_STATUSES = [502, 503, 504];
|
|
59
96
|
const DEFAULT_RETRY_ATTEMPTS = 3;
|
|
@@ -99,6 +136,11 @@ export interface IRequestParams {
|
|
|
99
136
|
* Caller-supplied AbortSignal. Merged with the timeout signal — whichever aborts first wins.
|
|
100
137
|
*/
|
|
101
138
|
signal?: AbortSignal;
|
|
139
|
+
/**
|
|
140
|
+
* Per-request override for pacing auto-retry (enabled by default at the client level).
|
|
141
|
+
* Set to false to surface pacing 429s to the caller.
|
|
142
|
+
*/
|
|
143
|
+
pacingRetry?: IPacingRetryPolicy | false | null;
|
|
102
144
|
}
|
|
103
145
|
|
|
104
146
|
export interface IRequestParamsWithPayload extends IRequestParams {
|
|
@@ -172,6 +214,25 @@ function retryAfterDelayMs(res: Response): number | undefined {
|
|
|
172
214
|
return undefined;
|
|
173
215
|
}
|
|
174
216
|
|
|
217
|
+
function pacingDelayMs(res: Response, pacing: NormalizedPacingPolicy): number | undefined {
|
|
218
|
+
if (res.status !== 429 || res.headers.get(RATELIMIT_REASON_HEADER) !== 'pacing') {
|
|
219
|
+
return undefined;
|
|
220
|
+
}
|
|
221
|
+
// Treat an absent/empty header as "no hint" — Number(null) and Number('') are 0, which
|
|
222
|
+
// would otherwise turn a pacing 429 carrying only Retry-After into an immediate retry.
|
|
223
|
+
const rawRetryMs = res.headers.get(RATELIMIT_RETRY_MS_HEADER);
|
|
224
|
+
const retryMs = rawRetryMs ? Number(rawRetryMs) : Number.NaN;
|
|
225
|
+
const delay = Number.isFinite(retryMs) && retryMs >= 0 ? retryMs : retryAfterDelayMs(res);
|
|
226
|
+
if (delay === undefined || delay > pacing.maxWaitMs) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
return delay;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function sleep(ms: number): Promise<void> {
|
|
233
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
234
|
+
}
|
|
235
|
+
|
|
175
236
|
function retryDelayMs(policy: NormalizedRetryPolicy, attempt: number, res?: Response): number {
|
|
176
237
|
const retryAfter = res ? retryAfterDelayMs(res) : undefined;
|
|
177
238
|
const delay = retryAfter ?? Math.min(policy.maxDelayMs, policy.baseDelayMs * 2 ** attempt);
|
|
@@ -250,6 +311,7 @@ export abstract class ClientBase {
|
|
|
250
311
|
errorFactory: (err: RequestError) => Error = (err) => err;
|
|
251
312
|
verboseErrors = true;
|
|
252
313
|
retryPolicy?: IRequestRetryPolicy;
|
|
314
|
+
pacingRetry?: IPacingRetryPolicy | false;
|
|
253
315
|
defaultTimeoutMs?: number;
|
|
254
316
|
|
|
255
317
|
abstract get headers(): Record<string, string>;
|
|
@@ -267,6 +329,11 @@ export abstract class ClientBase {
|
|
|
267
329
|
throw this.errorFactory(err);
|
|
268
330
|
}
|
|
269
331
|
|
|
332
|
+
withPacingRetry(policy?: IPacingRetryPolicy | false | null): this {
|
|
333
|
+
this.pacingRetry = policy === null ? undefined : policy;
|
|
334
|
+
return this;
|
|
335
|
+
}
|
|
336
|
+
|
|
270
337
|
withRetryPolicy(policy?: IRequestRetryPolicy | null): this {
|
|
271
338
|
this.retryPolicy = policy || undefined;
|
|
272
339
|
return this;
|
|
@@ -489,43 +556,54 @@ export abstract class ClientBase {
|
|
|
489
556
|
return init;
|
|
490
557
|
};
|
|
491
558
|
const retryPolicy = this.resolveRetryPolicy(params);
|
|
559
|
+
const pacing =
|
|
560
|
+
params?.reader === 'sse' ? undefined : normalizePacingPolicy(params?.pacingRetry ?? this.pacingRetry);
|
|
492
561
|
const fetch = await this._fetch;
|
|
493
|
-
|
|
494
|
-
if (!retryPolicy) {
|
|
495
|
-
const req = await this.createRequest(url, createRequestInit());
|
|
496
|
-
let res: Response;
|
|
497
|
-
try {
|
|
498
|
-
res = await fetch(req);
|
|
499
|
-
} catch (err: unknown) {
|
|
500
|
-
console.error(`Failed to connect to ${url}`, err);
|
|
501
|
-
this.throwError(new ConnectionError(req, toError(err)));
|
|
502
|
-
}
|
|
503
|
-
this.handleFetchResponse(req, res);
|
|
504
|
-
return this.handleResponse<T>(req, res, params);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
562
|
const replayableBody = isReplayableBody(body);
|
|
563
|
+
|
|
564
|
+
// Unified loop: `attempt` budgets the opt-in retry policy; pacing auto-retries (server
|
|
565
|
+
// says "come back in N ms" via a pacing 429 emitted before any handler ran) have their
|
|
566
|
+
// own independent budget and exact server-provided wait.
|
|
567
|
+
let attempt = 0;
|
|
568
|
+
let pacingAttemptsUsed = 0;
|
|
508
569
|
let lastReq: Request | undefined;
|
|
509
|
-
|
|
570
|
+
while (true) {
|
|
510
571
|
const req = await this.createRequest(url, createRequestInit());
|
|
511
572
|
lastReq = req;
|
|
512
573
|
let res: Response;
|
|
513
574
|
try {
|
|
514
575
|
res = await fetch(req);
|
|
515
576
|
} catch (err: unknown) {
|
|
516
|
-
if (
|
|
577
|
+
if (
|
|
578
|
+
!retryPolicy ||
|
|
579
|
+
!this.shouldRetryConnectionError(retryPolicy, normalizedMethod, attempt, replayableBody)
|
|
580
|
+
) {
|
|
517
581
|
console.error(`Failed to connect to ${url}`, err);
|
|
518
582
|
this.throwError(new ConnectionError(req, toError(err)));
|
|
519
583
|
}
|
|
520
584
|
await this.waitBeforeRetry(retryPolicy, attempt);
|
|
585
|
+
attempt++;
|
|
521
586
|
continue;
|
|
522
587
|
}
|
|
523
588
|
this.handleFetchResponse(req, res);
|
|
524
|
-
if (
|
|
589
|
+
if (pacing && pacingAttemptsUsed < pacing.attempts && replayableBody) {
|
|
590
|
+
const delay = pacingDelayMs(res, pacing);
|
|
591
|
+
if (delay !== undefined) {
|
|
592
|
+
await discardBody(res);
|
|
593
|
+
await sleep(delay);
|
|
594
|
+
pacingAttemptsUsed++;
|
|
595
|
+
continue;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
if (retryPolicy && this.shouldRetryResponse(retryPolicy, normalizedMethod, attempt, replayableBody, res)) {
|
|
525
599
|
await discardBody(res);
|
|
526
600
|
await this.waitBeforeRetry(retryPolicy, attempt, res);
|
|
601
|
+
attempt++;
|
|
527
602
|
continue;
|
|
528
603
|
}
|
|
604
|
+
if (retryPolicy && attempt >= retryPolicy.attempts) {
|
|
605
|
+
break;
|
|
606
|
+
}
|
|
529
607
|
return this.handleResponse<T>(req, res, params);
|
|
530
608
|
}
|
|
531
609
|
|