@hyperttp/transport-bun 0.2.3 → 0.2.4

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/README.md CHANGED
@@ -1,25 +1,24 @@
1
1
  # BunTransport
2
2
 
3
- `BunTransport` is a network transport implementation for `HyperTransport`, designed to run in the **Bun runtime**.
3
+ `BunTransport` is a high-performance HTTP transport for the
4
+ [HyperTransport](https://github.com/IT-IF-OR) ecosystem, designed for the **Bun runtime**.
4
5
 
5
- It wraps `fetch` and adds:
6
+ It wraps native `fetch` and adds:
6
7
 
7
- - concurrency limiting
8
+ - concurrency limiting with FIFO queue
8
9
  - request timeouts via `AbortSignal`
9
- - automatic cookie handling
10
+ - automatic cookie handling with TTL and LRU eviction
11
+ - response caching for GET/HEAD requests
12
+ - stealth / fingerprint mimicry (JA3/JA4)
10
13
  - header normalization
11
14
  - `keepalive` support
12
- - access to Bun `tls` options
15
+ - TLS configuration (ciphers, `rejectUnauthorized`)
13
16
 
14
17
  ---
15
18
 
16
19
  ## Interface
17
20
 
18
21
  ```ts
19
- /**
20
- * @ru Общий интерфейс для реализации сетевых транспортов.
21
- * @en Unified interface for building runtime-specific network transports.
22
- */
23
22
  export interface HyperTransport {
24
23
  execute(req: TransportRequest): Promise<TransportResponse>;
25
24
  close?(): Promise<void>;
@@ -34,43 +33,65 @@ export interface HyperTransport {
34
33
  ## Features
35
34
 
36
35
  - `fetch`-based implementation with `signal` support
37
- - `redirect: "manual"`
38
36
  - automatic merging of cookies from responses and subsequent requests
39
- - cookie cache per domain
40
- - request concurrency limiting
37
+ - cookie cache per domain with configurable TTL
38
+ - response cache for GET/HEAD requests (optional, via `hcacher`)
39
+ - request concurrency limiting with FIFO queue
41
40
  - request timeout support
42
- - automatic `User-Agent` injection from config (if not provided manually)
41
+ - stealth mode: browser-like TLS fingerprint emulation (Chrome, Firefox, Safari, Edge)
42
+ - `baseUrl` support for relative URLs
43
43
  - compatibility with `TransportRequest` / `TransportResponse`
44
44
 
45
45
  ---
46
46
 
47
+ ## Benchmark
48
+
49
+ Benchmark results on **Bun 1.3.14** (20K requests, 200 concurrent, 60s duration):
50
+
51
+ ```text
52
+ Environment: linux 7.1.3-zen2-1-zen | Intel Core i5-8600K @ 3.60GHz
53
+ ```
54
+
55
+ | Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
56
+ | ---- | -------------- | ------ | -------- | -------- | -------- | -------- | ------ |
57
+ | 1 | bun-fetch | 25.92K | 7.65 ms | 7.69 ms | 10.41 ms | 14.00 ms | 0 |
58
+ | 2 | undici | 21.47K | 9.28 ms | 9.54 ms | 12.80 ms | 14.77 ms | 0 |
59
+ | 3 | @hyperttp/core | 14.70K | 13.53 ms | 12.03 ms | 17.36 ms | 19.72 ms | 0 |
60
+ | 4 | axios | 6.24K | 31.85 ms | 31.83 ms | 33.82 ms | 36.10 ms | 0 |
61
+
62
+ `BunTransport` (via `@hyperttp/core`) delivers **2.4x higher throughput** than `axios` with **2.3x lower latency** (p50).
63
+
64
+ ---
65
+
47
66
  ## Installation
48
67
 
49
68
  `BunTransport` is designed for Bun, so the project must run in the Bun runtime.
50
69
 
51
70
  ```bash
52
- bun install
71
+ bun add @hyperttp/transport-bun
53
72
  ```
54
73
 
74
+ Peer dependencies: `@hyperttp/types`, `hcacher`.
75
+
55
76
  ---
56
77
 
57
78
  ## Usage
58
79
 
59
80
  ```ts
60
- import { BunTransport } from "./BunTransport";
81
+ import { BunTransport } from "@hyperttp/transport-bun";
61
82
 
62
83
  const transport = new BunTransport({
84
+ baseUrl: "https://api.example.com",
63
85
  network: {
64
86
  timeout: 10_000,
65
87
  maxConcurrent: 32,
66
- userAgent: "Hyperttp/1.0",
67
88
  keepAliveTimeout: 30_000,
68
89
  rejectUnauthorized: true,
69
90
  },
70
91
  });
71
92
 
72
93
  const response = await transport.execute({
73
- url: "https://example.com",
94
+ url: "/users",
74
95
  method: "GET",
75
96
  headers: {},
76
97
  body: null,
@@ -84,54 +105,71 @@ console.log(await response.text());
84
105
 
85
106
  ## Configuration
86
107
 
87
- `BunTransport` reads configuration from `HttpClientOptions.network`.
108
+ `BunTransport` accepts a `BunTransportConfig` object:
109
+
110
+ ```ts
111
+ interface BunTransportConfig extends HttpClientOptions {
112
+ baseUrl?: string;
113
+ stealth?: StealthOptions;
114
+ }
115
+ ```
88
116
 
89
- Supported options:
117
+ ### Network options
90
118
 
91
119
  ```ts
92
120
  network?: {
93
121
  maxConcurrent?: number;
94
122
  timeout?: number;
95
- userAgent?: string;
96
123
  keepAliveTimeout?: number;
97
124
  rejectUnauthorized?: boolean;
125
+ cookieCache?: {
126
+ enabled?: boolean;
127
+ maxSize?: number;
128
+ ttl?: number;
129
+ };
130
+ cache?: {
131
+ enabled?: boolean;
132
+ maxSize?: number;
133
+ ttl?: number;
134
+ };
98
135
  }
99
136
  ```
100
137
 
101
- ### Option behavior
102
-
103
- - `maxConcurrent` — maximum number of concurrent active requests.
104
- - `timeout` — global request timeout in milliseconds.
105
- - `userAgent` — injected into `User-Agent` header if not explicitly set.
106
- - `keepAliveTimeout` — enables `keepalive` mode when provided.
107
- - `rejectUnauthorized` — passed to Bun `fetch` via `tls` configuration.
138
+ | Option | Description |
139
+ | -------------------- | ---------------------------------------------------------------------------------------------- |
140
+ | `maxConcurrent` | Maximum number of concurrent active requests (0 = unlimited) |
141
+ | `timeout` | Global request timeout in milliseconds (0 = no timeout) |
142
+ | `keepAliveTimeout` | Enables `keepalive` mode when provided |
143
+ | `rejectUnauthorized` | Passed to Bun `fetch` via `tls` configuration |
144
+ | `cookieCache` | Cookie cache settings: `enabled` (default true), `maxSize` (default 256), `ttl` (default 300s) |
145
+ | `cache` | Response cache settings for GET/HEAD: `enabled`, `maxSize` (default 256), `ttl` (default 30s) |
108
146
 
109
147
  ---
110
148
 
111
149
  ## Cookies
112
150
 
113
- The transport supports persistent cookie storage and reuse between requests.
151
+ The transport supports persistent cookie storage with TTL and LRU eviction, backed by `hcacher`.
114
152
 
115
153
  ### How it works
116
154
 
117
- 1. When the server returns `Set-Cookie`, cookies are stored per domain.
155
+ 1. When the server returns `Set-Cookie`, cookies are stored per domain with a TTL.
118
156
  2. On subsequent requests to the same domain, cookies are automatically attached to the `Cookie` header.
119
157
  3. If the user provides their own `Cookie` header, it is merged with stored cookies.
158
+ 4. Expired entries are evicted automatically (LRU).
120
159
 
121
160
  ### Example
122
161
 
123
162
  ```ts
124
163
  await transport.execute({
125
- url: "https://example.com/login",
164
+ url: "/login",
126
165
  method: "POST",
127
- headers: {
128
- "Content-Type": "application/json",
129
- },
166
+ headers: { "Content-Type": "application/json" },
130
167
  body: JSON.stringify({ login: "demo", password: "secret" }),
131
168
  });
132
169
 
170
+ // Cookies from /login are automatically sent
133
171
  const res = await transport.execute({
134
- url: "https://example.com/profile",
172
+ url: "/profile",
135
173
  method: "GET",
136
174
  headers: {},
137
175
  body: null,
@@ -140,6 +178,26 @@ const res = await transport.execute({
140
178
 
141
179
  ---
142
180
 
181
+ ## Response caching
182
+
183
+ When `network.cache` is configured, GET and HEAD requests are cached automatically with TTL and LRU eviction.
184
+
185
+ ```ts
186
+ const transport = new BunTransport({
187
+ network: {
188
+ cache: {
189
+ enabled: true,
190
+ maxSize: 512,
191
+ ttl: 60_000, // 1 minute
192
+ },
193
+ },
194
+ });
195
+ ```
196
+
197
+ Cached responses are returned instantly on repeated requests to the same URL within the TTL window.
198
+
199
+ ---
200
+
143
201
  ## Concurrency limiting
144
202
 
145
203
  If `maxConcurrent > 0`, incoming requests are queued until a slot becomes available.
@@ -164,16 +222,45 @@ If a request is aborted, the signal reason (or a default `AbortError`) is thrown
164
222
 
165
223
  ---
166
224
 
225
+ ## Stealth / fingerprint mimicry
226
+
227
+ `BunTransport` supports browser-like TLS fingerprint emulation to bypass fingerprint-based protections (JA3/JA4).
228
+
229
+ ### Supported profiles
230
+
231
+ | Profile | TLS ciphers | sec-ch-ua | User-Agent |
232
+ | ------- | ------------- | ------------- | ----------- |
233
+ | chrome | Chrome suite | Chrome 126 | Chrome 126 |
234
+ | firefox | Firefox suite | Firefox-style | Firefox 126 |
235
+ | safari | Safari suite | — | Safari 17.0 |
236
+ | edge | Chrome suite | Chrome 126 | Edge 126 |
237
+
238
+ ### Example
239
+
240
+ ```ts
241
+ const transport = new BunTransport({
242
+ stealth: {
243
+ fingerprint: "chrome",
244
+ },
245
+ });
246
+ ```
247
+
248
+ Stealth presets are applied per-request. Manual headers always take priority over preset values.
249
+
250
+ ---
251
+
167
252
  ## Response API
168
253
 
169
- `BunTransportResponse` wraps the native `Response` and provides:
254
+ `execute()` returns a plain `TransportResponse` object:
170
255
 
171
- - `status`
172
- - `url`
173
- - `body`
174
- - `text()`
175
- - `json()`
176
- - `headers`
256
+ ```ts
257
+ interface TransportResponse {
258
+ status: number;
259
+ url: string;
260
+ headers: Record<string, string | string[]>;
261
+ body: TransportResponsePayload | null;
262
+ }
263
+ ```
177
264
 
178
265
  ### Body behavior
179
266
 
@@ -185,22 +272,15 @@ If `body` exists, a `dump()` method may be attached to it, allowing safe stream
185
272
 
186
273
  ### `fastGetHostname(url: string): string`
187
274
 
188
- Fast hostname extraction from a URL without full parsing.
189
-
190
- ### `normalizeHeaderValue(name, value)`
191
-
192
- Normalizes header values:
193
-
194
- - `Cookie` headers are joined using `;`
195
- - other arrays are joined using `,`
275
+ Fast hostname extraction from a URL with single-entry LRU cache. Handles `//`, `scheme://`, `user@host`, and port stripping.
196
276
 
197
- ### `normalizeCookieHeader(value)`
277
+ ### `resolveUrl(baseUrl: string, url: string): string`
198
278
 
199
- Converts cookie header values into a normalized string.
279
+ Resolves a relative URL against a `baseUrl`. Absolute URLs are returned as-is.
200
280
 
201
- ### `throwIfAborted(signal)`
281
+ ### `normalizeHeaders(headers): Record<string, string>`
202
282
 
203
- Checks whether an operation has been aborted and throws if so.
283
+ Normalizes headers: lowercases all keys, joins arrays (`;` for `cookie`, `,` for others).
204
284
 
205
285
  ---
206
286
 
@@ -216,8 +296,10 @@ await transport.destroy();
216
296
  Both methods clear:
217
297
 
218
298
  - pending request queue
219
- - cookie jar
220
- - cookie cache
299
+ - cookie store
300
+ - cookie string cache
301
+ - response cache
302
+ - active request counter
221
303
 
222
304
  ---
223
305
 
@@ -226,7 +308,7 @@ Both methods clear:
226
308
  - Designed specifically for the **Bun runtime**, not Node.js.
227
309
  - Uses `redirect: "manual"` for fetch requests.
228
310
  - Minimal interference with request data; only headers, cookies, and signals are normalized or extended.
229
- - `TransportRequest.body` is treated as `BodyInit | null`.
311
+ - `TransportRequest.body` is passed directly as `BodyInit | null`.
230
312
 
231
313
  ---
232
314
 
package/bun.d.ts CHANGED
@@ -13,25 +13,20 @@ export declare class BunTransport implements HyperTransport {
13
13
  */
14
14
  config: BunTransportConfig;
15
15
  /**
16
- * @ru Хранилище cookies по доменам (domain -> name -> value).
17
- * @en Cookie storage by domain (domain -> name -> value).
16
+ * @ru Кэш cookies по доменам с TTL и LRU-эвикцией (domain -> name -> value).
17
+ * @en Cookie cache by domain with TTL and LRU eviction (domain -> name -> value).
18
18
  */
19
- private cookieJar;
19
+ private readonly cookieStore;
20
20
  /**
21
- * @ru Список всех доменов, для которых хранятся cookies.
22
- * @en List of all domains for which cookies are stored.
21
+ * @ru Кэш сгенерированных строк cookies с TTL.
22
+ * @en Cache of generated cookie strings with TTL.
23
23
  */
24
- private readonly cookieDomains;
24
+ private readonly cookieStringCache;
25
25
  /**
26
- * @ru Кэш сгенерированных строк cookies для быстрого доступа.
27
- * @en Cache of generated cookie strings for fast access.
26
+ * @ru Опциональный кэш HTTP-ответов для GET/HEAD запросов.
27
+ * @en Optional HTTP response cache for GET/HEAD requests.
28
28
  */
29
- private cookieCache;
30
- /**
31
- * @ru Текущий размер кэша cookies.
32
- * @en Current size of the cookie cache.
33
- */
34
- private cookieCacheSize;
29
+ private readonly responseCache?;
35
30
  /**
36
31
  * @ru Счётчик активных (выполняющихся) запросов.
37
32
  * @en Counter of active (in-flight) requests.
@@ -100,6 +95,11 @@ export declare class BunTransport implements HyperTransport {
100
95
  * @returns Semicolon-separated cookie string.
101
96
  */
102
97
  private getCookiesForDomain;
98
+ /**
99
+ * @ru Возвращает все домены из cookie store.
100
+ * @en Returns all domains from the cookie store.
101
+ */
102
+ private getAllCookieDomains;
103
103
  /**
104
104
  * @ru Сохраняет cookies из заголовков Set-Cookie ответа в cookie jar.
105
105
  * @en Stores cookies from response Set-Cookie headers into the cookie jar.
package/bun.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAgI3D;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,cAAc;IACjD;;;OAGG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,SAAS,CAA+D;IAEhF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;;OAGG;IACH,OAAO,CAAC,WAAW,CAA+C;IAElE;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAK;IAE5B;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAK;IAE3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAmD;IAE3E;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAK;IAE3B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAK;IAErB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAS;IAE3B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAkE;IAEpF;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAKtC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;OAMG;IACU,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoHvE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAwDpB;;;;;;OAMG;YACW,WAAW;IAmBzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
1
+ {"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAgI3D;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,cAAc;IACjD;;;OAGG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IAEzD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAkC;IAEjE;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAK;IAE3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAmD;IAE3E;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAK;IAE3B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAK;IAErB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAS;IAE3B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAkE;IAEpF;;;;OAIG;IACH,YAAY,MAAM,EAAE,kBAAkB,EA6BrC;IAED;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;OAMG;IACU,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsItE;IAED;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA8CpB;;;;;;OAMG;YACW,WAAW;IAmBzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlC;IAED;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;CACF"}
package/bun.js CHANGED
@@ -1,4 +1,5 @@
1
- import { fastGetHostname, getAbortError, normalizeBody, normalizeHeaders, resolveUrl, TIMEOUT_ERROR, } from "./utils/helpers.js";
1
+ import { fastGetHostname, getAbortError, normalizeHeaders, resolveUrl, TIMEOUT_ERROR, } from "./utils/helpers.js";
2
+ import { CacheManager } from "hcacher";
2
3
  /**
3
4
  * @ru Статические пресеты браузерных заголовков для маскировки под реальных пользователей.
4
5
  * Используются stealth-режимом для обхода fingerprint-защит.
@@ -115,25 +116,20 @@ export class BunTransport {
115
116
  */
116
117
  config;
117
118
  /**
118
- * @ru Хранилище cookies по доменам (domain -> name -> value).
119
- * @en Cookie storage by domain (domain -> name -> value).
119
+ * @ru Кэш cookies по доменам с TTL и LRU-эвикцией (domain -> name -> value).
120
+ * @en Cookie cache by domain with TTL and LRU eviction (domain -> name -> value).
120
121
  */
121
- cookieJar = Object.create(null);
122
+ cookieStore;
122
123
  /**
123
- * @ru Список всех доменов, для которых хранятся cookies.
124
- * @en List of all domains for which cookies are stored.
124
+ * @ru Кэш сгенерированных строк cookies с TTL.
125
+ * @en Cache of generated cookie strings with TTL.
125
126
  */
126
- cookieDomains = [];
127
+ cookieStringCache;
127
128
  /**
128
- * @ru Кэш сгенерированных строк cookies для быстрого доступа.
129
- * @en Cache of generated cookie strings for fast access.
129
+ * @ru Опциональный кэш HTTP-ответов для GET/HEAD запросов.
130
+ * @en Optional HTTP response cache for GET/HEAD requests.
130
131
  */
131
- cookieCache = Object.create(null);
132
- /**
133
- * @ru Текущий размер кэша cookies.
134
- * @en Current size of the cookie cache.
135
- */
136
- cookieCacheSize = 0;
132
+ responseCache;
137
133
  /**
138
134
  * @ru Счётчик активных (выполняющихся) запросов.
139
135
  * @en Counter of active (in-flight) requests.
@@ -181,6 +177,28 @@ export class BunTransport {
181
177
  */
182
178
  constructor(config) {
183
179
  this.config = config;
180
+ const cookieCfg = config?.network?.cookieCache;
181
+ this.cookieStore = new CacheManager({
182
+ enabled: cookieCfg?.enabled ?? true,
183
+ maxSize: cookieCfg?.maxSize ?? 256,
184
+ ttl: cookieCfg?.ttl ?? 300_000,
185
+ touchOnGet: true,
186
+ });
187
+ this.cookieStringCache = new CacheManager({
188
+ enabled: cookieCfg?.enabled ?? true,
189
+ maxSize: cookieCfg?.maxSize ?? 1024,
190
+ ttl: cookieCfg?.ttl ?? 60_000,
191
+ touchOnGet: true,
192
+ });
193
+ const cacheCfg = config?.network?.cache;
194
+ if (cacheCfg?.enabled !== false && (cacheCfg?.maxSize || cacheCfg?.ttl)) {
195
+ this.responseCache = new CacheManager({
196
+ enabled: cacheCfg?.enabled ?? true,
197
+ maxSize: cacheCfg?.maxSize ?? 256,
198
+ ttl: cacheCfg?.ttl ?? 30_000,
199
+ touchOnGet: true,
200
+ });
201
+ }
184
202
  this.invalidateConfig();
185
203
  }
186
204
  /**
@@ -208,6 +226,8 @@ export class BunTransport {
208
226
  const timeoutMs = this._timeout;
209
227
  let signal = req.signal;
210
228
  let timer = null;
229
+ let abortHandler = null;
230
+ let originalSignal = null;
211
231
  if (timeoutMs > 0) {
212
232
  if (!signal) {
213
233
  signal = AbortSignal.timeout(timeoutMs);
@@ -217,24 +237,49 @@ export class BunTransport {
217
237
  }
218
238
  else {
219
239
  const controller = new AbortController();
220
- const originalSignal = signal;
221
- originalSignal.addEventListener("abort", () => controller.abort(originalSignal.reason), {
222
- once: true,
223
- });
240
+ originalSignal = signal;
241
+ abortHandler = () => controller.abort(originalSignal.reason);
242
+ originalSignal.addEventListener("abort", abortHandler);
224
243
  timer = setTimeout(() => controller.abort(TIMEOUT_ERROR), timeoutMs);
225
244
  signal = controller.signal;
226
245
  }
227
246
  }
228
- if (signal?.aborted)
247
+ if (signal?.aborted) {
248
+ if (timer !== null)
249
+ clearTimeout(timer);
250
+ if (originalSignal && abortHandler)
251
+ originalSignal.removeEventListener("abort", abortHandler);
229
252
  throw getAbortError(signal);
253
+ }
230
254
  if (maxConcurrent > 0 && this.activeRequests >= maxConcurrent) {
231
- await this.waitForSlot(signal);
232
- if (signal?.aborted)
255
+ try {
256
+ await this.waitForSlot(signal);
257
+ }
258
+ catch (err) {
259
+ if (timer !== null)
260
+ clearTimeout(timer);
261
+ if (originalSignal && abortHandler)
262
+ originalSignal.removeEventListener("abort", abortHandler);
263
+ throw err;
264
+ }
265
+ if (signal?.aborted) {
266
+ if (timer !== null)
267
+ clearTimeout(timer);
268
+ if (originalSignal && abortHandler)
269
+ originalSignal.removeEventListener("abort", abortHandler);
233
270
  throw getAbortError(signal);
271
+ }
234
272
  }
235
273
  this.activeRequests++;
236
274
  try {
237
275
  const fullUrl = resolveUrl(this.config?.baseUrl ?? "", req.url);
276
+ if (this.responseCache && (req.method === "GET" || req.method === "HEAD") && !req.body) {
277
+ const cacheKey = `${req.method}:${fullUrl}`;
278
+ const cached = this.responseCache.get(cacheKey);
279
+ if (cached !== undefined) {
280
+ return cached;
281
+ }
282
+ }
238
283
  let headers = normalizeHeaders(req.headers);
239
284
  const requestDomain = fastGetHostname(fullUrl);
240
285
  const activeCookies = this.getCookiesForDomain(requestDomain);
@@ -249,11 +294,11 @@ export class BunTransport {
249
294
  }
250
295
  const init = {
251
296
  method: req.method,
252
- redirect: "manual",
297
+ redirect: req.redirect ?? "manual",
253
298
  headers: headers,
254
299
  };
255
300
  if (req.body !== undefined)
256
- init.body = normalizeBody(req.body);
301
+ init.body = req.body;
257
302
  if (signal !== undefined)
258
303
  init.signal = signal;
259
304
  if (this._keepalive)
@@ -270,21 +315,8 @@ export class BunTransport {
270
315
  if (requestTlsConfig !== null)
271
316
  init.tls = requestTlsConfig;
272
317
  const nativeRes = await fetch(fullUrl, init);
273
- if (timer !== null) {
274
- clearTimeout(timer);
275
- timer = null;
276
- }
277
318
  this.storeCookies(fullUrl, nativeRes.headers);
278
319
  const bodyStream = nativeRes.body;
279
- if (bodyStream !== null && typeof bodyStream.dump !== "function") {
280
- Object.defineProperty(bodyStream, "dump", {
281
- value: function () {
282
- return this.cancel();
283
- },
284
- enumerable: false,
285
- configurable: true,
286
- });
287
- }
288
320
  const responseHeaders = (() => {
289
321
  const resH = Object.create(null);
290
322
  nativeRes.headers.forEach((value, key) => {
@@ -292,19 +324,25 @@ export class BunTransport {
292
324
  });
293
325
  return resH;
294
326
  })();
295
- return {
327
+ const response = {
296
328
  status: nativeRes.status,
297
329
  url: nativeRes.url,
298
330
  body: bodyStream,
299
331
  headers: responseHeaders,
300
332
  };
301
- }
302
- catch (err) {
303
- if (timer !== null)
304
- clearTimeout(timer);
305
- throw err;
333
+ if (this.responseCache && (req.method === "GET" || req.method === "HEAD") && !req.body) {
334
+ const cacheKey = `${req.method}:${fullUrl}`;
335
+ this.responseCache.set(cacheKey, response);
336
+ }
337
+ return response;
306
338
  }
307
339
  finally {
340
+ if (timer !== null) {
341
+ clearTimeout(timer);
342
+ }
343
+ if (originalSignal && abortHandler) {
344
+ originalSignal.removeEventListener("abort", abortHandler);
345
+ }
308
346
  this.activeRequests--;
309
347
  if (maxConcurrent > 0)
310
348
  this.releaseSlot();
@@ -317,18 +355,16 @@ export class BunTransport {
317
355
  * @returns Semicolon-separated cookie string.
318
356
  */
319
357
  getCookiesForDomain(requestDomain) {
320
- const cached = this.cookieCache[requestDomain];
358
+ const cached = this.cookieStringCache.get(requestDomain);
321
359
  if (cached !== undefined)
322
360
  return cached;
323
361
  let result = "";
324
- const domainsLen = this.cookieDomains.length;
325
- for (let i = 0; i < domainsLen; i++) {
326
- const storedDomain = this.cookieDomains[i];
327
- if (!storedDomain)
328
- continue;
362
+ const domains = this.cookieStore.size > 0 ? this.getAllCookieDomains() : [];
363
+ for (let i = 0; i < domains.length; i++) {
364
+ const storedDomain = domains[i];
329
365
  if (requestDomain !== storedDomain && !requestDomain.endsWith("." + storedDomain))
330
366
  continue;
331
- const cookiesMap = this.cookieJar[storedDomain];
367
+ const cookiesMap = this.cookieStore.get(storedDomain);
332
368
  if (!cookiesMap)
333
369
  continue;
334
370
  for (const key in cookiesMap) {
@@ -337,14 +373,21 @@ export class BunTransport {
337
373
  result += key + "=" + cookiesMap[key];
338
374
  }
339
375
  }
340
- if (this.cookieCacheSize > 1024) {
341
- this.cookieCache = Object.create(null);
342
- this.cookieCacheSize = 0;
343
- }
344
- this.cookieCache[requestDomain] = result;
345
- this.cookieCacheSize++;
376
+ this.cookieStringCache.set(requestDomain, result);
346
377
  return result;
347
378
  }
379
+ /**
380
+ * @ru Возвращает все домены из cookie store.
381
+ * @en Returns all domains from the cookie store.
382
+ */
383
+ getAllCookieDomains() {
384
+ const domains = [];
385
+ const store = this.cookieStore.storage;
386
+ for (const key of store.keys()) {
387
+ domains.push(key);
388
+ }
389
+ return domains;
390
+ }
348
391
  /**
349
392
  * @ru Сохраняет cookies из заголовков Set-Cookie ответа в cookie jar.
350
393
  * @en Stores cookies from response Set-Cookie headers into the cookie jar.
@@ -358,7 +401,6 @@ export class BunTransport {
358
401
  if (setCookies.length === 0)
359
402
  return;
360
403
  const defaultDomain = fastGetHostname(requestUrl);
361
- let hasChanges = false;
362
404
  for (let i = 0; i < setCookies.length; i++) {
363
405
  const rawCookie = setCookies[i];
364
406
  if (!rawCookie)
@@ -386,18 +428,10 @@ export class BunTransport {
386
428
  }
387
429
  }
388
430
  }
389
- if (this.cookieJar[domain] === undefined) {
390
- this.cookieJar[domain] = Object.create(null);
391
- if (!this.cookieDomains.includes(domain)) {
392
- this.cookieDomains.push(domain);
393
- }
394
- }
395
- this.cookieJar[domain][name] = value;
396
- hasChanges = true;
397
- }
398
- if (hasChanges) {
399
- this.cookieCache = Object.create(null);
400
- this.cookieCacheSize = 0;
431
+ const existing = this.cookieStore.get(domain) ?? Object.create(null);
432
+ existing[name] = value;
433
+ this.cookieStore.set(domain, existing);
434
+ this.cookieStringCache.delete(domain);
401
435
  }
402
436
  }
403
437
  /**
@@ -452,10 +486,9 @@ export class BunTransport {
452
486
  this.concurrencyQueue = Object.create(null);
453
487
  this.queueHead = 0;
454
488
  this.queueTail = 0;
455
- this.cookieJar = Object.create(null);
456
- this.cookieDomains.length = 0;
457
- this.cookieCache = Object.create(null);
458
- this.cookieCacheSize = 0;
489
+ this.cookieStore.clear();
490
+ this.cookieStringCache.clear();
491
+ this.responseCache?.clear();
459
492
  this.activeRequests = 0;
460
493
  }
461
494
  /**
package/bun.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperttp/transport-bun",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "High-performance HTTP transport for Bun with native fetch optimizations",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -27,7 +27,8 @@
27
27
  "url": "git+https://github.com/IT-IF-OR/hyperttp-transport-bun.git"
28
28
  },
29
29
  "peerDependencies": {
30
- "@hyperttp/types": "^0.2.3"
30
+ "@hyperttp/types": "^0.2.5",
31
+ "hcacher": "^0.1.0"
31
32
  },
32
33
  "private": false
33
34
  }
@@ -27,13 +27,6 @@ export declare const TIMEOUT_ERROR: DOMException;
27
27
  * @returns The abort error or reason.
28
28
  */
29
29
  export declare function getAbortError(signal?: AbortSignal): unknown;
30
- /**
31
- * @ru Нормализует тело запроса в формат, совместимый с fetch.
32
- * @en Normalizes request body to fetch-compatible format.
33
- * @param body - The request body to normalize.
34
- * @returns The normalized body or undefined.
35
- */
36
- export declare function normalizeBody(body: TransportRequest["body"]): BodyInit | undefined;
37
30
  /**
38
31
  * @ru Нормализует заголовки, переводя все ключи в нижний регистр (lowercase).
39
32
  * @en Normalizes headers by transforming all keys into lowercase layout.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiDnD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,cAA+D,CAAC;AACxF,eAAO,MAAM,aAAa,cAGzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,SAAS,CAelF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoC7F"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiDnD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,cAA+D,CAAC;AACxF,eAAO,MAAM,aAAa,cAGzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoC7F"}
package/utils/helpers.js CHANGED
@@ -89,35 +89,6 @@ export const TIMEOUT_ERROR = new DOMException("The operation was aborted due to
89
89
  export function getAbortError(signal) {
90
90
  return signal?.reason ?? ABORT_ERROR;
91
91
  }
92
- /**
93
- * @ru Нормализует тело запроса в формат, совместимый с fetch.
94
- * @en Normalizes request body to fetch-compatible format.
95
- * @param body - The request body to normalize.
96
- * @returns The normalized body or undefined.
97
- */
98
- export function normalizeBody(body) {
99
- if (body == null)
100
- return undefined;
101
- if (typeof body === "string")
102
- return body;
103
- if (body instanceof Uint8Array)
104
- return body;
105
- if (body instanceof ArrayBuffer)
106
- return body;
107
- if (ArrayBuffer.isView(body))
108
- return body;
109
- if (typeof ReadableStream !== "undefined" && body instanceof ReadableStream)
110
- return body;
111
- if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams)
112
- return body;
113
- if (typeof FormData !== "undefined" && body instanceof FormData)
114
- return body;
115
- if (typeof Blob !== "undefined" && body instanceof Blob)
116
- return body;
117
- if (typeof body === "object")
118
- return JSON.stringify(body);
119
- return String(body);
120
- }
121
92
  /**
122
93
  * @ru Нормализует заголовки, переводя все ключи в нижний регистр (lowercase).
123
94
  * @en Normalizes headers by transforming all keys into lowercase layout.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}