@hyperttp/core 1.4.0 → 1.4.3
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/Core/HyperCore.d.ts.map +1 -1
- package/Core/HyperCore.js +4 -0
- package/Core/HyperCore.js.map +1 -1
- package/README.md +272 -134
- package/package.json +1 -1
- package/utils/response.d.ts +5 -78
- package/utils/response.d.ts.map +1 -1
- package/utils/response.js +15 -86
- package/utils/response.js.map +1 -1
package/Core/HyperCore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperCore.d.ts","sourceRoot":"","sources":["../../src/Core/HyperCore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EAEjB,WAAW,EACX,eAAe,EACf,YAAY,EAEZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAiCzB;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,UAAU;IACnC,MAAM,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;OAKG;gBACS,MAAM,GAAE,iBAAiC,EAAE,SAAS,CAAC,EAAE,cAAc;IAqBjF;;;;OAIG;IACU,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhD;;;;;;;;OAQG;IACU,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperCore.d.ts","sourceRoot":"","sources":["../../src/Core/HyperCore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EAEjB,WAAW,EACX,eAAe,EACf,YAAY,EAEZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAiCzB;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,UAAU;IACnC,MAAM,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;OAKG;gBACS,MAAM,GAAE,iBAAiC,EAAE,SAAS,CAAC,EAAE,cAAc;IAqBjF;;;;OAIG;IACU,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhD;;;;;;;;OAQG;IACU,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAwDlF;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAqCrC;;;;;;;OAOG;IACI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAI5E;;;;;;;;OAQG;IACI,IAAI,CAAC,CAAC,GAAG,OAAO,EACrB,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,WAAW;IAKtB;;;;;;;;OAQG;IACI,GAAG,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,WAAW;IAKtB;;;;;;;;OAQG;IACI,KAAK,CAAC,CAAC,GAAG,OAAO,EACtB,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,WAAW;IAKtB;;;;;;;OAOG;IACI,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAI/E;;;;;;;;OAQG;IACI,OAAO,CAAC,CAAC,GAAG,OAAO,EACxB,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,WAAW;IAKtB;;;;;;OAMG;IACI,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAIhE;;;;;;OAMG;IACI,MAAM,CACX,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAMnC;;;;;;;;OAQG;IACI,UAAU,CAAC,CAAC,GAAG,OAAO,EAC3B,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAM7B;;;;;OAKG;IACI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAW7D;;;;;OAKG;IACI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAI7D;;;;;OAKG;IACI,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;;;;;;OAOG;IACU,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAOhG;;;;;;OAMG;IACU,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxF;;;;;;OAMG;IACU,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF;;;;;;;OAOG;YACW,mBAAmB;IA8BjC;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU;IA4DlB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAkBlB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAOjB"}
|
package/Core/HyperCore.js
CHANGED
|
@@ -87,7 +87,11 @@ export class HyperCore {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
const transport = this.transportManager.getSync() ?? (await this.transportReady);
|
|
90
|
+
const networkStart = performance.now();
|
|
90
91
|
let rawResponse = await transport.execute(req);
|
|
92
|
+
const networkMs = performance.now() - networkStart;
|
|
93
|
+
const meta = (req.meta ??= {});
|
|
94
|
+
meta.timings = { ...meta.timings, networkMs };
|
|
91
95
|
if (this.hasResponseDataPlugins) {
|
|
92
96
|
rawResponse = await Promise.resolve(executeResponseDataPipeline(this.pipelines.responseData, rawResponse, this.pluginCtx));
|
|
93
97
|
}
|
package/Core/HyperCore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperCore.js","sourceRoot":"","sources":["../../src/Core/HyperCore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HyperCore.js","sourceRoot":"","sources":["../../src/Core/HyperCore.ts"],"names":[],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> English | [Русский](https://github.com/IT-IF-OR/hyperttp-core/tree/main/lang/ru)
|
|
4
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/@hyperttp/core)
|
|
6
|
+
[](https://www.npmjs.com/package/@hyperttp/core)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
|
|
5
10
|
---
|
|
6
11
|
|
|
7
12
|
## 🌐 Language
|
|
@@ -11,140 +16,73 @@
|
|
|
11
16
|
|
|
12
17
|
---
|
|
13
18
|
|
|
14
|
-
|
|
15
|
-
It is built as a highly optimized, thin core featuring an intelligent transport layer and an advanced
|
|
16
|
-
pipeline‑based plugin architecture.
|
|
17
|
-
|
|
18
|
-
## 🔥 Key Features
|
|
19
|
+
## 🔗 Quick Links
|
|
19
20
|
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
- **🔀 Intelligent Isomorphism:** Automatically switches between optimal underlying transports (Native Bun, Undici,
|
|
25
|
-
or Node.js native `http`) while maintaining a unified, clean API.
|
|
26
|
-
- **🔌 Multi-Stage Hooks & Pipelines:** Granular control over the request lifecycle with sorted hook priorities
|
|
27
|
-
and short-circuit capabilities.
|
|
28
|
-
- **🗜️ Transparent Decompression:** Automatic out-of-the-box handling of `gzip`, `deflate`, and `br` (Brotli)
|
|
29
|
-
content-encodings for both standard `Uint8Array` buffers and `ReadableStream` data.
|
|
30
|
-
- **💎 Prototype Preservation:** Safe internal mapping that respects and carries forward custom prototypes passed
|
|
31
|
-
via request configurations.
|
|
21
|
+
- 🏢 **Organization:** [github.com/IT-IF-OR](https://github.com/IT-IF-OR)
|
|
22
|
+
- 👤 **Author:** [github.com/dirold2](https://github.com/dirold2)
|
|
23
|
+
- 📦 **npm:** [npmjs.com/org/hyperttp](https://www.npmjs.com/org/hyperttp)
|
|
24
|
+
- 🚀 **High-level client:** [`hyperttp`](https://www.npmjs.com/package/hyperttp) (all plugins pre-wired)
|
|
32
25
|
|
|
33
26
|
---
|
|
34
27
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
1. **Request Pipeline (`onRequest`):** Intercepts configurations before execution. Supports **short-circuiting**—
|
|
40
|
-
if a hook returns a response, the actual network transport layer is bypassed.
|
|
41
|
-
2. **Transport Execution (`HyperTransport`):** The underlying engine (e.g., Undici, Bun) processes the low-level
|
|
42
|
-
socket request.
|
|
43
|
-
3. **Response Data Pipeline (`onResponseData`):** Transforms or intercepts raw transport responses directly before
|
|
44
|
-
mapping and extraction.
|
|
45
|
-
4. **Internal Processing:** Transparent decompression is applied to raw buffers or streams.
|
|
46
|
-
5. **Response Pipeline (`onResponse`):**
|
|
28
|
+
**@hyperttp/core** is the low-level, high-performance engine of the Hyperttp ecosystem.
|
|
29
|
+
It provides a thin, optimized HTTP core with an intelligent transport layer and an advanced
|
|
30
|
+
pipeline-based plugin architecture — the foundation upon which the feature-rich [`hyperttp`](https://www.npmjs.com/package/hyperttp) client is built.
|
|
47
31
|
|
|
48
|
-
|
|
49
|
-
- **Side Effects / Background:** Runs parallel processing or logging blocks if `plugin.mode === "background"`.
|
|
50
|
-
|
|
51
|
-
6. **Error Pipeline (`onError`):** Catches connection drops, invalid parses, or protocol errors, allowing plugins
|
|
52
|
-
to recover and gracefully fallback to alternative responses.
|
|
32
|
+
> 💡 **Looking for a batteries-included client?** Install [`hyperttp`](https://www.npmjs.com/package/hyperttp) instead — it wraps `@hyperttp/core` with caching, rate limiting, queueing, parsing, and more.
|
|
53
33
|
|
|
54
34
|
---
|
|
55
35
|
|
|
56
|
-
##
|
|
57
|
-
|
|
58
|
-
### Test Configuration
|
|
59
|
-
|
|
60
|
-
```txt
|
|
61
|
-
Requests 20000
|
|
62
|
-
Concurrency 200
|
|
63
|
-
Duration 20000
|
|
64
|
-
Timeout 60000 ms
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
To run your own suite:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
bun run bench.ts && npx tsx bench.ts
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Node.js v24.14.1 — UndiciTransport
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
npm install @hyperttp/transport-undici
|
|
79
|
-
```
|
|
36
|
+
## 🔥 Key Features
|
|
80
37
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
| 6 | ky | 6.44K | 30.97 ms | 28.38 ms | 36.48 ms | 64.38 ms | 0 |
|
|
89
|
-
| 7 | axios | 4.99K | 39.97 ms | 38.81 ms | 43.82 ms | 51.39 ms | 0 |
|
|
90
|
-
| 8 | node-fetch | 4.61K | 43.28 ms | 41.23 ms | 49.00 ms | 63.58 ms | 0 |
|
|
91
|
-
| 9 | got | 4.61K | 43.33 ms | 41.42 ms | 47.81 ms | 64.51 ms | 0 |
|
|
92
|
-
| 10 | superagent | 3.42K | 58.41 ms | 57.53 ms | 63.26 ms | 67.41 ms | 0 |
|
|
38
|
+
- **⚡ Zero-Overhead Hot Paths:** Fast header merging, response mapping, and object creation loops optimized for high-throughput environments. Object pooling for `InternalRequest` eliminates allocations in the hot path.
|
|
39
|
+
- **📍 LRU URL Caching:** Built-in string URL parsing cache (up to 512 entries) with automatic eviction to bypass repetitive `new URL()` overhead.
|
|
40
|
+
- **🔀 Intelligent Isomorphism:** Automatically switches between optimal underlying transports (Native Bun, Undici, or Node.js native `fetch`) while maintaining a unified, clean API.
|
|
41
|
+
- **🔌 Multi-Stage Hooks & Pipelines:** Granular control over the request lifecycle with sorted hook priorities and short-circuit capabilities.
|
|
42
|
+
- **🗜️ Transparent Decompression:** Automatic out-of-the-box handling of `gzip`, `deflate`, and `br` (Brotli) content-encodings for both standard `Uint8Array` buffers and `ReadableStream` data.
|
|
43
|
+
- **💎 Prototype Preservation:** Safe internal mapping that respects and carries forward custom prototypes passed via request configurations.
|
|
44
|
+
- **🦀 Rust-Powered Toolchain:** Built and linted with OXC (`oxlint` + `oxfmt`) for blazing-fast development cycles.
|
|
93
45
|
|
|
94
46
|
---
|
|
95
47
|
|
|
96
|
-
##
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
npm install @hyperttp/transport-bun
|
|
100
|
-
```
|
|
48
|
+
## 📦 Ecosystem Packages
|
|
101
49
|
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
| 6 | hyperttp | 12.87K | 15.52 ms | 13.52 ms | 21.09 ms | 22.00 ms | 0 |
|
|
110
|
-
| 7 | request | 8.56K | 23.31 ms | 22.74 ms | 25.36 ms | 28.64 ms | 0 |
|
|
111
|
-
| 8 | superagent | 8.36K | 23.90 ms | 23.72 ms | 25.51 ms | 27.55 ms | 0 |
|
|
112
|
-
| 9 | axios | 6.35K | 31.41 ms | 31.53 ms | 33.56 ms | 38.03 ms | 0 |
|
|
113
|
-
| 10 | got | 5.28K | 37.84 ms | 30.25 ms | 56.91 ms | 59.92 ms | 0 |
|
|
50
|
+
| Package | Description | Repository |
|
|
51
|
+
| ---------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------- |
|
|
52
|
+
| **`@hyperttp/core`** (you are here) | Low-level core with transport pipeline | [GitHub](https://github.com/IT-IF-OR/hyperttp-core) |
|
|
53
|
+
| [`@hyperttp/types`](https://www.npmjs.com/package/@hyperttp/types) | Shared TypeScript type definitions | [GitHub](https://github.com/dirold2/hyperttp-types) |
|
|
54
|
+
| [`@hyperttp/transport-bun`](https://www.npmjs.com/package/@hyperttp/transport-bun) | Native Bun transport | [GitHub](https://github.com/IT-IF-OR/hyperttp-transport-bun) |
|
|
55
|
+
| [`@hyperttp/transport-undici`](https://www.npmjs.com/package/@hyperttp/transport-undici) | Undici transport for Node.js | [GitHub](https://github.com/IT-IF-OR/hyperttp-transport-undici) |
|
|
56
|
+
| [`hyperttp`](https://www.npmjs.com/package/hyperttp) | High-level client with all plugins pre-wired | [GitHub](https://github.com/dirold2/hyperttp) |
|
|
114
57
|
|
|
115
58
|
---
|
|
116
59
|
|
|
117
|
-
##
|
|
118
|
-
|
|
119
|
-
| Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
|
|
120
|
-
| ---- | -------------- | ------ | -------- | -------- | -------- | -------- | ------ |
|
|
121
|
-
| 🥇 1 | undici | 15.92K | 12.53 ms | 12.38 ms | 12.88 ms | 16.75 ms | 0 |
|
|
122
|
-
| 🥈 2 | bun-fetch | 8.45K | 23.58 ms | 22.05 ms | 29.49 ms | 35.63 ms | 0 |
|
|
123
|
-
| 🥉 3 | @hyperttp/core | 7.47K | 26.70 ms | 25.03 ms | 32.76 ms | 41.48 ms | 0 |
|
|
124
|
-
| 4 | request | 7.42K | 26.91 ms | 26.06 ms | 30.98 ms | 35.71 ms | 0 |
|
|
125
|
-
| 5 | hyperttp | 6.84K | 29.16 ms | 27.72 ms | 34.39 ms | 43.95 ms | 0 |
|
|
126
|
-
| 6 | ky | 6.57K | 30.38 ms | 27.74 ms | 36.11 ms | 69.57 ms | 0 |
|
|
127
|
-
| 7 | axios | 4.80K | 41.57 ms | 40.46 ms | 45.35 ms | 56.94 ms | 0 |
|
|
128
|
-
| 8 | node-fetch | 4.59K | 43.43 ms | 41.54 ms | 48.93 ms | 63.88 ms | 0 |
|
|
129
|
-
| 9 | got | 4.44K | 44.96 ms | 43.24 ms | 49.36 ms | 65.20 ms | 0 |
|
|
130
|
-
| 10 | superagent | 3.39K | 58.86 ms | 57.93 ms | 64.18 ms | 69.88 ms | 0 |
|
|
60
|
+
## 🏗️ Architecture & Lifecycle
|
|
131
61
|
|
|
132
|
-
|
|
62
|
+
`HyperCore` shifts heavy lifting into structured execution pipelines:
|
|
133
63
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
64
|
+
```
|
|
65
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
66
|
+
│ HyperCore │
|
|
67
|
+
│ │
|
|
68
|
+
│ 1. Request Pipeline (onRequest) ─── short-circuit capable │
|
|
69
|
+
│ │ │
|
|
70
|
+
│ 2. Transport Execution (HyperTransport) │
|
|
71
|
+
│ ├─ BunTransport (native Bun fetch) │
|
|
72
|
+
│ ├─ UndiciTransport (Node.js) │
|
|
73
|
+
│ └─ NodeTransport (global fetch) │
|
|
74
|
+
│ │ │
|
|
75
|
+
│ 3. Response Data Pipeline (onResponseData) │
|
|
76
|
+
│ │ │
|
|
77
|
+
│ 4. Internal Processing (decompression, mapping) │
|
|
78
|
+
│ │ │
|
|
79
|
+
│ 5. Response Pipeline (onResponse) │
|
|
80
|
+
│ ├─ Mutators (sync/async modification) │
|
|
81
|
+
│ └─ Side Effects (background, non-blocking) │
|
|
82
|
+
│ │ │
|
|
83
|
+
│ 6. Error Pipeline (onError) ─── recovery capable │
|
|
84
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
85
|
+
```
|
|
148
86
|
|
|
149
87
|
---
|
|
150
88
|
|
|
@@ -155,9 +93,14 @@ npm install @hyperttp/transport-bun
|
|
|
155
93
|
```bash
|
|
156
94
|
npm install @hyperttp/core
|
|
157
95
|
|
|
96
|
+
# Optional: install a specific transport
|
|
97
|
+
npm install @hyperttp/transport-bun # for Bun
|
|
98
|
+
npm install @hyperttp/transport-undici # for Node.js
|
|
158
99
|
```
|
|
159
100
|
|
|
160
|
-
### Basic
|
|
101
|
+
### Basic Usage
|
|
102
|
+
|
|
103
|
+
`HyperCore` returns `HttpResponse<T>` objects with full control over the response body:
|
|
161
104
|
|
|
162
105
|
```typescript
|
|
163
106
|
import { HyperCore } from "@hyperttp/core";
|
|
@@ -169,10 +112,17 @@ const http = new HyperCore({
|
|
|
169
112
|
},
|
|
170
113
|
});
|
|
171
114
|
|
|
172
|
-
//
|
|
115
|
+
// Returns HttpResponse<T> with full control
|
|
173
116
|
const response = await http.get("https://api.example.com/data");
|
|
117
|
+
console.log(response.status);
|
|
118
|
+
console.log(response.headers);
|
|
119
|
+
|
|
120
|
+
// Built-in parsing methods
|
|
121
|
+
const json = await response.json<User>();
|
|
122
|
+
const text = await response.text();
|
|
123
|
+
const buffer = await response.arrayBuffer();
|
|
174
124
|
|
|
175
|
-
// Shortcut
|
|
125
|
+
// Shortcut methods
|
|
176
126
|
const userJson = await http.json<{ name: string }>("/users/123");
|
|
177
127
|
const logsText = await http.text("/logs/latest");
|
|
178
128
|
|
|
@@ -180,7 +130,7 @@ const logsText = await http.text("/logs/latest");
|
|
|
180
130
|
await http.dump("/analytics/ping");
|
|
181
131
|
```
|
|
182
132
|
|
|
183
|
-
###
|
|
133
|
+
### Streaming
|
|
184
134
|
|
|
185
135
|
```typescript
|
|
186
136
|
// GET Streams
|
|
@@ -196,18 +146,16 @@ const chatStream = await http.postStream("/v1/chat/completions", {
|
|
|
196
146
|
|
|
197
147
|
---
|
|
198
148
|
|
|
199
|
-
## 🔌
|
|
149
|
+
## 🔌 Plugin System
|
|
200
150
|
|
|
201
|
-
|
|
202
|
-
prioritized hooks.
|
|
151
|
+
Extend `HyperCore` with custom hooks that integrate into the pipeline:
|
|
203
152
|
|
|
204
153
|
```typescript
|
|
205
|
-
|
|
206
|
-
const authenticatedClient = http.extend({
|
|
207
|
-
network: { headers: { Authorization: "Bearer token_abc" } },
|
|
208
|
-
});
|
|
154
|
+
import { HyperCore } from "@hyperttp/core";
|
|
209
155
|
|
|
210
|
-
|
|
156
|
+
const http = new HyperCore();
|
|
157
|
+
|
|
158
|
+
http.use({
|
|
211
159
|
name: "performance-logger",
|
|
212
160
|
priority: 100, // Sorted execution priority (higher runs first)
|
|
213
161
|
mode: "background", // Forces onResponse to run as a non-blocking side-effect
|
|
@@ -222,22 +170,88 @@ authenticatedClient.use({
|
|
|
222
170
|
},
|
|
223
171
|
|
|
224
172
|
onResponse: async (res, req, ctx) => {
|
|
225
|
-
const duration = performance.now() - req.meta.startTime;
|
|
226
|
-
console.log(
|
|
227
|
-
`[${req.method}] ${req.url} -> ${res.status} (${duration.toFixed(2)}ms)`,
|
|
228
|
-
);
|
|
173
|
+
const duration = performance.now() - (req.meta.startTime as number);
|
|
174
|
+
console.log(`[${req.method}] ${req.url} -> ${res.status} (${duration.toFixed(2)}ms)`);
|
|
229
175
|
},
|
|
230
176
|
|
|
231
177
|
onError: async (error, req, ctx) => {
|
|
232
178
|
console.error(`Request failed to ${req.url}: ${error.message}`);
|
|
233
|
-
// Return a response object here
|
|
179
|
+
// Return a response object here to bypass/recover from the failure
|
|
234
180
|
},
|
|
235
181
|
});
|
|
236
182
|
```
|
|
237
183
|
|
|
184
|
+
### Plugin Phases
|
|
185
|
+
|
|
186
|
+
| Phase | Hook | Description |
|
|
187
|
+
| ----------- | ---------------- | ------------------------------------------------------- |
|
|
188
|
+
| **REQUEST** | `onRequest` | Intercepts before execution. Supports short-circuiting. |
|
|
189
|
+
| **DATA** | `onResponseData` | Transforms raw transport responses before mapping. |
|
|
190
|
+
| **FORMAT** | `onResponse` | Modifies client-facing responses. |
|
|
191
|
+
| **ERROR** | `onError` | Catches and recovers from errors. |
|
|
192
|
+
|
|
193
|
+
> 💡 **Need caching, rate limiting, queueing, parsing, and more?** Use the [`hyperttp`](https://www.npmjs.com/package/hyperttp) meta-package — it comes with 8 pre-wired plugins.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 🌍 Transports
|
|
198
|
+
|
|
199
|
+
Hyperttp automatically selects the optimal transport for your runtime:
|
|
200
|
+
|
|
201
|
+
| Transport | Runtime | Installation |
|
|
202
|
+
| ------------------- | ----------------- | ---------------------------------------- |
|
|
203
|
+
| **BunTransport** | Bun | `npm install @hyperttp/transport-bun` |
|
|
204
|
+
| **UndiciTransport** | Node.js | `npm install @hyperttp/transport-undici` |
|
|
205
|
+
| **NodeTransport** | Node.js / Browser | Built-in (uses global `fetch`) |
|
|
206
|
+
|
|
207
|
+
### Custom Transport
|
|
208
|
+
|
|
209
|
+
Implement your own transport:
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
import type { HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
|
|
213
|
+
|
|
214
|
+
class MyCustomTransport implements HyperTransport {
|
|
215
|
+
async execute(req: TransportRequest): Promise<TransportResponse> {
|
|
216
|
+
const response = await fetch(req.url, {
|
|
217
|
+
method: req.method,
|
|
218
|
+
headers: req.headers,
|
|
219
|
+
body: req.body,
|
|
220
|
+
signal: req.signal,
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
status: response.status,
|
|
225
|
+
headers: Object.fromEntries(response.headers),
|
|
226
|
+
body: response.body,
|
|
227
|
+
url: response.url,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
async close(): Promise<void> {
|
|
232
|
+
// Cleanup resources
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const http = new HyperCore({}, new MyCustomTransport());
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 🔄 Extending Configuration
|
|
242
|
+
|
|
243
|
+
Create derived clients with merged configuration via `.extend()`:
|
|
244
|
+
|
|
245
|
+
```typescript
|
|
246
|
+
// Inherit global pools and layers while changing specific presets
|
|
247
|
+
const authenticatedClient = http.extend({
|
|
248
|
+
network: { headers: { Authorization: "Bearer token_abc" } },
|
|
249
|
+
});
|
|
250
|
+
```
|
|
251
|
+
|
|
238
252
|
### Graceful Resource Destruction
|
|
239
253
|
|
|
240
|
-
Always clean up underlying transport configurations, socket pools, and keep
|
|
254
|
+
Always clean up underlying transport configurations, socket pools, and keep-alive timers in microservice tear-downs:
|
|
241
255
|
|
|
242
256
|
```typescript
|
|
243
257
|
// Performs a graceful or rapid shutdown sequence across transport selectors
|
|
@@ -246,6 +260,130 @@ await http.destroy(true);
|
|
|
246
260
|
|
|
247
261
|
---
|
|
248
262
|
|
|
263
|
+
## 📊 Benchmarks
|
|
264
|
+
|
|
265
|
+
### Test Configuration
|
|
266
|
+
|
|
267
|
+
```txt
|
|
268
|
+
Requests 20000
|
|
269
|
+
Concurrency 200
|
|
270
|
+
Duration 20000
|
|
271
|
+
Timeout 60000 ms
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
To run your own suite:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
bun run bench.ts && npx tsx bench.ts
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## 🟦 Bun 1.3.14 — BunTransport
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
npm install @hyperttp/transport-bun
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
| Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
|
|
287
|
+
| ---- | ------------------ | ---------- | ------------ | ------------ | ------------ | ------------ | ------ |
|
|
288
|
+
| 🥇 1 | bun-fetch | 24.34K | 8.18 ms | 8.50 ms | 10.62 ms | 14.10 ms | 0 |
|
|
289
|
+
| 🥈 2 | node-fetch | 21.58K | 9.23 ms | 9.39 ms | 12.86 ms | 14.72 ms | 0 |
|
|
290
|
+
| 🥉 3 | undici | 20.28K | 9.83 ms | 10.12 ms | 13.80 ms | 15.35 ms | 0 |
|
|
291
|
+
| 4 | **@hyperttp/core** | **17.39K** | **11.46 ms** | **12.94 ms** | **15.53 ms** | **16.66 ms** | 0 |
|
|
292
|
+
| 5 | ky | 12.80K | 15.58 ms | 13.95 ms | 20.62 ms | 22.77 ms | 0 |
|
|
293
|
+
| 6 | request | 8.31K | 24.00 ms | 23.43 ms | 29.54 ms | 32.82 ms | 0 |
|
|
294
|
+
| 7 | superagent | 7.96K | 25.09 ms | 24.95 ms | 26.85 ms | 28.46 ms | 0 |
|
|
295
|
+
| 8 | axios | 6.19K | 32.21 ms | 31.93 ms | 34.15 ms | 39.09 ms | 0 |
|
|
296
|
+
| 9 | got | 5.13K | 38.94 ms | 30.99 ms | 58.61 ms | 63.14 ms | 0 |
|
|
297
|
+
|
|
298
|
+
## 🟦 Bun 1.3.14 — NodeTransport
|
|
299
|
+
|
|
300
|
+
| Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
|
|
301
|
+
| ---- | ------------------ | ---------- | ------------ | ------------ | ------------ | ------------ | ------ |
|
|
302
|
+
| 🥇 1 | bun-fetch | 23.94K | 8.32 ms | 8.63 ms | 10.64 ms | 13.77 ms | 0 |
|
|
303
|
+
| 🥈 2 | node-fetch | 21.71K | 9.18 ms | 9.35 ms | 12.58 ms | 14.40 ms | 0 |
|
|
304
|
+
| 🥉 3 | undici | 20.22K | 9.86 ms | 10.15 ms | 13.65 ms | 15.41 ms | 0 |
|
|
305
|
+
| 4 | **@hyperttp/core** | **17.80K** | **11.20 ms** | **12.38 ms** | **15.20 ms** | **17.29 ms** | 0 |
|
|
306
|
+
| 5 | ky | 12.78K | 15.63 ms | 13.92 ms | 20.59 ms | 23.70 ms | 0 |
|
|
307
|
+
| 6 | request | 8.20K | 24.31 ms | 23.62 ms | 29.13 ms | 34.53 ms | 0 |
|
|
308
|
+
| 7 | superagent | 8.06K | 24.79 ms | 24.79 ms | 27.26 ms | 29.52 ms | 0 |
|
|
309
|
+
| 8 | axios | 6.28K | 31.72 ms | 31.81 ms | 33.53 ms | 35.65 ms | 0 |
|
|
310
|
+
| 9 | got | 5.17K | 38.56 ms | 30.85 ms | 58.12 ms | 61.60 ms | 0 |
|
|
311
|
+
|
|
312
|
+
## 🟦 Node.js v24.14.1 — UndiciTransport
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
npm install @hyperttp/transport-undici
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
| Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
|
|
319
|
+
| ---- | ------------------ | ---------- | ------------ | ------------ | ------------ | ------------ | ------ |
|
|
320
|
+
| 🥇 1 | undici | 13.84K | 14.41 ms | 13.54 ms | 15.39 ms | 26.23 ms | 0 |
|
|
321
|
+
| 🥈 2 | **@hyperttp/core** | **11.95K** | **16.68 ms** | **14.90 ms** | **17.04 ms** | **26.58 ms** | 0 |
|
|
322
|
+
| 3 | bun-fetch | 7.89K | 25.26 ms | 23.04 ms | 33.86 ms | 39.14 ms | 0 |
|
|
323
|
+
| 4 | request | 6.99K | 28.58 ms | 27.19 ms | 34.91 ms | 39.22 ms | 0 |
|
|
324
|
+
| 5 | ky | 5.97K | 33.42 ms | 30.05 ms | 41.58 ms | 64.01 ms | 0 |
|
|
325
|
+
| 6 | axios | 4.71K | 42.39 ms | 40.65 ms | 48.48 ms | 56.20 ms | 0 |
|
|
326
|
+
| 7 | node-fetch | 4.43K | 45.03 ms | 42.18 ms | 53.61 ms | 65.02 ms | 0 |
|
|
327
|
+
| 8 | got | 4.20K | 47.51 ms | 45.20 ms | 55.32 ms | 67.58 ms | 0 |
|
|
328
|
+
| 9 | superagent | 3.18K | 62.66 ms | 61.13 ms | 70.10 ms | 75.46 ms | 0 |
|
|
329
|
+
|
|
330
|
+
## 🟦 Node.js v24.14.1 — NodeTransport
|
|
331
|
+
|
|
332
|
+
| Rank | Client | RPS | Avg | p50 | p90 | p99 | Errors |
|
|
333
|
+
| ---- | ------------------ | --------- | ------------ | ------------ | ------------ | ------------ | ------ |
|
|
334
|
+
| 🥇 1 | undici | 15.45K | 12.91 ms | 12.68 ms | 13.69 ms | 16.96 ms | 0 |
|
|
335
|
+
| 🥈 2 | bun-fetch | 8.31K | 24.00 ms | 22.34 ms | 30.38 ms | 36.20 ms | 0 |
|
|
336
|
+
| 🥉 3 | request | 7.34K | 27.14 ms | 26.27 ms | 30.96 ms | 34.91 ms | 0 |
|
|
337
|
+
| 4 | **@hyperttp/core** | **7.23K** | **27.58 ms** | **25.68 ms** | **33.76 ms** | **42.75 ms** | 0 |
|
|
338
|
+
| 5 | ky | 6.41K | 31.14 ms | 28.43 ms | 37.55 ms | 61.30 ms | 0 |
|
|
339
|
+
| 6 | axios | 4.87K | 40.96 ms | 39.70 ms | 45.47 ms | 56.43 ms | 0 |
|
|
340
|
+
| 7 | node-fetch | 4.62K | 43.15 ms | 41.12 ms | 49.25 ms | 64.28 ms | 0 |
|
|
341
|
+
| 8 | got | 4.58K | 43.63 ms | 41.57 ms | 48.48 ms | 65.02 ms | 0 |
|
|
342
|
+
| 9 | superagent | 3.32K | 60.11 ms | 59.08 ms | 66.02 ms | 71.26 ms | 0 |
|
|
343
|
+
|
|
344
|
+
### 📈 Performance Analysis
|
|
345
|
+
|
|
346
|
+
**Key Insights:**
|
|
347
|
+
|
|
348
|
+
- **Bun + BunTransport**: @hyperttp/core achieves **17.39K RPS** — only 14% slower than native `bun-fetch` (24.34K)
|
|
349
|
+
- **Node.js + UndiciTransport**: @hyperttp/core reaches **11.95K RPS** with p99 latency of **26.58ms** — virtually identical to native undici (26.23ms)
|
|
350
|
+
- **Zero Error Rate**: 0% errors across all scenarios in all benchmarks
|
|
351
|
+
- **Memory Efficiency**: @hyperttp/core uses ~148-184MB in Bun, less than axios (201MB) and got (165-170MB)
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 🛠️ Development
|
|
356
|
+
|
|
357
|
+
This project uses the OXC toolchain for lightning-fast development:
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Install dependencies
|
|
361
|
+
bun install
|
|
362
|
+
|
|
363
|
+
# Type checking
|
|
364
|
+
bun run typecheck
|
|
365
|
+
|
|
366
|
+
# Linting (oxlint — ~8ms)
|
|
367
|
+
bun run lint
|
|
368
|
+
|
|
369
|
+
# Formatting (oxfmt — ~25ms)
|
|
370
|
+
bun run format
|
|
371
|
+
|
|
372
|
+
# Build
|
|
373
|
+
bun run build
|
|
374
|
+
|
|
375
|
+
# Run tests
|
|
376
|
+
bun run test
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
249
381
|
## 📄 License
|
|
250
382
|
|
|
251
383
|
MIT
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
<p align="center">
|
|
388
|
+
Made with ❤️ by <a href="https://github.com/dirold2">dirold2</a>
|
|
389
|
+
</p>
|
package/package.json
CHANGED
package/utils/response.d.ts
CHANGED
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
import type { HttpResponse, HyperTransport, HyperBody } from "@hyperttp/types";
|
|
2
2
|
type TransportResponse = Awaited<ReturnType<HyperTransport["execute"]>>;
|
|
3
|
-
/**
|
|
4
|
-
* @ru Символы для скрытого кэширования распарсенных данных тела ответа.
|
|
5
|
-
* Использование Symbol предотвращает коллизии имен и сохраняет мономорфизм в V8.
|
|
6
|
-
* @en Symbols for hidden caching of parsed response body data.
|
|
7
|
-
* Using Symbol prevents name collisions and preserves monomorphism in V8.
|
|
8
|
-
*/
|
|
9
3
|
declare const TEXT_CACHE: unique symbol;
|
|
10
4
|
declare const JSON_CACHE: unique symbol;
|
|
11
5
|
declare const ARRAY_BUFFER_CACHE: unique symbol;
|
|
12
|
-
/**
|
|
13
|
-
* @ru Интерфейс объекта, поддерживающего скрытое кэширование данных.
|
|
14
|
-
* @en Interface for an object supporting hidden data caching.
|
|
15
|
-
*/
|
|
16
6
|
type CacheHolder = {
|
|
17
7
|
[TEXT_CACHE]?: string;
|
|
18
8
|
[JSON_CACHE]?: unknown;
|
|
19
9
|
[ARRAY_BUFFER_CACHE]?: ArrayBuffer | SharedArrayBuffer;
|
|
20
10
|
};
|
|
21
|
-
/**
|
|
22
|
-
* @ru Высокопроизводительное глубокое клонирование тела ответа.
|
|
23
|
-
* Избегает накладных расходов structuredClone для стримов и буферов, возвращая ссылки.
|
|
24
|
-
* @en High-performance deep cloning of the response body.
|
|
25
|
-
* Avoids structuredClone overhead for streams and buffers by returning references.
|
|
26
|
-
* @template T - The type of the body.
|
|
27
|
-
* @param body - The body to clone.
|
|
28
|
-
* @returns The cloned body.
|
|
29
|
-
*/
|
|
30
11
|
export declare const cloneBodyFast: <T>(body: T) => T;
|
|
31
12
|
/**
|
|
32
13
|
* @ru Высокопроизводительный контейнер HTTP-ответа с ленивым парсингом и кэшированием.
|
|
@@ -38,86 +19,32 @@ export declare const cloneBodyFast: <T>(body: T) => T;
|
|
|
38
19
|
export declare class HyperHttpResponse<T = unknown> implements HttpResponse<T>, CacheHolder {
|
|
39
20
|
status: number;
|
|
40
21
|
headers: Record<string, string | string[]>;
|
|
41
|
-
|
|
22
|
+
/**
|
|
23
|
+
* @ru Тело ответа. Может быть распарсенным типом T, потоком HyperBody, буфером Uint8Array или null.
|
|
24
|
+
* @en Response body. Can be the parsed type T, a HyperBody stream, Uint8Array buffer, or null.
|
|
25
|
+
*/
|
|
26
|
+
body: T | HyperBody | Uint8Array | null;
|
|
42
27
|
url: string;
|
|
43
28
|
data: T | null;
|
|
44
29
|
[TEXT_CACHE]: string | undefined;
|
|
45
30
|
[JSON_CACHE]: unknown | undefined;
|
|
46
31
|
[ARRAY_BUFFER_CACHE]: ArrayBuffer | SharedArrayBuffer | undefined;
|
|
47
32
|
private _bodyConsumed;
|
|
48
|
-
/**
|
|
49
|
-
* @ru Создаёт экземпляр ответа из сырых данных транспорта.
|
|
50
|
-
* @en Creates a response instance from raw transport data.
|
|
51
|
-
* @param rawResponse - The raw response from the transport layer.
|
|
52
|
-
*/
|
|
53
33
|
constructor(rawResponse: TransportResponse);
|
|
54
|
-
/**
|
|
55
|
-
* @ru Лениво вычитывает и кэширует тело ответа в виде ArrayBuffer и текста.
|
|
56
|
-
* @en Lazily consumes and caches the response body as ArrayBuffer and text.
|
|
57
|
-
*/
|
|
58
34
|
private _consumeBody;
|
|
59
|
-
/**
|
|
60
|
-
* @ru Возвращает тело ответа как ArrayBuffer. Результат кэшируется.
|
|
61
|
-
* @en Returns the response body as an ArrayBuffer. Result is cached.
|
|
62
|
-
* @returns Promise resolving to the ArrayBuffer or SharedArrayBuffer.
|
|
63
|
-
*/
|
|
64
35
|
arrayBuffer(): Promise<ArrayBuffer | SharedArrayBuffer>;
|
|
65
|
-
/**
|
|
66
|
-
* @ru Возвращает тело ответа как текст. Результат кэшируется.
|
|
67
|
-
* @en Returns the response body as text. Result is cached.
|
|
68
|
-
* @returns Promise resolving to the text string.
|
|
69
|
-
*/
|
|
70
36
|
text(): Promise<string>;
|
|
71
|
-
/**
|
|
72
|
-
* @ru Парсит тело ответа как JSON. Результат кэшируется.
|
|
73
|
-
* @en Parses the response body as JSON. Result is cached.
|
|
74
|
-
* @template TJson - Expected type of the parsed JSON.
|
|
75
|
-
* @returns Promise resolving to the parsed JSON object.
|
|
76
|
-
*/
|
|
77
37
|
json<TJson = T>(): Promise<TJson>;
|
|
78
|
-
/**
|
|
79
|
-
* @ru Отбрасывает тело ответа для освобождения ресурсов (сокета).
|
|
80
|
-
* @en Discards the response body to free up resources (socket).
|
|
81
|
-
* @returns Promise that resolves when the body is drained.
|
|
82
|
-
*/
|
|
83
38
|
dump(): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* @ru Создаёт глубокую изолированную копию ответа.
|
|
86
|
-
* Для стримов использует tee() для безопасного раздвоения потока.
|
|
87
|
-
* @en Creates a deep isolated copy of the response.
|
|
88
|
-
* Uses tee() for streams to safely duplicate the flow.
|
|
89
|
-
* @returns A new HttpResponse instance with cloned data.
|
|
90
|
-
*/
|
|
91
39
|
clone(): HttpResponse<T>;
|
|
92
40
|
}
|
|
93
|
-
/**
|
|
94
|
-
* @ru Быстрое создание экземпляра HyperHttpResponse из сырого ответа транспорта.
|
|
95
|
-
* @en Fast creation of a HyperHttpResponse instance from a raw transport response.
|
|
96
|
-
* @param rawResponse - The raw transport response.
|
|
97
|
-
* @returns A new HyperHttpResponse instance.
|
|
98
|
-
*/
|
|
99
41
|
export declare const mapResponseFast: (rawResponse: TransportResponse) => HttpResponse<unknown>;
|
|
100
|
-
/**
|
|
101
|
-
* @ru Быстрое создание объекта StreamResponse без overhead-а классов.
|
|
102
|
-
* @en Fast creation of a StreamResponse object without class overhead.
|
|
103
|
-
* @param rawResponse - The raw transport response.
|
|
104
|
-
* @returns A lightweight StreamResponse object.
|
|
105
|
-
*/
|
|
106
42
|
export declare const mapStreamFast: (rawResponse: TransportResponse) => {
|
|
107
43
|
status: number;
|
|
108
44
|
headers: Record<string, string | string[]>;
|
|
109
45
|
body: import("@hyperttp/types").TransportResponsePayload;
|
|
110
46
|
url: string;
|
|
111
47
|
};
|
|
112
|
-
/**
|
|
113
|
-
* @ru Оптимизированное слияние заголовков.
|
|
114
|
-
* Использует ранний возврат при первой итерации цикла, что быстрее, чем Object.keys().length > 0.
|
|
115
|
-
* @en Optimized headers merging.
|
|
116
|
-
* Uses early return on the first loop iteration, which is faster than Object.keys().length > 0.
|
|
117
|
-
* @param base - Base headers object.
|
|
118
|
-
* @param override - Headers to override or add.
|
|
119
|
-
* @returns Merged headers object.
|
|
120
|
-
*/
|
|
121
48
|
export declare const mergeHeadersFast: (base: Record<string, string | string[]>, override?: Record<string, string | string[]>) => Record<string, string | string[]>;
|
|
122
49
|
export {};
|
|
123
50
|
//# sourceMappingURL=response.d.ts.map
|
package/utils/response.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG/E,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG/E,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAwDxE,QAAA,MAAM,UAAU,eAA+B,CAAC;AAChD,QAAA,MAAM,UAAU,eAA+B,CAAC;AAChD,QAAA,MAAM,kBAAkB,eAAsC,CAAC;AAE/D,KAAK,WAAW,GAAG;IACjB,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;CACxD,CAAC;AAoBF,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CAqB1C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAElD;;;OAGG;IACI,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IAExC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAQ;IAEtB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAa;IAC7C,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAa;IAC9C,CAAC,kBAAkB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAAa;IAErF,OAAO,CAAC,aAAa,CAAS;gBAElB,WAAW,EAAE,iBAAiB;YAO5B,YAAY;IAkDb,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC;IA2BvD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAiCvB,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC;IA2BjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC;CA2BhC;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,iBAAiB,KAAG,YAAY,CAAC,OAAO,CAEpF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,aAAa,iBAAiB;;;;;CAK1D,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACvC,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMlC,CAAC"}
|
package/utils/response.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { CURRENT_RUNTIME } from "../transports/manager.js";
|
|
2
|
+
/**
|
|
3
|
+
* @ru Флаг, предотвращающий повторный патчинг ReadableStream.
|
|
4
|
+
* @en Flag to prevent repeated ReadableStream patching.
|
|
5
|
+
*/
|
|
6
|
+
let streamPatched = false;
|
|
2
7
|
/**
|
|
3
8
|
* @ru Унифицирует ReadableStream во всех средах (Node.js, Bun, Deno, Browser),
|
|
4
9
|
* добавляя методы парсинга (text, json, blob и т.д.) через оптимизированный Response API.
|
|
@@ -6,8 +11,9 @@ import { CURRENT_RUNTIME } from "../transports/manager.js";
|
|
|
6
11
|
* by adding parsing methods (text, json, blob, etc.) via the optimized Response API.
|
|
7
12
|
*/
|
|
8
13
|
const patchReadableStream = () => {
|
|
9
|
-
if (typeof ReadableStream === "undefined")
|
|
14
|
+
if (streamPatched || typeof ReadableStream === "undefined")
|
|
10
15
|
return;
|
|
16
|
+
streamPatched = true;
|
|
11
17
|
const proto = ReadableStream.prototype;
|
|
12
18
|
const methods = {
|
|
13
19
|
dump: async function () {
|
|
@@ -42,44 +48,21 @@ const patchReadableStream = () => {
|
|
|
42
48
|
}
|
|
43
49
|
};
|
|
44
50
|
patchReadableStream();
|
|
45
|
-
/**
|
|
46
|
-
* @ru Символы для скрытого кэширования распарсенных данных тела ответа.
|
|
47
|
-
* Использование Symbol предотвращает коллизии имен и сохраняет мономорфизм в V8.
|
|
48
|
-
* @en Symbols for hidden caching of parsed response body data.
|
|
49
|
-
* Using Symbol prevents name collisions and preserves monomorphism in V8.
|
|
50
|
-
*/
|
|
51
51
|
const TEXT_CACHE = Symbol("hyperttp.textCache");
|
|
52
52
|
const JSON_CACHE = Symbol("hyperttp.jsonCache");
|
|
53
53
|
const ARRAY_BUFFER_CACHE = Symbol("hyperttp.arrayBufferCache");
|
|
54
54
|
const STATIC_DECODER = new TextDecoder();
|
|
55
|
-
const EMPTY_HEADERS = {};
|
|
56
55
|
/**
|
|
57
|
-
* @ru
|
|
58
|
-
* @en
|
|
59
|
-
* @param value - The value to check.
|
|
60
|
-
* @returns True if the value is a ReadableStream.
|
|
56
|
+
* @ru Замороженный пустой объект заголовков для избежания лишних аллокаций.
|
|
57
|
+
* @en Frozen empty headers object to avoid redundant allocations.
|
|
61
58
|
*/
|
|
59
|
+
const EMPTY_HEADERS = Object.freeze({});
|
|
62
60
|
function isReadableStream(value) {
|
|
63
61
|
return (typeof value === "object" && value !== null && typeof value.getReader === "function");
|
|
64
62
|
}
|
|
65
|
-
/**
|
|
66
|
-
* @ru Быстрая проверка, является ли значение Blob.
|
|
67
|
-
* @en Fast check to determine if a value is a Blob.
|
|
68
|
-
* @param value - The value to check.
|
|
69
|
-
* @returns True if the value is a Blob.
|
|
70
|
-
*/
|
|
71
63
|
function isBlob(value) {
|
|
72
64
|
return typeof Blob !== "undefined" && value instanceof Blob;
|
|
73
65
|
}
|
|
74
|
-
/**
|
|
75
|
-
* @ru Высокопроизводительное глубокое клонирование тела ответа.
|
|
76
|
-
* Избегает накладных расходов structuredClone для стримов и буферов, возвращая ссылки.
|
|
77
|
-
* @en High-performance deep cloning of the response body.
|
|
78
|
-
* Avoids structuredClone overhead for streams and buffers by returning references.
|
|
79
|
-
* @template T - The type of the body.
|
|
80
|
-
* @param body - The body to clone.
|
|
81
|
-
* @returns The cloned body.
|
|
82
|
-
*/
|
|
83
66
|
export const cloneBodyFast = (body) => {
|
|
84
67
|
if (typeof body !== "object" || body === null)
|
|
85
68
|
return body;
|
|
@@ -111,6 +94,10 @@ export const cloneBodyFast = (body) => {
|
|
|
111
94
|
export class HyperHttpResponse {
|
|
112
95
|
status;
|
|
113
96
|
headers;
|
|
97
|
+
/**
|
|
98
|
+
* @ru Тело ответа. Может быть распарсенным типом T, потоком HyperBody, буфером Uint8Array или null.
|
|
99
|
+
* @en Response body. Can be the parsed type T, a HyperBody stream, Uint8Array buffer, or null.
|
|
100
|
+
*/
|
|
114
101
|
body;
|
|
115
102
|
url;
|
|
116
103
|
data = null;
|
|
@@ -118,21 +105,12 @@ export class HyperHttpResponse {
|
|
|
118
105
|
[JSON_CACHE] = undefined;
|
|
119
106
|
[ARRAY_BUFFER_CACHE] = undefined;
|
|
120
107
|
_bodyConsumed = false;
|
|
121
|
-
/**
|
|
122
|
-
* @ru Создаёт экземпляр ответа из сырых данных транспорта.
|
|
123
|
-
* @en Creates a response instance from raw transport data.
|
|
124
|
-
* @param rawResponse - The raw response from the transport layer.
|
|
125
|
-
*/
|
|
126
108
|
constructor(rawResponse) {
|
|
127
109
|
this.status = rawResponse.status;
|
|
128
110
|
this.headers = rawResponse.headers || EMPTY_HEADERS;
|
|
129
111
|
this.body = rawResponse.body;
|
|
130
112
|
this.url = rawResponse.url ?? "";
|
|
131
113
|
}
|
|
132
|
-
/**
|
|
133
|
-
* @ru Лениво вычитывает и кэширует тело ответа в виде ArrayBuffer и текста.
|
|
134
|
-
* @en Lazily consumes and caches the response body as ArrayBuffer and text.
|
|
135
|
-
*/
|
|
136
114
|
async _consumeBody() {
|
|
137
115
|
if (this._bodyConsumed)
|
|
138
116
|
return;
|
|
@@ -175,11 +153,6 @@ export class HyperHttpResponse {
|
|
|
175
153
|
this.body = new Uint8Array(this[ARRAY_BUFFER_CACHE]);
|
|
176
154
|
}
|
|
177
155
|
}
|
|
178
|
-
/**
|
|
179
|
-
* @ru Возвращает тело ответа как ArrayBuffer. Результат кэшируется.
|
|
180
|
-
* @en Returns the response body as an ArrayBuffer. Result is cached.
|
|
181
|
-
* @returns Promise resolving to the ArrayBuffer or SharedArrayBuffer.
|
|
182
|
-
*/
|
|
183
156
|
async arrayBuffer() {
|
|
184
157
|
if (this[ARRAY_BUFFER_CACHE] !== undefined)
|
|
185
158
|
return this[ARRAY_BUFFER_CACHE];
|
|
@@ -202,11 +175,6 @@ export class HyperHttpResponse {
|
|
|
202
175
|
await this._consumeBody();
|
|
203
176
|
return this[ARRAY_BUFFER_CACHE];
|
|
204
177
|
}
|
|
205
|
-
/**
|
|
206
|
-
* @ru Возвращает тело ответа как текст. Результат кэшируется.
|
|
207
|
-
* @en Returns the response body as text. Result is cached.
|
|
208
|
-
* @returns Promise resolving to the text string.
|
|
209
|
-
*/
|
|
210
178
|
async text() {
|
|
211
179
|
if (this[TEXT_CACHE] !== undefined)
|
|
212
180
|
return this[TEXT_CACHE];
|
|
@@ -234,12 +202,6 @@ export class HyperHttpResponse {
|
|
|
234
202
|
await this._consumeBody();
|
|
235
203
|
return this[TEXT_CACHE];
|
|
236
204
|
}
|
|
237
|
-
/**
|
|
238
|
-
* @ru Парсит тело ответа как JSON. Результат кэшируется.
|
|
239
|
-
* @en Parses the response body as JSON. Result is cached.
|
|
240
|
-
* @template TJson - Expected type of the parsed JSON.
|
|
241
|
-
* @returns Promise resolving to the parsed JSON object.
|
|
242
|
-
*/
|
|
243
205
|
async json() {
|
|
244
206
|
if (this[JSON_CACHE] !== undefined)
|
|
245
207
|
return this[JSON_CACHE];
|
|
@@ -261,11 +223,6 @@ export class HyperHttpResponse {
|
|
|
261
223
|
const str = await this.text();
|
|
262
224
|
return (this[JSON_CACHE] = JSON.parse(str));
|
|
263
225
|
}
|
|
264
|
-
/**
|
|
265
|
-
* @ru Отбрасывает тело ответа для освобождения ресурсов (сокета).
|
|
266
|
-
* @en Discards the response body to free up resources (socket).
|
|
267
|
-
* @returns Promise that resolves when the body is drained.
|
|
268
|
-
*/
|
|
269
226
|
async dump() {
|
|
270
227
|
if (this._bodyConsumed)
|
|
271
228
|
return;
|
|
@@ -279,13 +236,6 @@ export class HyperHttpResponse {
|
|
|
279
236
|
await body.arrayBuffer();
|
|
280
237
|
}
|
|
281
238
|
}
|
|
282
|
-
/**
|
|
283
|
-
* @ru Создаёт глубокую изолированную копию ответа.
|
|
284
|
-
* Для стримов использует tee() для безопасного раздвоения потока.
|
|
285
|
-
* @en Creates a deep isolated copy of the response.
|
|
286
|
-
* Uses tee() for streams to safely duplicate the flow.
|
|
287
|
-
* @returns A new HttpResponse instance with cloned data.
|
|
288
|
-
*/
|
|
289
239
|
clone() {
|
|
290
240
|
const cloned = Object.create(HyperHttpResponse.prototype);
|
|
291
241
|
cloned.status = this.status;
|
|
@@ -312,40 +262,19 @@ export class HyperHttpResponse {
|
|
|
312
262
|
return cloned;
|
|
313
263
|
}
|
|
314
264
|
}
|
|
315
|
-
/**
|
|
316
|
-
* @ru Быстрое создание экземпляра HyperHttpResponse из сырого ответа транспорта.
|
|
317
|
-
* @en Fast creation of a HyperHttpResponse instance from a raw transport response.
|
|
318
|
-
* @param rawResponse - The raw transport response.
|
|
319
|
-
* @returns A new HyperHttpResponse instance.
|
|
320
|
-
*/
|
|
321
265
|
export const mapResponseFast = (rawResponse) => {
|
|
322
266
|
return new HyperHttpResponse(rawResponse);
|
|
323
267
|
};
|
|
324
|
-
/**
|
|
325
|
-
* @ru Быстрое создание объекта StreamResponse без overhead-а классов.
|
|
326
|
-
* @en Fast creation of a StreamResponse object without class overhead.
|
|
327
|
-
* @param rawResponse - The raw transport response.
|
|
328
|
-
* @returns A lightweight StreamResponse object.
|
|
329
|
-
*/
|
|
330
268
|
export const mapStreamFast = (rawResponse) => ({
|
|
331
269
|
status: rawResponse.status,
|
|
332
270
|
headers: rawResponse.headers,
|
|
333
271
|
body: rawResponse.body,
|
|
334
272
|
url: rawResponse.url ?? "",
|
|
335
273
|
});
|
|
336
|
-
/**
|
|
337
|
-
* @ru Оптимизированное слияние заголовков.
|
|
338
|
-
* Использует ранний возврат при первой итерации цикла, что быстрее, чем Object.keys().length > 0.
|
|
339
|
-
* @en Optimized headers merging.
|
|
340
|
-
* Uses early return on the first loop iteration, which is faster than Object.keys().length > 0.
|
|
341
|
-
* @param base - Base headers object.
|
|
342
|
-
* @param override - Headers to override or add.
|
|
343
|
-
* @returns Merged headers object.
|
|
344
|
-
*/
|
|
345
274
|
export const mergeHeadersFast = (base, override) => {
|
|
346
275
|
if (!override)
|
|
347
276
|
return base;
|
|
348
|
-
for (const
|
|
277
|
+
for (const _ in override) {
|
|
349
278
|
return { ...base, ...override };
|
|
350
279
|
}
|
|
351
280
|
return base;
|
package/utils/response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,GAAS,EAAE;IACrC,IAAI,OAAO,cAAc,KAAK,WAAW;QAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
|