@hyperttp/core 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/Core/HyperCore.d.ts +135 -77
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +280 -246
  4. package/Core/HyperCore.js.map +1 -1
  5. package/README.md +169 -96
  6. package/package.json +14 -8
  7. package/transports/browser.d.ts +228 -0
  8. package/transports/browser.d.ts.map +1 -0
  9. package/transports/browser.js +451 -0
  10. package/transports/browser.js.map +1 -0
  11. package/transports/manager.d.ts +9 -85
  12. package/transports/manager.d.ts.map +1 -1
  13. package/transports/manager.js +152 -222
  14. package/transports/manager.js.map +1 -1
  15. package/transports/node.d.ts +4 -36
  16. package/transports/node.d.ts.map +1 -1
  17. package/transports/node.js +119 -159
  18. package/transports/node.js.map +1 -1
  19. package/utils/decompress.d.ts +16 -20
  20. package/utils/decompress.d.ts.map +1 -1
  21. package/utils/decompress.js +151 -60
  22. package/utils/decompress.js.map +1 -1
  23. package/utils/errors.d.ts +0 -10
  24. package/utils/errors.d.ts.map +1 -1
  25. package/utils/errors.js +1 -11
  26. package/utils/errors.js.map +1 -1
  27. package/utils/merge.d.ts +0 -3
  28. package/utils/merge.d.ts.map +1 -1
  29. package/utils/merge.js +12 -22
  30. package/utils/merge.js.map +1 -1
  31. package/utils/normalize.d.ts +40 -21
  32. package/utils/normalize.d.ts.map +1 -1
  33. package/utils/normalize.js +217 -138
  34. package/utils/normalize.js.map +1 -1
  35. package/utils/pipeline.d.ts +10 -30
  36. package/utils/pipeline.d.ts.map +1 -1
  37. package/utils/pipeline.js +44 -44
  38. package/utils/pipeline.js.map +1 -1
  39. package/utils/response.d.ts +105 -23
  40. package/utils/response.d.ts.map +1 -1
  41. package/utils/response.js +308 -38
  42. package/utils/response.js.map +1 -1
  43. package/utils/retryUtils.d.ts +2 -10
  44. package/utils/retryUtils.d.ts.map +1 -1
  45. package/utils/retryUtils.js +17 -21
  46. package/utils/retryUtils.js.map +1 -1
@@ -0,0 +1,451 @@
1
+ import { defaultConfig } from "../defaultConfig.js";
2
+ import { mapResponseFast, mapStreamFast, mergeHeadersFast } from "../utils/response.js";
3
+ import { TransportManager } from "../transports/manager.js";
4
+ import { createPipelines, executeErrorPipeline, executeRequestPipeline, executeResponsePipeline, executeResponseDataPipeline, insertHookSorted, } from "../utils/pipeline.js";
5
+ import { normalizeBody, normalizeHeaders, normalizeUrl } from "../utils/normalize.js";
6
+ const urlCache = Object.create(null);
7
+ let urlCacheCount = 0;
8
+ const MAX_CACHE_SIZE = 512;
9
+ const requestPool = [];
10
+ const MAX_POOL_SIZE = 64;
11
+ /**
12
+ * @ru Основной класс HTTP-клиента Hyperttp. Обеспечивает диспетчеризацию запросов,
13
+ * управление плагинами, пулинг объектов запросов и кэширование URL.
14
+ * @en Core HTTP client class for Hyperttp. Provides request dispatching,
15
+ * plugin management, request object pooling, and URL caching.
16
+ */
17
+ export class HyperCore {
18
+ config;
19
+ transportManager;
20
+ transportReady;
21
+ defaultHeaders;
22
+ pluginCtx;
23
+ pipelines = createPipelines();
24
+ hasRequestPlugins = false;
25
+ hasResponseDataPlugins = false;
26
+ hasResponsePlugins = false;
27
+ hasErrorPlugins = false;
28
+ /**
29
+ * @ru Создаёт новый экземпляр HTTP-клиента.
30
+ * @en Creates a new HTTP client instance.
31
+ * @param config - Client configuration options.
32
+ * @param transport - Optional custom transport implementation.
33
+ */
34
+ constructor(config = defaultConfig, transport) {
35
+ this.config = {
36
+ ...defaultConfig,
37
+ ...config,
38
+ network: { ...defaultConfig.network, ...config.network },
39
+ };
40
+ this.transportManager = new TransportManager(this.config, transport);
41
+ this.transportReady = this.transportManager.getSync()
42
+ ? Promise.resolve(this.transportManager.getSync())
43
+ : this.transportManager.ensure();
44
+ this.defaultHeaders = normalizeHeaders({
45
+ Accept: "application/json, text/plain, */*",
46
+ "Accept-Encoding": "gzip, deflate, br",
47
+ "User-Agent": this.config.network?.userAgent ?? "Hyperttp/2.0",
48
+ ...this.config.network?.headers,
49
+ });
50
+ this.pluginCtx = { config: this.config, core: this };
51
+ }
52
+ /**
53
+ * @ru Возвращает имя класса текущего активного транспорта.
54
+ * @en Returns the class name of the currently active transport.
55
+ * @returns Promise resolving to the transport class name.
56
+ */
57
+ async getTransportName() {
58
+ const t = this.transportManager.transport ?? (await this.transportManager.get());
59
+ return t.constructor.name;
60
+ }
61
+ /**
62
+ * @ru Отправляет внутренний запрос через полный конвейер обработки:
63
+ * плагины запроса → транспорт → плагины данных ответа → маппинг → плагины ответа.
64
+ * @en Dispatches an internal request through the full processing pipeline:
65
+ * request plugins → transport → response data plugins → mapping → response plugins.
66
+ * @template T - Expected response body type.
67
+ * @param req - The normalized internal request object.
68
+ * @returns Promise resolving to the HTTP response.
69
+ */
70
+ async dispatch(req) {
71
+ try {
72
+ if (this.hasRequestPlugins) {
73
+ const shortCircuit = await Promise.resolve(executeRequestPipeline(this.pipelines.request, req, this.pluginCtx));
74
+ if (shortCircuit != null) {
75
+ this.recycleRequest(req);
76
+ return shortCircuit;
77
+ }
78
+ }
79
+ const transport = this.transportManager.getSync() ?? (await this.transportReady);
80
+ let rawResponse = await transport.execute(req);
81
+ if (this.hasResponseDataPlugins) {
82
+ rawResponse = await Promise.resolve(executeResponseDataPipeline(this.pipelines.responseData, rawResponse, this.pluginCtx));
83
+ }
84
+ const response = req.meta?.responseType === "stream"
85
+ ? mapStreamFast(rawResponse)
86
+ : mapResponseFast(rawResponse);
87
+ if (this.hasResponsePlugins) {
88
+ await Promise.resolve(executeResponsePipeline(this.pipelines.responseMutators, this.pipelines.responseSideEffects, response, req, this.pluginCtx, this.config.logger));
89
+ }
90
+ this.recycleRequest(req);
91
+ return response;
92
+ }
93
+ catch (error) {
94
+ this.recycleRequest(req);
95
+ return this.handleDispatchError(error, req);
96
+ }
97
+ }
98
+ /**
99
+ * @ru Регистрирует плагин в экземпляре клиента. Плагины выполняются в порядке приоритета.
100
+ * @en Registers a plugin into the client instance. Plugins are executed in priority order.
101
+ * @param plugin - The plugin instance to register.
102
+ * @returns The current instance for chaining.
103
+ */
104
+ use(plugin) {
105
+ const isEnabled = plugin.enabled ? plugin.enabled(this.config) : true;
106
+ if (!isEnabled)
107
+ return this;
108
+ plugin.setup?.(this.pluginCtx);
109
+ const priority = plugin.priority ?? 0;
110
+ const hook = { name: plugin.name, priority };
111
+ if (plugin.onRequest) {
112
+ insertHookSorted(this.pipelines.request, {
113
+ ...hook,
114
+ run: plugin.onRequest,
115
+ });
116
+ this.hasRequestPlugins = true;
117
+ }
118
+ if (plugin.onResponse) {
119
+ const target = plugin.mode === "background"
120
+ ? this.pipelines.responseSideEffects
121
+ : this.pipelines.responseMutators;
122
+ insertHookSorted(target, { ...hook, run: plugin.onResponse });
123
+ this.hasResponsePlugins = true;
124
+ }
125
+ if (plugin.onResponseData) {
126
+ insertHookSorted(this.pipelines.responseData, {
127
+ ...hook,
128
+ run: plugin.onResponseData,
129
+ });
130
+ this.hasResponseDataPlugins = true;
131
+ }
132
+ if (plugin.onError) {
133
+ insertHookSorted(this.pipelines.error, { ...hook, run: plugin.onError });
134
+ this.hasErrorPlugins = true;
135
+ }
136
+ return this;
137
+ }
138
+ /**
139
+ * @ru Выполняет GET-запрос.
140
+ * @en Performs a GET request.
141
+ * @template T - Expected response body type.
142
+ * @param req - Request URL or RequestInterface object.
143
+ * @param signal - Optional abort signal.
144
+ * @returns Promise resolving to the HTTP response.
145
+ */
146
+ get(req, signal) {
147
+ return this.dispatch(this.acquireReq("GET", req, undefined, signal));
148
+ }
149
+ /**
150
+ * @ru Выполняет POST-запрос с телом.
151
+ * @en Performs a POST request with a body.
152
+ * @template T - Expected response body type.
153
+ * @param req - Request URL or RequestInterface object.
154
+ * @param body - Request body data.
155
+ * @param signal - Optional abort signal.
156
+ * @returns Promise resolving to the HTTP response.
157
+ */
158
+ post(req, body, signal) {
159
+ return this.dispatch(this.acquireReq("POST", req, body, signal));
160
+ }
161
+ /**
162
+ * @ru Выполняет PUT-запрос с телом.
163
+ * @en Performs a PUT request with a body.
164
+ * @template T - Expected response body type.
165
+ * @param req - Request URL or RequestInterface object.
166
+ * @param body - Request body data.
167
+ * @param signal - Optional abort signal.
168
+ * @returns Promise resolving to the HTTP response.
169
+ */
170
+ put(req, body, signal) {
171
+ return this.dispatch(this.acquireReq("PUT", req, body, signal));
172
+ }
173
+ /**
174
+ * @ru Выполняет PATCH-запрос с телом.
175
+ * @en Performs a PATCH request with a body.
176
+ * @template T - Expected response body type.
177
+ * @param req - Request URL or RequestInterface object.
178
+ * @param body - Request body data.
179
+ * @param signal - Optional abort signal.
180
+ * @returns Promise resolving to the HTTP response.
181
+ */
182
+ patch(req, body, signal) {
183
+ return this.dispatch(this.acquireReq("PATCH", req, body, signal));
184
+ }
185
+ /**
186
+ * @ru Выполняет DELETE-запрос.
187
+ * @en Performs a DELETE request.
188
+ * @template T - Expected response body type.
189
+ * @param req - Request URL or RequestInterface object.
190
+ * @param signal - Optional abort signal.
191
+ * @returns Promise resolving to the HTTP response.
192
+ */
193
+ delete(req, signal) {
194
+ return this.dispatch(this.acquireReq("DELETE", req, undefined, signal));
195
+ }
196
+ /**
197
+ * @ru Выполняет OPTIONS-запрос.
198
+ * @en Performs an OPTIONS request.
199
+ * @template T - Expected response body type.
200
+ * @param req - Request URL or RequestInterface object.
201
+ * @param body - Optional request body data.
202
+ * @param signal - Optional abort signal.
203
+ * @returns Promise resolving to the HTTP response.
204
+ */
205
+ options(req, body, signal) {
206
+ return this.dispatch(this.acquireReq("OPTIONS", req, body, signal));
207
+ }
208
+ /**
209
+ * @ru Выполняет HEAD-запрос (без тела ответа).
210
+ * @en Performs a HEAD request (no response body).
211
+ * @param req - Request URL or RequestInterface object.
212
+ * @param signal - Optional abort signal.
213
+ * @returns Promise resolving to the HTTP response with null body.
214
+ */
215
+ head(req, signal) {
216
+ return this.dispatch(this.acquireReq("HEAD", req, undefined, signal));
217
+ }
218
+ /**
219
+ * @ru Инициирует потоковый GET-запрос. Тело ответа возвращается как ReadableStream.
220
+ * @en Initiates a streaming GET request. Response body is returned as a ReadableStream.
221
+ * @param req - Request URL or RequestInterface object.
222
+ * @param signal - Optional abort signal.
223
+ * @returns Promise resolving to the stream response.
224
+ */
225
+ stream(req, signal) {
226
+ return this.dispatch(this.acquireReq("GET", req, undefined, signal, "stream"));
227
+ }
228
+ /**
229
+ * @ru Инициирует потоковый POST-запрос с телом. Тело ответа возвращается как ReadableStream.
230
+ * @en Initiates a streaming POST request with a body. Response body is returned as a ReadableStream.
231
+ * @template T - Expected response body type.
232
+ * @param req - Request URL or RequestInterface object.
233
+ * @param body - Request body data.
234
+ * @param signal - Optional abort signal.
235
+ * @returns Promise resolving to the stream response.
236
+ */
237
+ postStream(req, body, signal) {
238
+ return this.dispatch(this.acquireReq("POST", req, body, signal, "stream"));
239
+ }
240
+ /**
241
+ * @ru Создаёт новый экземпляр клиента, объединяя текущую конфигурацию с переданными опциями.
242
+ * @en Creates a new client instance by merging the current configuration with provided options.
243
+ * @param options - Partial configuration options to extend.
244
+ * @returns A new HyperCore instance.
245
+ */
246
+ extend(options) {
247
+ return new HyperCore({
248
+ ...this.config,
249
+ ...options,
250
+ network: { ...this.config.network, ...options.network },
251
+ }, this.transportManager.transport ?? undefined);
252
+ }
253
+ /**
254
+ * @ru Создаёт полностью новый экземпляр клиента на основе переданных опций.
255
+ * @en Creates a completely new client instance based on provided options.
256
+ * @param options - Partial configuration options for the new instance.
257
+ * @returns A new HyperCore instance.
258
+ */
259
+ create(options) {
260
+ return this.extend(options);
261
+ }
262
+ /**
263
+ * @ru Завершает работу клиента и освобождает ресурсы (соединения, пулы).
264
+ * @en Shuts down the client and releases resources (connections, pools).
265
+ * @param graceful - If true, waits for active requests to complete before closing.
266
+ * @returns Promise that resolves when shutdown is complete.
267
+ */
268
+ destroy(graceful = true) {
269
+ return this.transportManager.destroy(graceful);
270
+ }
271
+ /**
272
+ * @ru Выполняет GET-запрос и возвращает распарсенное JSON-тело ответа.
273
+ * @en Performs a GET request and returns the parsed JSON response body.
274
+ * @template T - Expected type of the parsed JSON.
275
+ * @param req - Request URL or RequestInterface object.
276
+ * @param signal - Optional abort signal.
277
+ * @returns Promise resolving to the parsed JSON data.
278
+ */
279
+ async json(req, signal) {
280
+ return ((await this.shortcut(req, signal)).json?.() ??
281
+ Promise.reject(new Error("json() not supported")));
282
+ }
283
+ /**
284
+ * @ru Выполняет GET-запрос и возвращает тело ответа как текст.
285
+ * @en Performs a GET request and returns the response body as text.
286
+ * @param req - Request URL or RequestInterface object.
287
+ * @param signal - Optional abort signal.
288
+ * @returns Promise resolving to the response text.
289
+ */
290
+ async text(req, signal) {
291
+ return ((await this.shortcut(req, signal)).text?.() ??
292
+ Promise.reject(new Error("text() not supported")));
293
+ }
294
+ /**
295
+ * @ru Выполняет GET-запрос и немедленно отбрасывает тело ответа для освобождения ресурсов.
296
+ * @en Performs a GET request and immediately discards the response body to free resources.
297
+ * @param req - Request URL or RequestInterface object.
298
+ * @param signal - Optional abort signal.
299
+ * @returns Promise that resolves when the stream is drained.
300
+ */
301
+ async dump(req, signal) {
302
+ await (await this.shortcut(req, signal)).dump?.();
303
+ }
304
+ /**
305
+ * @ru Обрабатывает ошибку диспетчеризации через конвейер плагинов обработки ошибок.
306
+ * @en Handles dispatch errors through the error handling plugin pipeline.
307
+ * @template T - Expected response body type.
308
+ * @param error - The error that occurred.
309
+ * @param req - The original internal request.
310
+ * @returns Promise resolving to a recovered HTTP response, or throws if unrecoverable.
311
+ */
312
+ async handleDispatchError(error, req) {
313
+ if (this.hasErrorPlugins) {
314
+ const recovered = await executeErrorPipeline(this.pipelines.error, error, req, this.pluginCtx);
315
+ if (recovered != null) {
316
+ if (this.hasResponsePlugins) {
317
+ await Promise.resolve(executeResponsePipeline(this.pipelines.responseMutators, this.pipelines.responseSideEffects, recovered, req, this.pluginCtx, this.config.logger));
318
+ }
319
+ return recovered;
320
+ }
321
+ }
322
+ throw error;
323
+ }
324
+ /**
325
+ * @ru Создаёт или переиспользует объект InternalRequest из пула, заполняя его поля.
326
+ * @en Creates or reuses an InternalRequest object from the pool, populating its fields.
327
+ * @param method - HTTP method (GET, POST, etc.).
328
+ * @param req - Request URL or RequestInterface object.
329
+ * @param body - Optional request body data.
330
+ * @param signal - Optional abort signal.
331
+ * @param responseType - Optional response type hint ('stream').
332
+ * @returns The populated internal request object.
333
+ */
334
+ acquireReq(method, req, body, signal, responseType) {
335
+ const pooled = requestPool.pop();
336
+ const internalReq = pooled ?? {
337
+ method: "GET",
338
+ url: "",
339
+ headers: this.defaultHeaders,
340
+ body: undefined,
341
+ signal: undefined,
342
+ meta: undefined,
343
+ };
344
+ if (typeof req === "string") {
345
+ internalReq.method = method;
346
+ internalReq.url = this.resolveUrl(req);
347
+ internalReq.headers = this.defaultHeaders;
348
+ internalReq.body = body !== undefined ? normalizeBody(method, body) : undefined;
349
+ internalReq.signal = signal;
350
+ internalReq.meta = responseType ? { responseType } : undefined;
351
+ return internalReq;
352
+ }
353
+ const rawUrl = normalizeUrl(req);
354
+ if (!rawUrl)
355
+ throw new Error(`[HyperCore] URL is undefined for ${method}`);
356
+ let finalUrl = urlCache[rawUrl];
357
+ if (!finalUrl) {
358
+ const urlObj = new URL(rawUrl);
359
+ if (req.query)
360
+ this.appendQueryParams(urlObj, req.query);
361
+ finalUrl = urlObj.href;
362
+ if (urlCacheCount < MAX_CACHE_SIZE) {
363
+ urlCache[rawUrl] = finalUrl;
364
+ urlCacheCount++;
365
+ }
366
+ }
367
+ internalReq.method = method;
368
+ internalReq.url = finalUrl;
369
+ internalReq.headers = req.headers
370
+ ? mergeHeadersFast(this.defaultHeaders, req.headers)
371
+ : this.defaultHeaders;
372
+ internalReq.body = normalizeBody(method, req.body ?? body);
373
+ internalReq.signal = req.signal ?? signal;
374
+ internalReq.meta = responseType
375
+ ? { responseType }
376
+ : req.meta
377
+ ? {
378
+ responseType: req.meta.responseType,
379
+ }
380
+ : undefined;
381
+ return internalReq;
382
+ }
383
+ /**
384
+ * @ru Возвращает объект запроса в пул для переиспользования, очищая ссылки для GC.
385
+ * @en Returns the request object to the pool for reuse, clearing references for GC.
386
+ * @param req - The internal request object to recycle.
387
+ */
388
+ recycleRequest(req) {
389
+ if (requestPool.length < MAX_POOL_SIZE) {
390
+ req.body = undefined;
391
+ req.signal = undefined;
392
+ req.meta = undefined;
393
+ requestPool.push(req);
394
+ }
395
+ }
396
+ /**
397
+ * @ru Разрешает и кэширует URL, нормализуя его через URL API при необходимости.
398
+ * @en Resolves and caches the URL, normalizing it via the URL API when necessary.
399
+ * @param url - The raw URL string.
400
+ * @returns The resolved and cached URL string.
401
+ */
402
+ resolveUrl(url) {
403
+ if (!url)
404
+ throw new Error("[HyperCore] URL is undefined");
405
+ let finalUrl = urlCache[url];
406
+ if (finalUrl)
407
+ return finalUrl;
408
+ const hasQuery = url.includes("?") || url.endsWith("?");
409
+ const isAbsolute = url.startsWith("http://") || url.startsWith("https://");
410
+ finalUrl = !hasQuery || !isAbsolute ? new URL(url).href : url;
411
+ if (urlCacheCount < MAX_CACHE_SIZE) {
412
+ urlCache[url] = finalUrl;
413
+ urlCacheCount++;
414
+ }
415
+ return finalUrl;
416
+ }
417
+ /**
418
+ * @ru Добавляет query-параметры к объекту URL, поддерживая массивы значений.
419
+ * @en Appends query parameters to the URL object, supporting arrays of values.
420
+ * @param url - The URL object to modify.
421
+ * @param query - Record of query parameter key-value pairs.
422
+ */
423
+ appendQueryParams(url, query) {
424
+ for (const k in query) {
425
+ if (Object.prototype.hasOwnProperty.call(query, k)) {
426
+ const v = query[k];
427
+ if (v == null)
428
+ continue;
429
+ if (Array.isArray(v)) {
430
+ for (let j = 0; j < v.length; j++)
431
+ url.searchParams.append(k, String(v[j]));
432
+ }
433
+ else {
434
+ url.searchParams.set(k, String(v));
435
+ }
436
+ }
437
+ }
438
+ }
439
+ /**
440
+ * @ru Выполняет быстрый запрос с автоматическим определением HTTP-метода.
441
+ * @en Performs a shortcut request with automatic HTTP method detection.
442
+ * @param req - Request URL or RequestInterface object.
443
+ * @param signal - Optional abort signal.
444
+ * @returns Promise resolving to the HTTP response.
445
+ */
446
+ shortcut(req, signal) {
447
+ const method = typeof req === "string" ? "GET" : (req.method ?? "GET");
448
+ return this.dispatch(this.acquireReq(method, req, undefined, signal));
449
+ }
450
+ }
451
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/transports/browser.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,5 @@
1
- import type { HttpClientOptions, HyperTransport, HttpResponse, StreamResponse } from "@hyperttp/types";
2
- /**
3
- * @ru Тип среды выполнения: Bun или Node.js.
4
- * @en Runtime environment: Bun or Node.js.
5
- */
6
- export type Runtime = "bun" | "node";
7
- /**
8
- * @ru Описание доступного транспорта: имя, поддерживаемые рантаймы, пакет, экспортируемое имя, приоритет.
9
- * @en Transport definition: name, supported runtimes, package, export name, priority.
10
- */
1
+ import type { HttpClientOptions, HyperTransport } from "@hyperttp/types";
2
+ export type Runtime = "bun" | "node" | "deno" | "browser";
11
3
  type TransportDef = {
12
4
  name: string;
13
5
  runtime: Runtime[];
@@ -15,87 +7,19 @@ type TransportDef = {
15
7
  export: string;
16
8
  priority: number;
17
9
  };
18
- /**
19
- * @ru Определение текущей среды выполнения (Bun или Node) на основе глобальных объектов.
20
- * @en Detects the current runtime (Bun or Node) based on global objects.
21
- */
22
10
  export declare const CURRENT_RUNTIME: Runtime;
23
- /**
24
- * @ru Возвращает текущую среду выполнения.
25
- * @en Returns the current runtime.
26
- * @returns The current runtime ('bun' or 'node').
27
- */
28
- export declare function getRuntime(): Runtime;
29
- /**
30
- * @ru Список доступных транспортов с приоритетами. Высший приоритет — предпочтительный транспорт для рантайма.
31
- * @en List of available transports with priorities. Higher priority means preferred transport for the runtime.
32
- */
33
11
  export declare const TRANSPORTS: TransportDef[];
34
- /**
35
- * @ru Разрешает и создаёт экземпляр транспорта на основе конфигурации и текущей среды выполнения. Использует кэш классов.
36
- * @en Resolves and creates a transport instance based on configuration and the current runtime. Uses class cache.
37
- * @param config - Client configuration.
38
- * @returns Promise resolving to a transport instance.
39
- * @throws If no compatible transport is available.
40
- */
12
+ export declare const runtimeImport: <T = any>(specifier: string) => Promise<T>;
41
13
  export declare function resolveTransport(config: HttpClientOptions): Promise<HyperTransport>;
42
- /**
43
- * @ru Менеджер транспорта: ленивая загрузка, кэширование, синхронизация конфигурации, выполнение запросов, уничтожение.
44
- * @en Transport manager: lazy loading, caching, config synchronization, request execution, destruction.
45
- */
46
14
  export declare class TransportManager {
47
- private transport;
48
- private transportPromise;
15
+ transport: HyperTransport | null;
16
+ private promise;
49
17
  private config;
50
- /**
51
- * @ru Создаёт менеджер транспорта.
52
- * @en Creates a transport manager.
53
- * @param config - Client configuration.
54
- * @param customTransport - Optional pre-created transport instance.
55
- */
56
- constructor(config: HttpClientOptions, customTransport?: HyperTransport);
57
- /**
58
- * @ru Обновляет конфигурацию клиента и синхронизирует её с активным транспортом (если есть).
59
- * @en Updates the client configuration and syncs it with the active transport (if any).
60
- * @param config - New configuration.
61
- */
18
+ constructor(config: HttpClientOptions, custom?: HyperTransport);
19
+ getSync(): HyperTransport | null;
20
+ ensure(): Promise<HyperTransport>;
21
+ get(): HyperTransport | Promise<HyperTransport>;
62
22
  setConfig(config: HttpClientOptions): void;
63
- /**
64
- * @ru Возвращает текущий экземпляр транспорта (если уже загружен).
65
- * @en Returns the current transport instance (if already loaded).
66
- */
67
- get instance(): HyperTransport | null;
68
- /**
69
- * @ru Асинхронно получает транспорт (ленивая загрузка).
70
- * @en Asynchronously gets the transport (lazy loading).
71
- * @returns Promise resolving to transport instance.
72
- */
73
- get(): Promise<HyperTransport>;
74
- /**
75
- * @ru Синхронизирует конфигурацию с транспортом, если транспорт имеет свойство config.
76
- * @en Syncs configuration with the transport if the transport has a config property.
77
- */
78
- private syncConfig;
79
- /**
80
- * @ru Выполняет запрос и возвращает стандартный HttpResponse (не поток).
81
- * @en Executes a request and returns a standard HttpResponse (non-stream).
82
- * @param req - Request parameters for transport.
83
- * @returns Promise with HTTP response.
84
- */
85
- execute<T = unknown>(req: Parameters<HyperTransport["execute"]>[0]): Promise<HttpResponse<T>>;
86
- /**
87
- * @ru Выполняет запрос и возвращает потоковый ответ (StreamResponse).
88
- * @en Executes a request and returns a stream response (StreamResponse).
89
- * @param req - Request parameters for transport.
90
- * @returns Promise with stream response.
91
- */
92
- executeStream<T = unknown>(req: Parameters<HyperTransport["execute"]>[0]): Promise<StreamResponse<T>>;
93
- /**
94
- * @ru Уничтожает транспорт: закрывает соединения (graceful) или принудительно разрушает.
95
- * @en Destroys the transport: closes connections (graceful) or forces destruction.
96
- * @param graceful - If true, attempts graceful shutdown via close(). Otherwise destroys.
97
- * @returns Promise that resolves when destruction is complete.
98
- */
99
23
  destroy(graceful?: boolean): Promise<void>;
100
24
  }
101
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAIzB;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAQrC;;;GAGG;AACH,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OACe,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,YAAY,EAwBpC,CAAC;AAqIF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,cAAc,CAAC,CAiFzB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;;OAKG;gBACS,MAAM,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,cAAc;IASvE;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKjD;;;OAGG;IACH,IAAW,QAAQ,IAAI,cAAc,GAAG,IAAI,CAE3C;IAED;;;;OAIG;IACU,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;IAa3C;;;OAGG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAM3B;;;;;OAKG;IACU,aAAa,CAAC,CAAC,GAAG,OAAO,EACpC,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAM7B;;;;;OAKG;IACU,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAYrD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAG1D,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAK1B,CAAC;AAEL,eAAO,MAAM,UAAU,EAAE,YAAY,EAoCpC,CAAC;AAUF,eAAO,MAAM,aAAa,EAAwC,CAAC,CAAC,GAAG,GAAG,EACxE,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,CAAC,CAAC,CAAC;AAsFhB,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BzF;AAED,qBAAa,gBAAgB;IACpB,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC/C,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,cAAc;IAYvD,OAAO,IAAI,cAAc,GAAG,IAAI;IAIhC,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYjC,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAOpC,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBrD"}