@procedures/client 0.41.0 → 0.42.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/CHANGELOG.md +70 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/client/batch.d.ts +98 -0
- package/dist/adapters/http/client/batch.d.ts.map +1 -0
- package/dist/adapters/http/client/batch.js +414 -0
- package/dist/adapters/http/client/batch.js.map +1 -0
- package/dist/adapters/http/client/index.d.ts +1 -0
- package/dist/adapters/http/client/index.d.ts.map +1 -1
- package/dist/adapters/http/client/index.js.map +1 -1
- package/dist/adapters/http/client/transport.d.ts +7 -0
- package/dist/adapters/http/client/transport.d.ts.map +1 -1
- package/dist/adapters/http/client/transport.js +27 -1
- package/dist/adapters/http/client/transport.js.map +1 -1
- package/dist/adapters/http/client/types.d.ts +9 -0
- package/dist/adapters/http/client/types.d.ts.map +1 -1
- package/dist/adapters/http/server/addressing.d.ts +5 -0
- package/dist/adapters/http/server/addressing.d.ts.map +1 -1
- package/dist/adapters/http/server/addressing.js +1 -1
- package/dist/adapters/http/server/addressing.js.map +1 -1
- package/dist/adapters/http/server/batch.d.ts +105 -0
- package/dist/adapters/http/server/batch.d.ts.map +1 -0
- package/dist/adapters/http/server/batch.js +172 -0
- package/dist/adapters/http/server/batch.js.map +1 -0
- package/dist/adapters/http/server/handler.d.ts +8 -0
- package/dist/adapters/http/server/handler.d.ts.map +1 -1
- package/dist/adapters/http/server/handler.js +103 -16
- package/dist/adapters/http/server/handler.js.map +1 -1
- package/dist/adapters/http/server/transport.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.js +13 -2
- package/dist/adapters/http/server/transport.js.map +1 -1
- package/dist/adapters/http/server/types.d.ts +7 -0
- package/dist/adapters/http/server/types.d.ts.map +1 -1
- package/dist/adapters/http/shared/errors.d.ts +7 -0
- package/dist/adapters/http/shared/errors.d.ts.map +1 -1
- package/dist/adapters/http/shared/errors.js +11 -1
- package/dist/adapters/http/shared/errors.js.map +1 -1
- package/dist/adapters/http/shared/status-codes.d.ts +19 -3
- package/dist/adapters/http/shared/status-codes.d.ts.map +1 -1
- package/dist/adapters/http/shared/status-codes.js +27 -10
- package/dist/adapters/http/shared/status-codes.js.map +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/client/errors/codes.d.ts +2 -0
- package/dist/client/errors/codes.d.ts.map +1 -1
- package/dist/client/errors/codes.js +2 -0
- package/dist/client/errors/codes.js.map +1 -1
- package/dist/client/errors/registry.d.ts.map +1 -1
- package/dist/client/errors/registry.js +24 -0
- package/dist/client/errors/registry.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/node.d.ts +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js.map +1 -1
- package/package.json +3 -3
- package/src/adapters/http/client/batch.ts +463 -0
- package/src/adapters/http/client/index.ts +1 -0
- package/src/adapters/http/client/transport.ts +31 -1
- package/src/adapters/http/client/types.ts +10 -0
- package/src/adapters/http/server/addressing.ts +1 -1
- package/src/adapters/http/server/batch.ts +237 -0
- package/src/adapters/http/server/handler.ts +119 -17
- package/src/adapters/http/server/transport.ts +15 -4
- package/src/adapters/http/server/types.ts +8 -0
- package/src/adapters/http/shared/errors.ts +11 -1
- package/src/adapters/http/shared/status-codes.ts +27 -12
- package/src/browser.ts +1 -0
- package/src/client/errors/codes.ts +2 -0
- package/src/client/errors/registry.ts +26 -0
- package/src/client/index.ts +1 -1
- package/src/node.ts +2 -0
|
@@ -28,6 +28,7 @@ import { NDJSON_MEDIA_TYPE as NDJSON, defaultNdjsonError as errorOf, keepAliveMs
|
|
|
28
28
|
import { applyCors, corsOrigins, corsPolicy } from "./cors.js";
|
|
29
29
|
import { urlAddressing } from "./addressing.js";
|
|
30
30
|
import { BodyError, readJsonBody } from "./body.js";
|
|
31
|
+
import { BATCH_HEADER, batchFrames, batchOptionsOf, isBatchRequest, parseBatch } from "./batch.js";
|
|
31
32
|
import { NARROWING_METADATA_KEY, addNarrowing } from "../../../procedures/narrowing.js";
|
|
32
33
|
import { retryAfterSeconds } from "@mark1russell7/service/limiter";
|
|
33
34
|
/** The metadata keys that the transport sets: a query parameter or a header cannot replace them. */
|
|
@@ -55,6 +56,24 @@ const STANDARD_HEADERS = new Set([
|
|
|
55
56
|
"x-metadata",
|
|
56
57
|
]);
|
|
57
58
|
/** The known custom headers whose metadata key is not the header name (lower case to camel case). */
|
|
59
|
+
/**
|
|
60
|
+
* The headers that a call of a batch cannot give (CLI-32): the headers of the connection, of the
|
|
61
|
+
* body, of the browser and of the protocol stay the headers of the HTTP request.
|
|
62
|
+
*/
|
|
63
|
+
const REQUEST_ONLY_HEADERS = new Set([
|
|
64
|
+
"host",
|
|
65
|
+
"connection",
|
|
66
|
+
"content-length",
|
|
67
|
+
"content-type",
|
|
68
|
+
"transfer-encoding",
|
|
69
|
+
"accept",
|
|
70
|
+
"accept-encoding",
|
|
71
|
+
"origin",
|
|
72
|
+
"referer",
|
|
73
|
+
"x-metadata",
|
|
74
|
+
"procedures-protocol",
|
|
75
|
+
"procedures-batch",
|
|
76
|
+
]);
|
|
58
77
|
const HEADER_MAPPINGS = { collectionname: "collectionName" };
|
|
59
78
|
/** This function sets a key as an own property, also the key `__proto__` (the `put` of the query language). */
|
|
60
79
|
function put(target, key, value) {
|
|
@@ -142,6 +161,7 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
142
161
|
assertNamedOrigins(compat.face?.name ?? "procedureHandler", ambientMode, guard.allowedOrigins, compat.face?.originOption ?? "cors.origin");
|
|
143
162
|
const secretHeaders = headerNames(options.secretHeaders);
|
|
144
163
|
const secretQuery = new Set(options.secretQuery ?? (legacy ? [] : ["token"]));
|
|
164
|
+
const batch = batchOptionsOf(options.batch);
|
|
145
165
|
// The addressing of a request (CLI-31): the option, or the URL strategy of the shim, or the URL
|
|
146
166
|
// format of HttpTransport
|
|
147
167
|
const compatMethodOf = compat.methodOf;
|
|
@@ -167,7 +187,14 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
167
187
|
if (compat.matchAll === true)
|
|
168
188
|
return true;
|
|
169
189
|
const path = pathOf(req);
|
|
170
|
-
return path.startsWith(prefix) || (addressing.takesBasePath === true
|
|
190
|
+
return path.startsWith(prefix) || (path === bareBase && (addressing.takesBasePath === true || (batch !== undefined && isBatchRequest(req))));
|
|
191
|
+
};
|
|
192
|
+
/** True when the request is a batch at the base path (CLI-32). */
|
|
193
|
+
const isBatch = (req) => {
|
|
194
|
+
if (batch === undefined || !isBatchRequest(req))
|
|
195
|
+
return false;
|
|
196
|
+
const path = pathOf(req);
|
|
197
|
+
return compat.matchAll === true || path === bareBase || path === prefix;
|
|
171
198
|
};
|
|
172
199
|
/** The error body of wire v1: the message, the code, the retryable flag and the more fields. */
|
|
173
200
|
const sendError = (res, status, message, code, retryable = false, more = {}) => {
|
|
@@ -188,8 +215,33 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
188
215
|
const address = addressing(view, body, req);
|
|
189
216
|
if (!address)
|
|
190
217
|
return null;
|
|
191
|
-
const method = address.method;
|
|
192
218
|
const id = req.headers["x-request-id"] ?? `req-${Date.now()}-${Math.random()}`;
|
|
219
|
+
const narrowing = req.headersDistinct?.[NARROWING_METADATA_KEY] ?? req.headers[NARROWING_METADATA_KEY];
|
|
220
|
+
return requestOf(req, { id, method: address.method, payload: address.payload, headers: req.headers, narrowing: [narrowing].flat(), custom: customOf(req.headers) });
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* The custom metadata of the `X-Metadata` header (deep dive TRN-11): any JSON value, any key.
|
|
224
|
+
* A header above the limit or a header that is not URI-encoded JSON throws a `BodyError`.
|
|
225
|
+
*/
|
|
226
|
+
const customOf = (headers) => {
|
|
227
|
+
const encoded = headers["x-metadata"];
|
|
228
|
+
if (typeof encoded !== "string")
|
|
229
|
+
return [];
|
|
230
|
+
if (encoded.length > METADATA_HEADER_LIMIT) {
|
|
231
|
+
throw new BodyError(`The X-Metadata header is longer than ${METADATA_HEADER_LIMIT} characters`, 431);
|
|
232
|
+
}
|
|
233
|
+
const custom = decodeMetadataHeader(encoded);
|
|
234
|
+
if (!custom)
|
|
235
|
+
throw new BodyError("The X-Metadata header is not URI-encoded JSON of an object", 400);
|
|
236
|
+
return [custom];
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* The `ServerRequest` of one call. A request of one call gives the headers of the HTTP request.
|
|
240
|
+
* A call of a batch gives the headers of the HTTP request with the headers of the call over
|
|
241
|
+
* them (CLI-32). The credentials always come from the HTTP request.
|
|
242
|
+
*/
|
|
243
|
+
const requestOf = (req, call) => {
|
|
244
|
+
const { id, method, headers } = call;
|
|
193
245
|
// The query without its secret parameters: they go into the credentials (CLI-2a)
|
|
194
246
|
// An own property for each key, also `__proto__`: a key of the request changes no prototype
|
|
195
247
|
const query = {};
|
|
@@ -201,7 +253,7 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
201
253
|
// query or params. The secret headers go into the credentials, not into the metadata, so a
|
|
202
254
|
// handler and a nested call do not see them (roadmap R18)
|
|
203
255
|
const metadata = {
|
|
204
|
-
headers: withoutSecretHeaders(
|
|
256
|
+
headers: withoutSecretHeaders(headers, secretHeaders),
|
|
205
257
|
query,
|
|
206
258
|
params,
|
|
207
259
|
};
|
|
@@ -211,7 +263,7 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
211
263
|
}
|
|
212
264
|
// The custom headers at the root of the metadata, as the client's metadataToHeaders() sends
|
|
213
265
|
// them. A secret header (Cookie too) does not go there.
|
|
214
|
-
for (const [key, value] of Object.entries(
|
|
266
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
215
267
|
const lower = key.toLowerCase();
|
|
216
268
|
if (STANDARD_HEADERS.has(lower) || isSecretHeader(lower, secretHeaders) || typeof value !== "string" || lower === NARROWING_METADATA_KEY)
|
|
217
269
|
continue;
|
|
@@ -221,19 +273,11 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
221
273
|
}
|
|
222
274
|
// Each value of the narrowing header is one source, also each line of a repeated header. No
|
|
223
275
|
// source replaces another: a gateway's header and the client's key of X-Metadata both apply (CLI-30)
|
|
224
|
-
const
|
|
225
|
-
for (const value of [narrowingHeader].flat())
|
|
276
|
+
for (const value of call.narrowing)
|
|
226
277
|
if (typeof value === "string")
|
|
227
278
|
setMetadata(metadata, NARROWING_METADATA_KEY, value);
|
|
228
279
|
// The custom metadata of the HTTP client: any JSON value, any key (deep dive TRN-11)
|
|
229
|
-
const
|
|
230
|
-
if (typeof encoded === "string") {
|
|
231
|
-
if (encoded.length > METADATA_HEADER_LIMIT) {
|
|
232
|
-
throw new BodyError(`The X-Metadata header is longer than ${METADATA_HEADER_LIMIT} characters`, 431);
|
|
233
|
-
}
|
|
234
|
-
const custom = decodeMetadataHeader(encoded);
|
|
235
|
-
if (!custom)
|
|
236
|
-
throw new BodyError("The X-Metadata header is not URI-encoded JSON of an object", 400);
|
|
280
|
+
for (const custom of call.custom) {
|
|
237
281
|
for (const [key, value] of Object.entries(custom)) {
|
|
238
282
|
if (!RESERVED_METADATA.has(key) && key !== "auth" && !key.startsWith("__"))
|
|
239
283
|
setMetadata(metadata, key, value);
|
|
@@ -241,7 +285,7 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
241
285
|
}
|
|
242
286
|
// The payload of the addressing (the body, or the id of a RESTful GET). Only an absent payload
|
|
243
287
|
// becomes {}: 0, false, "" and null stay (deep dive TRN-10)
|
|
244
|
-
const payload =
|
|
288
|
+
const payload = call.payload === undefined ? {} : call.payload;
|
|
245
289
|
return {
|
|
246
290
|
id,
|
|
247
291
|
method,
|
|
@@ -254,6 +298,34 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
254
298
|
credentials: requestCredentials({ headers: req.headers, url: req.url, socket: req.socket }),
|
|
255
299
|
};
|
|
256
300
|
};
|
|
301
|
+
/**
|
|
302
|
+
* The runs of a batch (CLI-32). A bad body or a bad `X-Metadata` header throws a `BodyError`, and
|
|
303
|
+
* then no call runs. A header of a call cannot be a secret header, a header of the connection or
|
|
304
|
+
* a header of the body: the credentials and the body are the parts of the HTTP request.
|
|
305
|
+
*/
|
|
306
|
+
const batchRuns = (req, body, signal) => {
|
|
307
|
+
const calls = parseBatch(body, batch.maxCalls);
|
|
308
|
+
const outerCustom = customOf(req.headers);
|
|
309
|
+
const outerNarrowing = [req.headersDistinct?.[NARROWING_METADATA_KEY] ?? req.headers[NARROWING_METADATA_KEY]].flat();
|
|
310
|
+
const batchId = req.headers["x-request-id"] ?? `batch-${Date.now()}-${Math.random()}`;
|
|
311
|
+
return calls.map((call) => {
|
|
312
|
+
const headers = {};
|
|
313
|
+
for (const [key, value] of Object.entries(req.headers))
|
|
314
|
+
put(headers, key, value);
|
|
315
|
+
const narrowing = [...outerNarrowing];
|
|
316
|
+
for (const [key, value] of Object.entries(call.headers)) {
|
|
317
|
+
const lower = key.toLowerCase();
|
|
318
|
+
if (lower === NARROWING_METADATA_KEY)
|
|
319
|
+
narrowing.push(value);
|
|
320
|
+
else if (!REQUEST_ONLY_HEADERS.has(lower) && !lower.startsWith("sec-") && !isSecretHeader(lower, secretHeaders))
|
|
321
|
+
put(headers, lower, value);
|
|
322
|
+
}
|
|
323
|
+
const custom = call.metadata ? [...outerCustom, call.metadata] : outerCustom;
|
|
324
|
+
const request = requestOf(req, { id: `${batchId}:${call.id}`, method: call.method, payload: call.input, headers, narrowing, custom });
|
|
325
|
+
request.signal = signal;
|
|
326
|
+
return { call: call.id, request };
|
|
327
|
+
});
|
|
328
|
+
};
|
|
257
329
|
/** This function converts a `ServerResponse` to the HTTP response. */
|
|
258
330
|
const toHttp = (serverResponse, res) => {
|
|
259
331
|
const { status, payload, metadata } = serverResponse;
|
|
@@ -364,6 +436,10 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
364
436
|
return;
|
|
365
437
|
// The protocol version of this server, on each response (roadmap R25)
|
|
366
438
|
res.setHeader(PROTOCOL_HEADER, String(PROTOCOL_VERSION));
|
|
439
|
+
// A server that takes batches says so on each answer to a batch, also on an error. A client
|
|
440
|
+
// sends the calls of a batch alone after an answer without it (CLI-32).
|
|
441
|
+
if (isBatch(req))
|
|
442
|
+
res.setHeader(BATCH_HEADER, "1");
|
|
367
443
|
const version = protocolVersionOf(req.headers[PROTOCOL_HEADER.toLowerCase()]);
|
|
368
444
|
if (version !== undefined && version > PROTOCOL_VERSION) {
|
|
369
445
|
sendJson(res, 400, {
|
|
@@ -405,8 +481,13 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
405
481
|
});
|
|
406
482
|
let serverRequest = null;
|
|
407
483
|
try {
|
|
484
|
+
let runs;
|
|
408
485
|
try {
|
|
409
|
-
|
|
486
|
+
const body = await readBody(req);
|
|
487
|
+
if (isBatch(req))
|
|
488
|
+
runs = batchRuns(req, body, controller.signal);
|
|
489
|
+
else
|
|
490
|
+
serverRequest = toServerRequest(req, body);
|
|
410
491
|
}
|
|
411
492
|
catch (error) {
|
|
412
493
|
const status = error instanceof BodyError ? error.httpStatus : 400;
|
|
@@ -414,6 +495,12 @@ export function createProcedureHandler(server, options, compat = {}) {
|
|
|
414
495
|
sendError(res, status, error.message, status === 413 ? "PAYLOAD_TOO_LARGE" : "INVALID_REQUEST");
|
|
415
496
|
return;
|
|
416
497
|
}
|
|
498
|
+
if (runs) {
|
|
499
|
+
// One NDJSON stream for the calls of the batch: the lines, the backpressure and the
|
|
500
|
+
// keep-alive of a stream of one call (CLI-32)
|
|
501
|
+
await writeNdjsonStream(res, batchFrames(server, runs, batch.concurrency, errorOf), { signal: controller.signal, keepAlive, errorOf, clock });
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
417
504
|
if (!serverRequest) {
|
|
418
505
|
sendError(res, 400, "Invalid request: could not parse RPC method from URL", "INVALID_REQUEST");
|
|
419
506
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAM7D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAK9E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAA8I;IAC7J,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,0BAA+B,EA2D3E;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IA2Bb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1B;IAED,SAAS,IAAI,OAAO,CAEnB;IAED;;;;OAIG;IACH,IAAI,IAAI,MAAM,GAAG,SAAS,CAGzB;CACF"}
|
|
@@ -11,6 +11,7 @@ import { createServer } from "http";
|
|
|
11
11
|
import { createPatternServerUrlStrategy } from "./strategies.js";
|
|
12
12
|
import { applyCors, corsOrigins, corsPolicy } from "./cors.js";
|
|
13
13
|
import { createProcedureHandler } from "./handler.js";
|
|
14
|
+
import { isBatchRequest } from "./batch.js";
|
|
14
15
|
/**
|
|
15
16
|
* This function gives the route of the procedure handler: each path under the base path. With
|
|
16
17
|
* `takesBasePath`, the route also matches the base path itself. Each character of the base path
|
|
@@ -62,6 +63,8 @@ export class HttpServerTransport {
|
|
|
62
63
|
httpServer: options.httpServer,
|
|
63
64
|
// A single endpoint with the path in the body is the base path itself (CLI-31)
|
|
64
65
|
takesBasePath: options.addressing?.takesBasePath === true,
|
|
66
|
+
// A batch of calls goes to the base path itself too (CLI-32)
|
|
67
|
+
batch: options.batch !== false,
|
|
65
68
|
};
|
|
66
69
|
// Route by URL path so the raw server matches the HTTP client's default URL format instead of
|
|
67
70
|
// inferring the operation from the verb (BUGS-2026-07 C3, bug 16)
|
|
@@ -81,6 +84,7 @@ export class HttpServerTransport {
|
|
|
81
84
|
secretHeaders: options.secretHeaders,
|
|
82
85
|
secretQuery: options.secretQuery,
|
|
83
86
|
addressing: options.addressing,
|
|
87
|
+
batch: options.batch,
|
|
84
88
|
}, {
|
|
85
89
|
legacy: true,
|
|
86
90
|
matchAll: true,
|
|
@@ -115,8 +119,15 @@ export class HttpServerTransport {
|
|
|
115
119
|
});
|
|
116
120
|
}
|
|
117
121
|
// Catch-all route for RPC - use regex to match any path under basePath, and the base path
|
|
118
|
-
// itself for an addressing that takes it
|
|
119
|
-
|
|
122
|
+
// itself for an addressing that takes it. A batch also goes to the base path itself; another
|
|
123
|
+
// request there goes on to the app (CLI-32).
|
|
124
|
+
const { basePath, takesBasePath, batch } = this.options;
|
|
125
|
+
const bareBase = basePath.replace(/\/$/, "");
|
|
126
|
+
this.app.all(basePathRoute(basePath, takesBasePath || batch), async (req, res, next) => {
|
|
127
|
+
if (!takesBasePath && req.path.replace(/\/$/, "") === bareBase && !isBatchRequest(req)) {
|
|
128
|
+
next();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
120
131
|
await this.handler.handle(req, res);
|
|
121
132
|
});
|
|
122
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAKpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAA6B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import type { BrowserGuardOptions } from "../../../server/browser-guard.js";
|
|
|
10
10
|
import type { Clock } from "../../../clock.js";
|
|
11
11
|
import type { Duration } from "../../../duration.js";
|
|
12
12
|
import type { Addressing } from "./addressing.js";
|
|
13
|
+
import type { HandlerBatchOptions } from "./batch.js";
|
|
13
14
|
import type { UrlStrategyRequest } from "./strategies.js";
|
|
14
15
|
/**
|
|
15
16
|
* The URL strategy of `HttpServerTransport`: it gives the method of a request, or null when the URL
|
|
@@ -53,6 +54,12 @@ export interface HttpServerTransportOptions extends BrowserGuardOptions {
|
|
|
53
54
|
* the route takes the base path itself too.
|
|
54
55
|
*/
|
|
55
56
|
addressing?: Addressing;
|
|
57
|
+
/**
|
|
58
|
+
* The batches of calls (CLI-32): `POST {base}` with the header `Procedures-Batch: 1` runs many
|
|
59
|
+
* calls and answers with one NDJSON stream. `false` turns batches off.
|
|
60
|
+
* @default true: `{ maxCalls: 64, concurrency: 8 }`
|
|
61
|
+
*/
|
|
62
|
+
batch?: boolean | HandlerBatchOptions;
|
|
56
63
|
/**
|
|
57
64
|
* Base path for RPC endpoints.
|
|
58
65
|
* @default "/api"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,kBAAkB,KAAK,MAAM,GAAG,IAAI,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,kBAAkB,KAAK,MAAM,GAAG,IAAI,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH"}
|
|
@@ -43,6 +43,13 @@ export interface HTTPErrorDetails {
|
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Create HTTP error details from status code
|
|
46
|
+
*
|
|
47
|
+
* `HttpTransport` uses these details when the body of an error response has no string code. The
|
|
48
|
+
* code is the code of `ERROR_REGISTRY` that `httpStatusToErrorCode()` gives. Thus 408 gives
|
|
49
|
+
* `TIMEOUT` (retryable), 500 gives `INTERNAL_ERROR` (not retryable) and 599 gives
|
|
50
|
+
* `HTTP_NETWORK_CONNECT_TIMEOUT` (retryable). A status without a code of the registry gives its
|
|
51
|
+
* name from `HTTPStatusToCode`, for example `NOT_MODIFIED` for 304. `isRetryableStatus()` gives the
|
|
52
|
+
* retryable flag.
|
|
46
53
|
*/
|
|
47
54
|
export declare function createHTTPStatusError(status: HTTPStatus): HTTPErrorDetails;
|
|
48
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK5C;;;;GAIG;AACH,oBAAY,aAAa;IAEvB,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IACzC,OAAO,YAAY;IACnB,OAAO,YAAY;IAGnB,UAAU,eAAe;IAGzB,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IAGnC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IAGjC,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAYV,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IAE7B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;IAEnB,gDAAgD;IAChD,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAQ1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,GACZ,gBAAgB,CAOlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAMtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAMnD;AAGD,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAO/D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CA6B3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CASvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,OAAO,CAStE"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HTTPStatus } from "./constants.js";
|
|
8
8
|
import { formatHTTPError, getStatusCode, isRetryableStatus } from "./status-codes.js";
|
|
9
|
+
import { ErrorCode } from "../../../client/errors/codes.js";
|
|
10
|
+
import { httpStatusToErrorCode } from "../../../client/errors/http-errors.js";
|
|
9
11
|
/**
|
|
10
12
|
* HTTP Error Codes (Type-safe)
|
|
11
13
|
*
|
|
@@ -45,10 +47,18 @@ export const HTTPErrorMessage = {
|
|
|
45
47
|
};
|
|
46
48
|
/**
|
|
47
49
|
* Create HTTP error details from status code
|
|
50
|
+
*
|
|
51
|
+
* `HttpTransport` uses these details when the body of an error response has no string code. The
|
|
52
|
+
* code is the code of `ERROR_REGISTRY` that `httpStatusToErrorCode()` gives. Thus 408 gives
|
|
53
|
+
* `TIMEOUT` (retryable), 500 gives `INTERNAL_ERROR` (not retryable) and 599 gives
|
|
54
|
+
* `HTTP_NETWORK_CONNECT_TIMEOUT` (retryable). A status without a code of the registry gives its
|
|
55
|
+
* name from `HTTPStatusToCode`, for example `NOT_MODIFIED` for 304. `isRetryableStatus()` gives the
|
|
56
|
+
* retryable flag.
|
|
48
57
|
*/
|
|
49
58
|
export function createHTTPStatusError(status) {
|
|
59
|
+
const registryCode = httpStatusToErrorCode(status);
|
|
50
60
|
return {
|
|
51
|
-
code: getStatusCode(status),
|
|
61
|
+
code: registryCode === ErrorCode.UNKNOWN ? getStatusCode(status) : registryCode,
|
|
52
62
|
message: formatHTTPError(status),
|
|
53
63
|
retryable: isRetryableStatus(status),
|
|
54
64
|
status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/adapters/http/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/adapters/http/shared/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,17 @@ import { HTTPStatus } from "./constants.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* HTTP Status Code to String Code Mapping
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* This table maps numeric status codes to semantic string codes.
|
|
12
|
+
*
|
|
13
|
+
* The table holds the names of the statuses. It does not hold the error codes.
|
|
14
|
+
* `createHTTPStatusError()` gives the code of `ERROR_REGISTRY` for a status. Three names are not
|
|
15
|
+
* error codes:
|
|
16
|
+
*
|
|
17
|
+
* | Status | Name | Error code | Retryable |
|
|
18
|
+
* |---|---|---|---|
|
|
19
|
+
* | 408 | `REQUEST_TIMEOUT` | `TIMEOUT` | true: the server did not read the full request, so the call did not start |
|
|
20
|
+
* | 500 | `INTERNAL_SERVER_ERROR` | `INTERNAL_ERROR` | false, as `ERROR_CODES` gives: the call can have had its effect |
|
|
21
|
+
* | 599 | `HTTP_NETWORK_CONNECT_TIMEOUT_ERROR` | `HTTP_NETWORK_CONNECT_TIMEOUT` | true, as `ERROR_REGISTRY` gives |
|
|
12
22
|
*/
|
|
13
23
|
export declare const HTTPStatusToCode: Record<HTTPStatus, string>;
|
|
14
24
|
/**
|
|
@@ -49,8 +59,14 @@ export declare function isErrorStatus(status: HTTPStatus): boolean;
|
|
|
49
59
|
/**
|
|
50
60
|
* Check if status code is typically retryable
|
|
51
61
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
62
|
+
* The flag of a status is the retryable flag of its entry in `ERROR_REGISTRY`. That entry is the
|
|
63
|
+
* entry of the code from `httpStatusToErrorCode()`, when the entry has this status.
|
|
64
|
+
*
|
|
65
|
+
* - 408 is retryable: the server did not read the full request, so the call did not start. Its
|
|
66
|
+
* code `TIMEOUT` has the status 504 in the registry.
|
|
67
|
+
* - A status without an entry is retryable when it is a server error (5xx).
|
|
68
|
+
*
|
|
69
|
+
* The configuration of the retry middleware can override this policy.
|
|
54
70
|
*/
|
|
55
71
|
export declare function isRetryableStatus(status: HTTPStatus): boolean;
|
|
56
72
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-codes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/status-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"status-codes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/status-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAIlD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAqET,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,gBAAmC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAEzB,CAAC;AAEhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAY7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,UAAU,CAEtE"}
|
|
@@ -5,10 +5,22 @@
|
|
|
5
5
|
* and classification helpers.
|
|
6
6
|
*/
|
|
7
7
|
import { HTTPStatus, HTTP } from "./constants.js";
|
|
8
|
+
import { ERROR_REGISTRY } from "../../../client/errors/registry.js";
|
|
9
|
+
import { httpStatusToErrorCode } from "../../../client/errors/http-errors.js";
|
|
8
10
|
/**
|
|
9
11
|
* HTTP Status Code to String Code Mapping
|
|
10
12
|
*
|
|
11
|
-
*
|
|
13
|
+
* This table maps numeric status codes to semantic string codes.
|
|
14
|
+
*
|
|
15
|
+
* The table holds the names of the statuses. It does not hold the error codes.
|
|
16
|
+
* `createHTTPStatusError()` gives the code of `ERROR_REGISTRY` for a status. Three names are not
|
|
17
|
+
* error codes:
|
|
18
|
+
*
|
|
19
|
+
* | Status | Name | Error code | Retryable |
|
|
20
|
+
* |---|---|---|---|
|
|
21
|
+
* | 408 | `REQUEST_TIMEOUT` | `TIMEOUT` | true: the server did not read the full request, so the call did not start |
|
|
22
|
+
* | 500 | `INTERNAL_SERVER_ERROR` | `INTERNAL_ERROR` | false, as `ERROR_CODES` gives: the call can have had its effect |
|
|
23
|
+
* | 599 | `HTTP_NETWORK_CONNECT_TIMEOUT_ERROR` | `HTTP_NETWORK_CONNECT_TIMEOUT` | true, as `ERROR_REGISTRY` gives |
|
|
12
24
|
*/
|
|
13
25
|
export const HTTPStatusToCode = {
|
|
14
26
|
[HTTPStatus.UNKNOWN]: "UNKNOWN",
|
|
@@ -127,20 +139,25 @@ export function isErrorStatus(status) {
|
|
|
127
139
|
/**
|
|
128
140
|
* Check if status code is typically retryable
|
|
129
141
|
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
142
|
+
* The flag of a status is the retryable flag of its entry in `ERROR_REGISTRY`. That entry is the
|
|
143
|
+
* entry of the code from `httpStatusToErrorCode()`, when the entry has this status.
|
|
144
|
+
*
|
|
145
|
+
* - 408 is retryable: the server did not read the full request, so the call did not start. Its
|
|
146
|
+
* code `TIMEOUT` has the status 504 in the registry.
|
|
147
|
+
* - A status without an entry is retryable when it is a server error (5xx).
|
|
148
|
+
*
|
|
149
|
+
* The configuration of the retry middleware can override this policy.
|
|
132
150
|
*/
|
|
133
151
|
export function isRetryableStatus(status) {
|
|
134
|
-
//
|
|
135
|
-
if (
|
|
152
|
+
// The deadline of a TIMEOUT (504) passed, but the call of a 408 did not start
|
|
153
|
+
if (status === HTTPStatus.REQUEST_TIMEOUT) {
|
|
136
154
|
return true;
|
|
137
155
|
}
|
|
138
|
-
|
|
139
|
-
if (
|
|
140
|
-
|
|
141
|
-
return true;
|
|
156
|
+
const entry = ERROR_REGISTRY[httpStatusToErrorCode(status)];
|
|
157
|
+
if (entry?.httpStatus === status) {
|
|
158
|
+
return entry.retryable;
|
|
142
159
|
}
|
|
143
|
-
return
|
|
160
|
+
return isServerErrorStatus(status);
|
|
144
161
|
}
|
|
145
162
|
/**
|
|
146
163
|
* Get semantic code string for a status
|