@hyperttp/core 1.4.8 → 1.5.1

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.
Files changed (48) hide show
  1. package/Core/HyperCore.d.ts +66 -124
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +2 -576
  4. package/Core/HyperCore.js.map +7 -1
  5. package/Core/RequestBuilder.d.ts +36 -0
  6. package/Core/RequestBuilder.d.ts.map +1 -0
  7. package/Core/RequestBuilder.js +2 -0
  8. package/Core/RequestBuilder.js.map +7 -0
  9. package/Core/index.js +2 -2
  10. package/Core/index.js.map +7 -1
  11. package/README.md +30 -0
  12. package/defaultConfig.d.ts +4 -0
  13. package/defaultConfig.d.ts.map +1 -1
  14. package/defaultConfig.js +2 -19
  15. package/defaultConfig.js.map +7 -1
  16. package/index.js +2 -3
  17. package/index.js.map +7 -1
  18. package/package.json +2 -2
  19. package/transports/browser.d.ts.map +1 -1
  20. package/transports/browser.js +2 -113
  21. package/transports/browser.js.map +7 -1
  22. package/transports/manager.d.ts +0 -33
  23. package/transports/manager.d.ts.map +1 -1
  24. package/transports/manager.js +7 -349
  25. package/transports/manager.js.map +7 -1
  26. package/transports/node.d.ts +1 -0
  27. package/transports/node.d.ts.map +1 -1
  28. package/transports/node.js +2 -380
  29. package/transports/node.js.map +7 -1
  30. package/utils/errors.d.ts +0 -11
  31. package/utils/errors.d.ts.map +1 -1
  32. package/utils/errors.js +2 -53
  33. package/utils/errors.js.map +7 -1
  34. package/utils/merge.js +2 -29
  35. package/utils/merge.js.map +7 -1
  36. package/utils/normalize.d.ts +22 -39
  37. package/utils/normalize.d.ts.map +1 -1
  38. package/utils/normalize.js +2 -285
  39. package/utils/normalize.js.map +7 -1
  40. package/utils/pipeline.js +2 -193
  41. package/utils/pipeline.js.map +7 -1
  42. package/utils/response.d.ts +49 -73
  43. package/utils/response.d.ts.map +1 -1
  44. package/utils/response.js +2 -389
  45. package/utils/response.js.map +7 -1
  46. package/utils/retryUtils.d.ts.map +1 -1
  47. package/utils/retryUtils.js +2 -55
  48. package/utils/retryUtils.js.map +7 -1
@@ -1 +1,7 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/response.ts"],
4
+ "sourcesContent": ["import type { HttpResponse, HyperTransport, HyperBody } from \"@hyperttp/types\";\nimport { CURRENT_RUNTIME } from \"../transports/manager.js\";\n\ntype TransportResponse = Awaited<ReturnType<HyperTransport[\"execute\"]>>;\n\ninterface InternalTransportResponse extends TransportResponse {\n _raw?: FetchResponseLike;\n}\n\ninterface FetchResponseLike {\n body: unknown;\n arrayBuffer(): Promise<ArrayBuffer>;\n text(): Promise<string>;\n json(): Promise<unknown>;\n}\n\nconst RAW_CACHE = Symbol(\"hyperttp.rawCache\");\nconst TEXT_CACHE = Symbol(\"hyperttp.textCache\");\nconst JSON_CACHE = Symbol(\"hyperttp.jsonCache\");\n\ntype CacheHolder = {\n [RAW_CACHE]?: Uint8Array;\n [TEXT_CACHE]?: string;\n [JSON_CACHE]?: unknown;\n};\n\nconst STATIC_DECODER = new TextDecoder();\nconst STATIC_ENCODER = new TextEncoder();\nconst EMPTY_HEADERS: Readonly<Record<string, never>> = Object.freeze({});\n\nfunction isReadableStream(value: unknown): value is ReadableStream<Uint8Array> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"getReader\" in value &&\n typeof (value as Record<string, unknown>).getReader === \"function\"\n );\n}\n\nfunction isBlob(value: unknown): value is Blob {\n return typeof Blob !== \"undefined\" && value instanceof Blob;\n}\n\n/**\n * @ru \u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u043A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043E\u0442\u0432\u0435\u0442\u0430 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 structuredClone, JSON \u0438 \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.\n * @en Fast response body clone supporting structuredClone, JSON, and manual copy.\n * @param body - The body value to clone.\n * @returns Cloned body.\n */\nexport const cloneBodyFast = <T>(body: T): T => {\n if (typeof body !== \"object\" || body === null) return body;\n const obj = body as Record<string, unknown>;\n\n if (\n body instanceof Uint8Array ||\n typeof obj.pipe === \"function\" ||\n typeof obj.getReader === \"function\"\n ) {\n return body;\n }\n\n const proto = Object.getPrototypeOf(body);\n if (proto === Object.prototype || proto === null) {\n const target = Object.create(proto);\n for (const key in body) {\n if (Object.prototype.hasOwnProperty.call(body, key)) {\n target[key] = body[key];\n }\n }\n return target as T;\n }\n\n try {\n return structuredClone(body);\n } catch {\n try {\n return JSON.parse(JSON.stringify(body)) as T;\n } catch {\n const target = Object.create(proto);\n for (const key in body) {\n if (Object.prototype.hasOwnProperty.call(body, key)) {\n target[key] = body[key];\n }\n }\n return target as T;\n }\n }\n};\n\n/**\n * @ru \u0420\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F HttpResponse \u0441 \u043B\u0435\u043D\u0438\u0432\u044B\u043C \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435\u043C \u0442\u0435\u043B\u0430, \u043A\u044D\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u043C raw/text/json \u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u043F\u0443\u043B\u0438\u043D\u0433\u0430.\n * @en HttpResponse implementation with lazy body consumption, raw/text/json caching, and pooling support.\n */\nexport class HyperHttpResponse<T = unknown> implements HttpResponse<T>, CacheHolder {\n public status!: number;\n public headers!: Record<string, string | string[]>;\n public body!: T | HyperBody | Uint8Array | null;\n public url!: string;\n public data!: T | null;\n\n public [RAW_CACHE]!: Uint8Array | undefined;\n public [TEXT_CACHE]!: string | undefined;\n public [JSON_CACHE]!: unknown | undefined;\n\n private _bodyConsumed!: boolean;\n private _raw!: FetchResponseLike | undefined;\n\n constructor(rawResponse?: TransportResponse) {\n this.status = 0;\n this.headers = EMPTY_HEADERS;\n this.body = null;\n this.url = \"\";\n this.data = null;\n this[RAW_CACHE] = undefined;\n this[TEXT_CACHE] = undefined;\n this[JSON_CACHE] = undefined;\n this._bodyConsumed = false;\n this._raw = undefined;\n if (rawResponse) this.init(rawResponse);\n }\n\n /**\n * @ru \u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u0438\u0437 \u0442\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u043D\u043E\u0433\u043E \u043E\u0442\u0432\u0435\u0442\u0430. \u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043A\u044D\u0448\u0438.\n * @en Initializes the response from a transport response. Resets all caches.\n * @param rawResponse - The raw transport response.\n * @returns This instance for chaining.\n */\n public init(rawResponse: TransportResponse): this {\n this.status = rawResponse.status;\n this.headers = rawResponse.headers || EMPTY_HEADERS;\n this.body = rawResponse.body as T | HyperBody | Uint8Array | null;\n this.url = rawResponse.url ?? \"\";\n this.data = null;\n this[RAW_CACHE] = undefined;\n this[TEXT_CACHE] = undefined;\n this[JSON_CACHE] = undefined;\n this._bodyConsumed = false;\n this._raw = (rawResponse as InternalTransportResponse)._raw;\n return this;\n }\n\n private async _consumeBody(): Promise<void> {\n if (this[RAW_CACHE] !== undefined) return;\n\n const body = this.body;\n if (!body) return;\n\n if (body instanceof Uint8Array) {\n this[RAW_CACHE] = body;\n this._bodyConsumed = true;\n return;\n }\n\n if (typeof body === \"string\") {\n this[RAW_CACHE] = STATIC_ENCODER.encode(body);\n this._bodyConsumed = true;\n return;\n }\n\n if (body instanceof ArrayBuffer) {\n this[RAW_CACHE] = new Uint8Array(body);\n this._bodyConsumed = true;\n return;\n }\n\n if (this._raw && body === this._raw.body && typeof this._raw.arrayBuffer === \"function\") {\n const buf = await this._raw.arrayBuffer();\n this[RAW_CACHE] = new Uint8Array(buf);\n this.body = this[RAW_CACHE] as T | HyperBody | Uint8Array | null;\n this._bodyConsumed = true;\n return;\n }\n\n if (CURRENT_RUNTIME === \"bun\" && body && typeof body === \"object\" && \"arrayBuffer\" in body) {\n const bunBody = body as { arrayBuffer: () => Promise<ArrayBuffer> };\n if (typeof bunBody.arrayBuffer === \"function\") {\n const buf = await bunBody.arrayBuffer();\n this[RAW_CACHE] = new Uint8Array(buf);\n this.body = this[RAW_CACHE] as T | HyperBody | Uint8Array | null;\n this._bodyConsumed = true;\n return;\n }\n }\n\n if (isReadableStream(body) || isBlob(body)) {\n if (isReadableStream(body) && body.locked) {\n throw new Error(\"[Hyperttp] Stream is locked.\");\n }\n const response = new Response(body as unknown as BodyInit);\n const buf = await response.arrayBuffer();\n this[RAW_CACHE] = new Uint8Array(buf);\n this.body = this[RAW_CACHE] as T | HyperBody | Uint8Array | null;\n this._bodyConsumed = true;\n }\n }\n\n /**\n * @ru \u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043B\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043A\u0430\u043A ArrayBuffer, \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u044F \u0435\u0433\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438.\n * @en Returns the response body as ArrayBuffer, consuming it if necessary.\n * @returns Promise resolving to an ArrayBuffer.\n */\n public async arrayBuffer(): Promise<ArrayBuffer> {\n await this._consumeBody();\n if (this[RAW_CACHE] === undefined) {\n throw new Error(\"[Hyperttp] Response body is not available as ArrayBuffer\");\n }\n return this[RAW_CACHE].buffer.slice(\n this[RAW_CACHE].byteOffset,\n this[RAW_CACHE].byteOffset + this[RAW_CACHE].byteLength,\n ) as ArrayBuffer;\n }\n\n /**\n * @ru \u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043B\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043A\u0430\u043A \u0441\u0442\u0440\u043E\u043A\u0443 \u0441 \u043A\u044D\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u043C.\n * @en Returns the response body as text with caching.\n * @returns Promise resolving to the decoded text.\n */\n public async text(): Promise<string> {\n if (this[TEXT_CACHE] !== undefined) return this[TEXT_CACHE]!;\n await this._consumeBody();\n if (this[RAW_CACHE] === undefined) {\n throw new Error(\"[Hyperttp] Response body is not available as text\");\n }\n this[TEXT_CACHE] = STATIC_DECODER.decode(this[RAW_CACHE]!);\n return this[TEXT_CACHE]!;\n }\n\n /**\n * @ru \u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043B\u043E \u043E\u0442\u0432\u0435\u0442\u0430, \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u043E\u0435 \u043A\u0430\u043A JSON. \u0414\u043B\u044F \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E (\u0431\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u044F).\n * @en Returns the response body parsed as JSON. Returns objects directly (no consumption).\n * @returns Promise resolving to the parsed JSON value.\n */\n public async json<TJson = T>(): Promise<TJson> {\n const body = this.body;\n if (\n !this._bodyConsumed &&\n typeof body === \"object\" &&\n body !== null &&\n !isReadableStream(body) &&\n !isBlob(body) &&\n !(body instanceof Uint8Array) &&\n !(body instanceof ArrayBuffer)\n ) {\n this._bodyConsumed = true;\n return body as TJson;\n }\n\n await this._consumeBody();\n if (this[RAW_CACHE] === undefined) {\n throw new Error(\"[Hyperttp] Response body is not available as JSON\");\n }\n if (this[TEXT_CACHE] === undefined) {\n this[TEXT_CACHE] = STATIC_DECODER.decode(this[RAW_CACHE]!);\n }\n return JSON.parse(this[TEXT_CACHE]!) as TJson;\n }\n\n /**\n * @ru \u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442 \u0442\u0435\u043B\u043E \u043E\u0442\u0432\u0435\u0442\u0430 (\u0434\u043B\u044F \u0441\u0442\u0440\u0438\u043C\u043E\u0432 \u2014 \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442/cancel).\n * @en Discards the response body (cancels streams).\n * @returns Promise that resolves when the body is discarded.\n */\n public async dump(): Promise<void> {\n if (this._bodyConsumed) return;\n this._bodyConsumed = true;\n\n const body = this.body;\n if (isReadableStream(body)) {\n if (!body.locked) await body.cancel().catch(() => {});\n } else if (isBlob(body)) {\n await body.arrayBuffer();\n }\n }\n\n /**\n * @ru \u041A\u043B\u043E\u043D\u0438\u0440\u0443\u0435\u0442 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043C \u0441\u0442\u0440\u0438\u043C\u043E\u0432 \u0447\u0435\u0440\u0435\u0437 tee().\n * @en Clones the response, splitting streams via tee().\n * @returns A new HttpResponse instance.\n */\n public clone(): HttpResponse<T> {\n const cloned = new HyperHttpResponse<T>();\n cloned.status = this.status;\n cloned.headers = this.headers;\n cloned.url = this.url;\n cloned.data = this.data ? cloneBodyFast(this.data) : null;\n cloned._bodyConsumed = this._bodyConsumed;\n cloned._raw = this._bodyConsumed ? undefined : this._raw;\n\n cloned[RAW_CACHE] = this[RAW_CACHE];\n cloned[TEXT_CACHE] = this[TEXT_CACHE];\n cloned[JSON_CACHE] = this[JSON_CACHE];\n\n if (isReadableStream(this.body) && !this._bodyConsumed) {\n if (this.body.locked) {\n cloned.body = this.body;\n } else {\n const [b1, b2] = this.body.tee();\n this.body = b1 as T | HyperBody | Uint8Array | null;\n cloned.body = b2 as T | HyperBody | Uint8Array | null;\n }\n } else {\n cloned.body = this.body;\n }\n\n return cloned;\n }\n}\n\nexport const responsePool: HyperHttpResponse<any>[] = [];\nconst RESPONSE_POOL_MAX = 64;\n\n/**\n * @ru \u0421\u043E\u0437\u0434\u0430\u0451\u0442 HttpResponse \u0438\u0437 \u0442\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u043D\u043E\u0433\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u0441 \u043F\u0435\u0440\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u043F\u0443\u043B\u0430.\n * @en Creates an HttpResponse from a transport response reusing the pool.\n * @param rawResponse - The raw transport response.\n * @returns An HttpResponse instance.\n */\nexport const mapResponseFast = (rawResponse: TransportResponse): HttpResponse<unknown> => {\n const instance = responsePool.pop() ?? new HyperHttpResponse();\n return instance.init(rawResponse);\n};\n\n/**\n * @ru \u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 HttpResponse \u0432 \u043F\u0443\u043B \u043F\u0435\u0440\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F.\n * @en Returns an HttpResponse to the reuse pool.\n * @param res - The response to recycle.\n */\nexport const recycleResponse = (res: HttpResponse<unknown>): void => {\n if (res instanceof HyperHttpResponse && responsePool.length < RESPONSE_POOL_MAX) {\n responsePool.push(res);\n }\n};\n\n/**\n * @ru \u0421\u043E\u0437\u0434\u0430\u0451\u0442 StreamResponse \u0431\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u044F \u0442\u0435\u043B\u0430.\n * @en Creates a StreamResponse without consuming the body.\n * @param rawResponse - The raw transport response.\n * @returns A StreamResponse-like object.\n */\nexport const mapStreamFast = (rawResponse: TransportResponse) => ({\n status: rawResponse.status,\n headers: rawResponse.headers,\n body: rawResponse.body,\n url: rawResponse.url ?? \"\",\n});\n\n/**\n * @ru \u0411\u044B\u0441\u0442\u0440\u043E\u0435 \u0441\u043B\u0438\u044F\u043D\u0438\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0441 \u043C\u0443\u0442\u0430\u0446\u0438\u0435\u0439 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u0430.\n * @en Fast header merge mutating the base object.\n * @param base - Base headers object (mutated).\n * @param override - Optional headers to overlay.\n * @returns The mutated base headers object.\n */\nexport const mergeHeadersFast = (\n base: Record<string, string | string[]>,\n override?: Record<string, string | string[]>,\n): Record<string, string | string[]> => {\n if (!override) return base;\n\n let hasOverride = false;\n for (const _ in override) {\n hasOverride = true;\n break;\n }\n if (!hasOverride) return base;\n\n for (const key in override) {\n if (Object.prototype.hasOwnProperty.call(override, key)) {\n base[key] = override[key]!;\n }\n }\n return base;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["CURRENT_RUNTIME", "RAW_CACHE", "TEXT_CACHE", "JSON_CACHE", "STATIC_DECODER", "STATIC_ENCODER", "EMPTY_HEADERS", "isReadableStream", "value", "isBlob", "body", "obj", "proto", "target", "key", "rawResponse", "buf", "bunBody", "cloned", "b1", "b2", "RESPONSE_POOL_MAX", "res", "base", "override", "hasOverride", "_"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"retryUtils.d.ts","sourceRoot":"","sources":["../../src/utils/retryUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAO7E;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAM/E"}
1
+ {"version":3,"file":"retryUtils.d.ts","sourceRoot":"","sources":["../../src/utils/retryUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAO7E;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC5D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAM/E"}
@@ -1,55 +1,2 @@
1
- /**
2
- * @ru Коды статуса HTTP, по которым повторные попытки выполняются по умолчанию.
3
- * @en Default HTTP status codes that trigger retries when no explicit codes are provided.
4
- */
5
- const DEFAULT_RETRY_STATUS_CODES = new Set([502, 503, 504]);
6
- /**
7
- * @ru Вычисляет задержку перед повторной попыткой с экспоненциальной задержкой и возможным джиттером.
8
- * @en Calculates the delay before a retry using exponential backoff and optional jitter.
9
- */
10
- export function calcDelay(attempt, retryOptions) {
11
- const { baseDelay = 1000, maxDelay = 10000, jitter = true } = retryOptions;
12
- const safeAttempt = Math.min(attempt, 31);
13
- const base = Math.min(baseDelay * Math.pow(2, safeAttempt), maxDelay);
14
- if (!jitter)
15
- return base;
16
- const jittered = base * (0.75 + Math.random() * 0.5);
17
- return Math.min(Math.max(0, jittered), maxDelay);
18
- }
19
- /**
20
- * @ru Пытается освободить ресурсы тела ответа, не дожидаясь полного потребления. Поддерживает методы dump, resume, destroy.
21
- * @en Attempts to release response body resources without fully consuming it. Supports dump, resume, destroy methods.
22
- */
23
- export async function drainBody(body) {
24
- if (!body || typeof body !== "object")
25
- return;
26
- try {
27
- const stream = body;
28
- if (typeof stream.dump === "function") {
29
- await stream.dump();
30
- return;
31
- }
32
- if (typeof stream.destroy === "function") {
33
- stream.destroy();
34
- return;
35
- }
36
- if (typeof stream.resume === "function") {
37
- stream.resume();
38
- }
39
- }
40
- catch {
41
- //
42
- }
43
- }
44
- /**
45
- * @ru Определяет, следует ли выполнить повторную попытку для данного кода статуса на основе настроек.
46
- * @en Determines whether to retry for the given status code based on retry options.
47
- */
48
- export function shouldRetry(status, retryOptions) {
49
- const codes = retryOptions.retryStatusCodes;
50
- if (codes !== undefined && codes.length > 0) {
51
- return codes.includes(status);
52
- }
53
- return DEFAULT_RETRY_STATUS_CODES.has(status);
54
- }
55
- //# sourceMappingURL=retryUtils.js.map
1
+ "use strict";const u=new Set([502,503,504]);export function calcDelay(e,t){const{baseDelay:n=1e3,maxDelay:r=1e4,jitter:o=!0}=t,c=Math.min(e,31),a=Math.min(n*Math.pow(2,c),r);if(!o)return a;const i=a*(.75+Math.random()*.5);return Math.min(Math.max(0,i),r)}export async function drainBody(e){if(!(!e||typeof e!="object"))try{const t=e;if(typeof t.dump=="function"){await t.dump();return}if(typeof t.destroy=="function"){t.destroy();return}if(typeof t.resume=="function"){t.resume();return}if(typeof t.cancel=="function"){await t.cancel();return}typeof t.getReader=="function"&&t.getReader().cancel()}catch{}}export function shouldRetry(e,t){const n=t.retryStatusCodes;return n!==void 0?n.length>0&&n.includes(e):u.has(e)}
2
+ //# sourceMappingURL=retryUtils.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"retryUtils.js","sourceRoot":"","sources":["../../src/utils/retryUtils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,YAA0B;IACnE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAa;IAC3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAA+B,CAAC;QAE/C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACtC,MAAO,MAAM,CAAC,IAA4B,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,OAAsB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,CAAC,MAAqB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,EAAE;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,YAA0B;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/retryUtils.ts"],
4
+ "sourcesContent": ["import type { RetryOptions } from \"@hyperttp/types\";\n\n/**\n * @ru \u041A\u043E\u0434\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0430 HTTP, \u043F\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u044B\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E.\n * @en Default HTTP status codes that trigger retries when no explicit codes are provided.\n */\nconst DEFAULT_RETRY_STATUS_CODES = new Set<number>([502, 503, 504]);\n\n/**\n * @ru \u0412\u044B\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0443 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0439 \u043F\u043E\u043F\u044B\u0442\u043A\u043E\u0439 \u0441 \u044D\u043A\u0441\u043F\u043E\u043D\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u043E\u0439 \u0438 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u044B\u043C \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u043E\u043C.\n * @en Calculates the delay before a retry using exponential backoff and optional jitter.\n */\nexport function calcDelay(attempt: number, retryOptions: RetryOptions): number {\n const { baseDelay = 1000, maxDelay = 10000, jitter = true } = retryOptions;\n const safeAttempt = Math.min(attempt, 31);\n const base = Math.min(baseDelay * Math.pow(2, safeAttempt), maxDelay);\n if (!jitter) return base;\n const jittered = base * (0.75 + Math.random() * 0.5);\n return Math.min(Math.max(0, jittered), maxDelay);\n}\n\n/**\n * @ru \u041F\u044B\u0442\u0430\u0435\u0442\u0441\u044F \u043E\u0441\u0432\u043E\u0431\u043E\u0434\u0438\u0442\u044C \u0440\u0435\u0441\u0443\u0440\u0441\u044B \u0442\u0435\u043B\u0430 \u043E\u0442\u0432\u0435\u0442\u0430, \u043D\u0435 \u0434\u043E\u0436\u0438\u0434\u0430\u044F\u0441\u044C \u043F\u043E\u043B\u043D\u043E\u0433\u043E \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u044F. \u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043C\u0435\u0442\u043E\u0434\u044B dump, resume, destroy.\n * @en Attempts to release response body resources without fully consuming it. Supports dump, resume, destroy methods.\n */\nexport async function drainBody(body: unknown): Promise<void> {\n if (!body || typeof body !== \"object\") return;\n try {\n const stream = body as Record<string, unknown>;\n\n if (typeof stream.dump === \"function\") {\n await (stream.dump as () => Promise<void>)();\n return;\n }\n\n if (typeof stream.destroy === \"function\") {\n (stream.destroy as () => void)();\n return;\n }\n\n if (typeof stream.resume === \"function\") {\n (stream.resume as () => void)();\n return;\n }\n\n if (typeof stream.cancel === \"function\") {\n await (stream.cancel as () => Promise<void>)();\n return;\n }\n\n if (typeof stream.getReader === \"function\") {\n const reader = (stream as unknown as ReadableStream).getReader();\n reader.cancel();\n }\n } catch {\n //\n }\n}\n\n/**\n * @ru \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u0443\u044E \u043F\u043E\u043F\u044B\u0442\u043A\u0443 \u0434\u043B\u044F \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u0434\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n * @en Determines whether to retry for the given status code based on retry options.\n */\nexport function shouldRetry(status: number, retryOptions: RetryOptions): boolean {\n const codes = retryOptions.retryStatusCodes;\n if (codes !== undefined) {\n return codes.length > 0 && codes.includes(status);\n }\n return DEFAULT_RETRY_STATUS_CODES.has(status);\n}\n"],
5
+ "mappings": "aAMA,MAAMA,EAA6B,IAAI,IAAY,CAAC,IAAK,IAAK,GAAG,CAAC,EAM5D,gBAAU,UAAUC,EAAiBC,EAA0B,CACnE,KAAM,CAAE,UAAAC,EAAY,IAAM,SAAAC,EAAW,IAAO,OAAAC,EAAS,EAAI,EAAKH,EACxDI,EAAc,KAAK,IAAIL,EAAS,EAAE,EAClCM,EAAO,KAAK,IAAIJ,EAAY,KAAK,IAAI,EAAGG,CAAW,EAAGF,CAAQ,EACpE,GAAI,CAACC,EAAQ,OAAOE,EACpB,MAAMC,EAAWD,GAAQ,IAAO,KAAK,OAAM,EAAK,IAChD,OAAO,KAAK,IAAI,KAAK,IAAI,EAAGC,CAAQ,EAAGJ,CAAQ,CACjD,CAMA,sBAAsB,UAAUK,EAAa,CAC3C,GAAI,GAACA,GAAQ,OAAOA,GAAS,UAC7B,GAAI,CACF,MAAMC,EAASD,EAEf,GAAI,OAAOC,EAAO,MAAS,WAAY,CACrC,MAAOA,EAAO,KAA4B,EAC1C,MACF,CAEA,GAAI,OAAOA,EAAO,SAAY,WAAY,CACvCA,EAAO,QAAsB,EAC9B,MACF,CAEA,GAAI,OAAOA,EAAO,QAAW,WAAY,CACtCA,EAAO,OAAqB,EAC7B,MACF,CAEA,GAAI,OAAOA,EAAO,QAAW,WAAY,CACvC,MAAOA,EAAO,OAA8B,EAC5C,MACF,CAEI,OAAOA,EAAO,WAAc,YACdA,EAAqC,UAAS,EACvD,OAAM,CAEjB,MAAQ,CAER,CACF,CAMM,gBAAU,YAAYC,EAAgBT,EAA0B,CACpE,MAAMU,EAAQV,EAAa,iBAC3B,OAAIU,IAAU,OACLA,EAAM,OAAS,GAAKA,EAAM,SAASD,CAAM,EAE3CX,EAA2B,IAAIW,CAAM,CAC9C",
6
+ "names": ["DEFAULT_RETRY_STATUS_CODES", "attempt", "retryOptions", "baseDelay", "maxDelay", "jitter", "safeAttempt", "base", "jittered", "body", "stream", "status", "codes"]
7
+ }