@hyperttp/transport-bun 0.2.0 → 0.2.2
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/bun.d.ts +72 -8
- package/bun.d.ts.map +1 -1
- package/bun.js +302 -182
- package/bun.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +11 -9
package/bun.d.ts
CHANGED
|
@@ -1,28 +1,92 @@
|
|
|
1
1
|
import type { HttpClientOptions, HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
2
|
+
/**
|
|
3
|
+
* @ru Конфигурация транспорта Bun.
|
|
4
|
+
* @en Bun transport configuration.
|
|
5
|
+
*/
|
|
6
|
+
export interface BunTransportConfig extends HttpClientOptions {
|
|
7
|
+
/**
|
|
8
|
+
* @ru Базовый URL для всех запросов.
|
|
9
|
+
* @en Base URL for all requests.
|
|
10
|
+
*/
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @ru Высокопроизводительный HTTP-транспорт для Bun с нативными оптимизациями.
|
|
15
|
+
* Поддерживает cookies, concurrency control, таймауты, keepalive и TLS конфигурацию.
|
|
16
|
+
* @en High-performance HTTP transport for Bun with native optimizations.
|
|
17
|
+
* Supports cookies, concurrency control, timeouts, keepalive, and TLS configuration.
|
|
18
|
+
*/
|
|
7
19
|
export declare class BunTransport implements HyperTransport {
|
|
8
|
-
config:
|
|
20
|
+
config: BunTransportConfig;
|
|
9
21
|
private cookieJar;
|
|
22
|
+
private readonly cookieDomains;
|
|
10
23
|
private cookieCache;
|
|
24
|
+
private cookieCacheSize;
|
|
11
25
|
private activeRequests;
|
|
12
26
|
private concurrencyQueue;
|
|
27
|
+
private queueHead;
|
|
28
|
+
private queueTail;
|
|
13
29
|
private hasCookies;
|
|
14
30
|
private _maxConcurrent;
|
|
15
31
|
private _timeout;
|
|
16
32
|
private _userAgent;
|
|
17
33
|
private _keepalive;
|
|
18
34
|
private _tlsConfig;
|
|
19
|
-
|
|
35
|
+
/**
|
|
36
|
+
* @ru Создаёт экземпляр BunTransport.
|
|
37
|
+
* @en Creates a BunTransport instance.
|
|
38
|
+
* @param config - Transport configuration.
|
|
39
|
+
*/
|
|
40
|
+
constructor(config: BunTransportConfig);
|
|
41
|
+
/**
|
|
42
|
+
* @ru Инвалидирует кэшированные настройки при изменении конфигурации.
|
|
43
|
+
* @en Invalidates cached settings when configuration changes.
|
|
44
|
+
*/
|
|
20
45
|
private invalidateConfig;
|
|
46
|
+
/**
|
|
47
|
+
* @ru Выполняет HTTP-запрос через нативный fetch Bun.
|
|
48
|
+
* @en Executes an HTTP request via Bun's native fetch.
|
|
49
|
+
* @param req - The normalized transport request.
|
|
50
|
+
* @returns Promise resolving to the transport response.
|
|
51
|
+
*/
|
|
21
52
|
execute(req: TransportRequest): Promise<TransportResponse>;
|
|
53
|
+
/**
|
|
54
|
+
* @ru Подготавливает заголовки запроса, добавляя User-Agent и cookies.
|
|
55
|
+
* @en Prepares request headers, adding User-Agent and cookies.
|
|
56
|
+
* @param req - The transport request.
|
|
57
|
+
* @returns The prepared headers or undefined.
|
|
58
|
+
*/
|
|
22
59
|
private prepareHeaders;
|
|
60
|
+
/**
|
|
61
|
+
* @ru Ожидает свободный слот в очереди concurrency.
|
|
62
|
+
* @en Waits for an available slot in the concurrency queue.
|
|
63
|
+
* @param signal - Optional abort signal.
|
|
64
|
+
* @returns Promise that resolves when a slot is available.
|
|
65
|
+
*/
|
|
66
|
+
private waitForSlot;
|
|
67
|
+
/**
|
|
68
|
+
* @ru Освобождает слот и уведомляет следующий запрос в очереди.
|
|
69
|
+
* @en Releases a slot and notifies the next request in the queue.
|
|
70
|
+
*/
|
|
71
|
+
private releaseSlot;
|
|
72
|
+
/**
|
|
73
|
+
* @ru Извлекает cookies для указанного домена из cookie jar.
|
|
74
|
+
* @en Retrieves cookies for the specified domain from the cookie jar.
|
|
75
|
+
* @param requestDomain - The domain to get cookies for.
|
|
76
|
+
* @returns The cookie string or empty string.
|
|
77
|
+
*/
|
|
23
78
|
private getCookiesForDomain;
|
|
24
|
-
|
|
79
|
+
/**
|
|
80
|
+
* @ru Мягко закрывает транспорт, очищая очереди и cookies.
|
|
81
|
+
* @en Gracefully closes the transport, clearing queues and cookies.
|
|
82
|
+
* @returns Promise that resolves when the transport is closed.
|
|
83
|
+
*/
|
|
25
84
|
close(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* @ru Принудительно уничтожает транспорт и все активные соединения.
|
|
87
|
+
* @en Immediately destroys the transport and all active connections.
|
|
88
|
+
* @returns Promise that resolves when the transport is destroyed.
|
|
89
|
+
*/
|
|
26
90
|
destroy(): Promise<void>;
|
|
27
91
|
}
|
|
28
92
|
//# sourceMappingURL=bun.d.ts.map
|
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,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AA4HzB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,cAAc;IAC1C,MAAM,EAAE,kBAAkB,CAAC;IAElC,OAAO,CAAC,SAAS,CAA+D;IAChF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAgD;IAElE;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAKtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACU,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsEvE;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;;;OAKG;YACW,WAAW;IAmBzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
|
package/bun.js
CHANGED
|
@@ -1,255 +1,375 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @ru Кэш hostname'ов для быстрого извлечения домена из URL.
|
|
3
|
+
* @en Hostname cache for fast domain extraction from URLs.
|
|
4
|
+
*/
|
|
5
|
+
let hostnameCacheSize = 0;
|
|
6
|
+
let hostnameCache = Object.create(null);
|
|
7
|
+
let lastUrl = "";
|
|
8
|
+
let lastHost = "";
|
|
9
|
+
/**
|
|
10
|
+
* @ru Быстрое извлечение hostname из URL с кэшированием.
|
|
11
|
+
* @en Fast hostname extraction from URL with caching.
|
|
12
|
+
* @param url - The URL to extract hostname from.
|
|
13
|
+
* @returns The extracted hostname.
|
|
14
|
+
*/
|
|
15
|
+
function fastGetHostname(url) {
|
|
16
|
+
if (url === lastUrl)
|
|
17
|
+
return lastHost;
|
|
2
18
|
if (!url)
|
|
3
19
|
return "localhost";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
20
|
+
const cached = hostnameCache[url];
|
|
21
|
+
if (cached !== undefined) {
|
|
22
|
+
lastUrl = url;
|
|
23
|
+
lastHost = cached;
|
|
24
|
+
return cached;
|
|
25
|
+
}
|
|
26
|
+
let start = 0;
|
|
27
|
+
const first = url.charCodeAt(0);
|
|
28
|
+
if (first === 47) {
|
|
29
|
+
start = url.charCodeAt(1) === 47 ? 2 : 0;
|
|
30
|
+
if (start === 0)
|
|
31
|
+
return "localhost";
|
|
9
32
|
}
|
|
10
33
|
else {
|
|
11
|
-
|
|
34
|
+
const schemeIdx = url.indexOf("://");
|
|
35
|
+
if (schemeIdx !== -1)
|
|
36
|
+
start = schemeIdx + 3;
|
|
12
37
|
}
|
|
13
|
-
let end = url.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
end = portIdx;
|
|
38
|
+
let end = url.length;
|
|
39
|
+
for (let i = start; i < end; i++) {
|
|
40
|
+
const code = url.charCodeAt(i);
|
|
41
|
+
if (code === 47 || code === 63 || code === 35) {
|
|
42
|
+
end = i;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
21
45
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
throw getAbortError(signal);
|
|
46
|
+
const atIdx = url.indexOf("@", start);
|
|
47
|
+
if (atIdx !== -1 && atIdx < end)
|
|
48
|
+
start = atIdx + 1;
|
|
49
|
+
const colonIdx = url.indexOf(":", start);
|
|
50
|
+
if (colonIdx !== -1 && colonIdx < end)
|
|
51
|
+
end = colonIdx;
|
|
52
|
+
const host = url.slice(start, end) || "localhost";
|
|
53
|
+
if (hostnameCacheSize > 1024) {
|
|
54
|
+
hostnameCache = Object.create(null);
|
|
55
|
+
hostnameCacheSize = 0;
|
|
33
56
|
}
|
|
57
|
+
hostnameCache[url] = host;
|
|
58
|
+
hostnameCacheSize++;
|
|
59
|
+
lastUrl = url;
|
|
60
|
+
lastHost = host;
|
|
61
|
+
return host;
|
|
34
62
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
63
|
+
/**
|
|
64
|
+
* @ru Разрешает относительный URL относительно baseUrl.
|
|
65
|
+
* @en Resolves a relative URL against a baseUrl.
|
|
66
|
+
* @param baseUrl - The base URL.
|
|
67
|
+
* @param url - The URL to resolve.
|
|
68
|
+
* @returns The resolved absolute URL.
|
|
69
|
+
*/
|
|
70
|
+
function resolveUrl(baseUrl, url) {
|
|
71
|
+
if (url.charCodeAt(0) === 47)
|
|
72
|
+
return baseUrl + url;
|
|
73
|
+
if (url.startsWith("http://") || url.startsWith("https://"))
|
|
74
|
+
return url;
|
|
75
|
+
return baseUrl + "/" + url;
|
|
39
76
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
77
|
+
/**
|
|
78
|
+
* @ru Кэшированные DOMException для частых ошибок abort/timeout.
|
|
79
|
+
* @en Cached DOMException for frequent abort/timeout errors.
|
|
80
|
+
*/
|
|
81
|
+
const ABORT_ERROR = new DOMException("The operation was aborted.", "AbortError");
|
|
82
|
+
const TIMEOUT_ERROR = new DOMException("The operation was aborted due to timeout.", "TimeoutError");
|
|
83
|
+
/**
|
|
84
|
+
* @ru Извлекает причину abort из signal или возвращает кэшированную ошибку.
|
|
85
|
+
* @en Extracts abort reason from signal or returns cached error.
|
|
86
|
+
* @param signal - Optional abort signal.
|
|
87
|
+
* @returns The abort error or reason.
|
|
88
|
+
*/
|
|
89
|
+
function getAbortError(signal) {
|
|
90
|
+
return signal?.reason ?? ABORT_ERROR;
|
|
47
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
|
+
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
|
+
/**
|
|
122
|
+
* @ru Высокопроизводительный HTTP-транспорт для Bun с нативными оптимизациями.
|
|
123
|
+
* Поддерживает cookies, concurrency control, таймауты, keepalive и TLS конфигурацию.
|
|
124
|
+
* @en High-performance HTTP transport for Bun with native optimizations.
|
|
125
|
+
* Supports cookies, concurrency control, timeouts, keepalive, and TLS configuration.
|
|
126
|
+
*/
|
|
48
127
|
export class BunTransport {
|
|
49
128
|
config;
|
|
50
|
-
cookieJar =
|
|
51
|
-
|
|
129
|
+
cookieJar = Object.create(null);
|
|
130
|
+
cookieDomains = [];
|
|
131
|
+
cookieCache = Object.create(null);
|
|
132
|
+
cookieCacheSize = 0;
|
|
52
133
|
activeRequests = 0;
|
|
53
|
-
concurrencyQueue =
|
|
134
|
+
concurrencyQueue = Object.create(null);
|
|
135
|
+
queueHead = 0;
|
|
136
|
+
queueTail = 0;
|
|
54
137
|
hasCookies = false;
|
|
55
138
|
_maxConcurrent = 0;
|
|
56
139
|
_timeout = 0;
|
|
57
140
|
_userAgent = undefined;
|
|
58
141
|
_keepalive = false;
|
|
59
|
-
_tlsConfig;
|
|
142
|
+
_tlsConfig = null;
|
|
143
|
+
/**
|
|
144
|
+
* @ru Создаёт экземпляр BunTransport.
|
|
145
|
+
* @en Creates a BunTransport instance.
|
|
146
|
+
* @param config - Transport configuration.
|
|
147
|
+
*/
|
|
60
148
|
constructor(config) {
|
|
61
149
|
this.config = config;
|
|
62
150
|
this.invalidateConfig();
|
|
63
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* @ru Инвалидирует кэшированные настройки при изменении конфигурации.
|
|
154
|
+
* @en Invalidates cached settings when configuration changes.
|
|
155
|
+
*/
|
|
64
156
|
invalidateConfig() {
|
|
65
|
-
const net = this.config
|
|
157
|
+
const net = this.config?.network;
|
|
66
158
|
this._maxConcurrent = net?.maxConcurrent ?? 0;
|
|
67
159
|
this._timeout = net?.timeout ?? 0;
|
|
68
160
|
this._userAgent = net?.userAgent;
|
|
69
161
|
this._keepalive = !!net?.keepAliveTimeout;
|
|
70
|
-
this._tlsConfig =
|
|
162
|
+
this._tlsConfig = (net?.rejectUnauthorized ?? true) ? null : { rejectUnauthorized: false };
|
|
71
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* @ru Выполняет HTTP-запрос через нативный fetch Bun.
|
|
166
|
+
* @en Executes an HTTP request via Bun's native fetch.
|
|
167
|
+
* @param req - The normalized transport request.
|
|
168
|
+
* @returns Promise resolving to the transport response.
|
|
169
|
+
*/
|
|
72
170
|
async execute(req) {
|
|
73
171
|
const maxConcurrent = this._maxConcurrent;
|
|
74
|
-
let signal = req.signal;
|
|
75
172
|
const timeoutMs = this._timeout;
|
|
173
|
+
let signal = req.signal;
|
|
174
|
+
let timer = null;
|
|
76
175
|
if (timeoutMs > 0) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
176
|
+
if (!signal) {
|
|
177
|
+
signal = AbortSignal.timeout(timeoutMs);
|
|
178
|
+
}
|
|
179
|
+
else if (signal.aborted) {
|
|
180
|
+
throw getAbortError(signal);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
const controller = new AbortController();
|
|
184
|
+
const originalSignal = signal;
|
|
185
|
+
originalSignal.addEventListener("abort", () => controller.abort(originalSignal.reason), {
|
|
186
|
+
once: true,
|
|
187
|
+
});
|
|
188
|
+
timer = setTimeout(() => controller.abort(TIMEOUT_ERROR), timeoutMs);
|
|
189
|
+
signal = controller.signal;
|
|
190
|
+
}
|
|
81
191
|
}
|
|
82
192
|
if (signal?.aborted)
|
|
83
193
|
throw getAbortError(signal);
|
|
84
194
|
if (maxConcurrent > 0 && this.activeRequests >= maxConcurrent) {
|
|
85
|
-
await
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
reject(getAbortError(signal));
|
|
89
|
-
};
|
|
90
|
-
signal?.addEventListener("abort", onAbort, { once: true });
|
|
91
|
-
this.concurrencyQueue.push(() => {
|
|
92
|
-
signal?.removeEventListener("abort", onAbort);
|
|
93
|
-
resolve();
|
|
94
|
-
});
|
|
95
|
-
});
|
|
195
|
+
await this.waitForSlot(signal);
|
|
196
|
+
if (signal?.aborted)
|
|
197
|
+
throw getAbortError(signal);
|
|
96
198
|
}
|
|
97
|
-
if (signal?.aborted)
|
|
98
|
-
throw getAbortError(signal);
|
|
99
199
|
this.activeRequests++;
|
|
100
200
|
try {
|
|
101
|
-
const
|
|
201
|
+
const headers = this.prepareHeaders(req);
|
|
202
|
+
const fullUrl = resolveUrl(this.config?.baseUrl ?? "", req.url);
|
|
203
|
+
const init = {
|
|
102
204
|
method: req.method,
|
|
103
|
-
headers: this.prepareHeaders(req),
|
|
104
|
-
body: req.body,
|
|
105
|
-
signal,
|
|
106
|
-
keepalive: this._keepalive,
|
|
107
205
|
redirect: "manual",
|
|
108
|
-
tls: this._tlsConfig,
|
|
109
|
-
});
|
|
110
|
-
if (this.hasCookies || nativeRes.headers.has("set-cookie")) {
|
|
111
|
-
const setCookies = nativeRes.headers.getSetCookie();
|
|
112
|
-
if (setCookies?.length) {
|
|
113
|
-
this.updateCookies(fastGetHostname(req.url), setCookies);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
const rawBody = nativeRes.body ?? new ReadableStream();
|
|
117
|
-
const bodyPayload = rawBody;
|
|
118
|
-
bodyPayload.dump = async function () {
|
|
119
|
-
return rawBody.cancel().catch(() => { });
|
|
120
206
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
207
|
+
if (headers !== undefined)
|
|
208
|
+
init.headers = headers;
|
|
209
|
+
if (req.body !== undefined)
|
|
210
|
+
init.body = normalizeBody(req.body);
|
|
211
|
+
if (signal !== undefined)
|
|
212
|
+
init.signal = signal;
|
|
213
|
+
if (this._keepalive)
|
|
214
|
+
init.keepalive = true;
|
|
215
|
+
if (this._tlsConfig !== null)
|
|
216
|
+
init.tls = this._tlsConfig;
|
|
217
|
+
const nativeRes = await fetch(fullUrl, init);
|
|
218
|
+
if (timer !== null) {
|
|
219
|
+
clearTimeout(timer);
|
|
220
|
+
timer = null;
|
|
221
|
+
}
|
|
132
222
|
return {
|
|
133
223
|
status: nativeRes.status,
|
|
134
|
-
headers: headersObj,
|
|
135
224
|
url: nativeRes.url,
|
|
136
|
-
body:
|
|
225
|
+
body: nativeRes.body,
|
|
226
|
+
headers: nativeRes.headers,
|
|
137
227
|
};
|
|
138
228
|
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
if (timer !== null)
|
|
231
|
+
clearTimeout(timer);
|
|
232
|
+
throw err;
|
|
233
|
+
}
|
|
139
234
|
finally {
|
|
140
235
|
this.activeRequests--;
|
|
141
|
-
if (maxConcurrent > 0
|
|
142
|
-
|
|
143
|
-
if (nextResolver)
|
|
144
|
-
nextResolver();
|
|
145
|
-
}
|
|
236
|
+
if (maxConcurrent > 0)
|
|
237
|
+
this.releaseSlot();
|
|
146
238
|
}
|
|
147
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* @ru Подготавливает заголовки запроса, добавляя User-Agent и cookies.
|
|
242
|
+
* @en Prepares request headers, adding User-Agent and cookies.
|
|
243
|
+
* @param req - The transport request.
|
|
244
|
+
* @returns The prepared headers or undefined.
|
|
245
|
+
*/
|
|
148
246
|
prepareHeaders(req) {
|
|
149
247
|
const original = req.headers;
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (!this.hasCookies) {
|
|
163
|
-
if (hasUserCookie) {
|
|
164
|
-
headers["Cookie"] = userCookie;
|
|
248
|
+
const needUA = this._userAgent !== undefined;
|
|
249
|
+
const needCookies = this.hasCookies;
|
|
250
|
+
if (!needUA && !needCookies)
|
|
251
|
+
return original;
|
|
252
|
+
if (original == null) {
|
|
253
|
+
const headers = Object.create(null);
|
|
254
|
+
if (needUA)
|
|
255
|
+
headers["user-agent"] = this._userAgent;
|
|
256
|
+
if (needCookies) {
|
|
257
|
+
const savedCookies = this.getCookiesForDomain(fastGetHostname(req.url));
|
|
258
|
+
if (savedCookies.length > 0)
|
|
259
|
+
headers["cookie"] = savedCookies;
|
|
165
260
|
}
|
|
166
261
|
return headers;
|
|
167
262
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const hasSavedCookies = savedCookies.length > 0;
|
|
171
|
-
if (hasUserCookie && hasSavedCookies) {
|
|
172
|
-
headers["Cookie"] = `${userCookie}; ${savedCookies}`;
|
|
263
|
+
if (needUA && original["user-agent"] === undefined) {
|
|
264
|
+
original["user-agent"] = this._userAgent;
|
|
173
265
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
266
|
+
if (needCookies) {
|
|
267
|
+
const savedCookies = this.getCookiesForDomain(fastGetHostname(req.url));
|
|
268
|
+
if (savedCookies.length > 0) {
|
|
269
|
+
const currentCookie = original["cookie"];
|
|
270
|
+
original["cookie"] = currentCookie ? currentCookie + "; " + savedCookies : savedCookies;
|
|
271
|
+
}
|
|
179
272
|
}
|
|
180
|
-
return
|
|
273
|
+
return original;
|
|
181
274
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
275
|
+
/**
|
|
276
|
+
* @ru Ожидает свободный слот в очереди concurrency.
|
|
277
|
+
* @en Waits for an available slot in the concurrency queue.
|
|
278
|
+
* @param signal - Optional abort signal.
|
|
279
|
+
* @returns Promise that resolves when a slot is available.
|
|
280
|
+
*/
|
|
281
|
+
async waitForSlot(signal) {
|
|
282
|
+
return new Promise((resolve, reject) => {
|
|
283
|
+
const currentTail = this.queueTail++;
|
|
284
|
+
const onAbort = () => {
|
|
285
|
+
signal?.removeEventListener("abort", onAbort);
|
|
286
|
+
delete this.concurrencyQueue[currentTail];
|
|
287
|
+
reject(getAbortError(signal));
|
|
288
|
+
};
|
|
289
|
+
if (signal)
|
|
290
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
291
|
+
this.concurrencyQueue[currentTail] = () => {
|
|
292
|
+
signal?.removeEventListener("abort", onAbort);
|
|
293
|
+
resolve();
|
|
294
|
+
};
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* @ru Освобождает слот и уведомляет следующий запрос в очереди.
|
|
299
|
+
* @en Releases a slot and notifies the next request in the queue.
|
|
300
|
+
*/
|
|
301
|
+
releaseSlot() {
|
|
302
|
+
while (this.queueHead < this.queueTail) {
|
|
303
|
+
const next = this.concurrencyQueue[this.queueHead];
|
|
304
|
+
if (next !== undefined) {
|
|
305
|
+
delete this.concurrencyQueue[this.queueHead];
|
|
306
|
+
this.queueHead++;
|
|
307
|
+
next();
|
|
308
|
+
return;
|
|
193
309
|
}
|
|
310
|
+
this.queueHead++;
|
|
311
|
+
}
|
|
312
|
+
if (this.queueHead === this.queueTail) {
|
|
313
|
+
this.queueHead = 0;
|
|
314
|
+
this.queueTail = 0;
|
|
194
315
|
}
|
|
195
|
-
const result = matchedCookies.length > 0 ? matchedCookies.join("; ") : "";
|
|
196
|
-
this.cookieCache.set(requestDomain, result);
|
|
197
|
-
return result;
|
|
198
316
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
317
|
+
/**
|
|
318
|
+
* @ru Извлекает cookies для указанного домена из cookie jar.
|
|
319
|
+
* @en Retrieves cookies for the specified domain from the cookie jar.
|
|
320
|
+
* @param requestDomain - The domain to get cookies for.
|
|
321
|
+
* @returns The cookie string or empty string.
|
|
322
|
+
*/
|
|
323
|
+
getCookiesForDomain(requestDomain) {
|
|
324
|
+
const cached = this.cookieCache[requestDomain];
|
|
325
|
+
if (cached !== undefined)
|
|
326
|
+
return cached;
|
|
327
|
+
let result = "";
|
|
328
|
+
const domainsLen = this.cookieDomains.length;
|
|
329
|
+
for (let i = 0; i < domainsLen; i++) {
|
|
330
|
+
const storedDomain = this.cookieDomains[i];
|
|
331
|
+
if (!storedDomain)
|
|
208
332
|
continue;
|
|
209
|
-
|
|
210
|
-
if (equalIdx === -1)
|
|
333
|
+
if (requestDomain !== storedDomain && !requestDomain.endsWith("." + storedDomain))
|
|
211
334
|
continue;
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
if (!key)
|
|
335
|
+
const cookiesMap = this.cookieJar[storedDomain];
|
|
336
|
+
if (!cookiesMap)
|
|
215
337
|
continue;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
continue;
|
|
221
|
-
const trimmedAttr = attr.trim();
|
|
222
|
-
if (trimmedAttr.toLowerCase().startsWith("domain=")) {
|
|
223
|
-
let domVal = trimmedAttr.slice(7).trim();
|
|
224
|
-
if (domVal.startsWith(".")) {
|
|
225
|
-
domVal = domVal.slice(1);
|
|
226
|
-
}
|
|
227
|
-
if (domVal)
|
|
228
|
-
targetDomain = domVal;
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
let domainMap = this.cookieJar.get(targetDomain);
|
|
233
|
-
if (!domainMap) {
|
|
234
|
-
domainMap = new Map();
|
|
235
|
-
this.cookieJar.set(targetDomain, domainMap);
|
|
236
|
-
}
|
|
237
|
-
domainMap.set(key, val);
|
|
238
|
-
if (this.cookieCache.size > 0) {
|
|
239
|
-
for (const cachedDomain of this.cookieCache.keys()) {
|
|
240
|
-
if (cachedDomain === targetDomain ||
|
|
241
|
-
cachedDomain.endsWith("." + targetDomain)) {
|
|
242
|
-
this.cookieCache.delete(cachedDomain);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
338
|
+
for (const key in cookiesMap) {
|
|
339
|
+
if (result.length > 0)
|
|
340
|
+
result += "; ";
|
|
341
|
+
result += key + "=" + cookiesMap[key];
|
|
245
342
|
}
|
|
246
343
|
}
|
|
344
|
+
if (this.cookieCacheSize > 1024) {
|
|
345
|
+
this.cookieCache = Object.create(null);
|
|
346
|
+
this.cookieCacheSize = 0;
|
|
347
|
+
}
|
|
348
|
+
this.cookieCache[requestDomain] = result;
|
|
349
|
+
this.cookieCacheSize++;
|
|
350
|
+
return result;
|
|
247
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* @ru Мягко закрывает транспорт, очищая очереди и cookies.
|
|
354
|
+
* @en Gracefully closes the transport, clearing queues and cookies.
|
|
355
|
+
* @returns Promise that resolves when the transport is closed.
|
|
356
|
+
*/
|
|
248
357
|
async close() {
|
|
249
|
-
this.concurrencyQueue =
|
|
250
|
-
this.
|
|
251
|
-
this.
|
|
358
|
+
this.concurrencyQueue = Object.create(null);
|
|
359
|
+
this.queueHead = 0;
|
|
360
|
+
this.queueTail = 0;
|
|
361
|
+
this.cookieJar = Object.create(null);
|
|
362
|
+
this.cookieDomains.length = 0;
|
|
363
|
+
this.cookieCache = Object.create(null);
|
|
364
|
+
this.cookieCacheSize = 0;
|
|
365
|
+
this.activeRequests = 0;
|
|
366
|
+
this.hasCookies = false;
|
|
252
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* @ru Принудительно уничтожает транспорт и все активные соединения.
|
|
370
|
+
* @en Immediately destroys the transport and all active connections.
|
|
371
|
+
* @returns Promise that resolves when the transport is destroyed.
|
|
372
|
+
*/
|
|
253
373
|
async destroy() {
|
|
254
374
|
await this.close();
|
|
255
375
|
}
|
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/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { BunTransport } from "./bun.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { BunTransport } from "./bun.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperttp/transport-bun",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "High-performance
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "High-performance HTTP transport for Bun with native fetch optimizations",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"main": "./index.js",
|
|
8
|
+
"types": "./index.d.ts",
|
|
6
9
|
"exports": {
|
|
7
10
|
".": {
|
|
8
11
|
"types": "./index.d.ts",
|
|
9
|
-
"import": "./index.js"
|
|
10
|
-
|
|
11
|
-
},
|
|
12
|
-
"./package.json": "./package.json"
|
|
12
|
+
"import": "./index.js"
|
|
13
|
+
}
|
|
13
14
|
},
|
|
14
15
|
"keywords": [
|
|
15
16
|
"http",
|
|
16
|
-
"
|
|
17
|
+
"transport",
|
|
17
18
|
"high-performance",
|
|
18
19
|
"fetch",
|
|
19
|
-
"bun"
|
|
20
|
+
"bun",
|
|
21
|
+
"hyperttp"
|
|
20
22
|
],
|
|
21
23
|
"author": "dirold2",
|
|
22
24
|
"license": "MIT",
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
"url": "git+https://github.com/IT-IF-OR/hyperttp-transport-bun.git"
|
|
26
28
|
},
|
|
27
29
|
"peerDependencies": {
|
|
28
|
-
"@hyperttp/types": "
|
|
30
|
+
"@hyperttp/types": "^0.2.1"
|
|
29
31
|
},
|
|
30
32
|
"private": false
|
|
31
33
|
}
|