@hyperttp/core 1.3.0 → 1.3.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.js CHANGED
@@ -4,12 +4,28 @@ import { TransportManager } from "../transports/manager.js";
4
4
  import { createPipelines, executeErrorPipeline, executeRequestPipeline, executeResponsePipeline, executeResponseDataPipeline, insertHookSorted, } from "../utils/pipeline.js";
5
5
  import { normalizeBody, normalizeHeaders, normalizeUrl, } from "../utils/normalize.js";
6
6
  import { decompressBuffer, createDecompressStream, } from "../utils/decompress.js";
7
+ const urlCache = new Map();
8
+ /**
9
+ * @ru Основной класс HTTP-клиента с поддержкой плагинов, потоковой передачи, кэширования URL и гибкой настройки.
10
+ * @en Core HTTP client class with plugin support, streaming, URL caching and flexible configuration.
11
+ * @implements {IHyperCore}
12
+ */
7
13
  export class HyperCore {
14
+ /**
15
+ * @ru Активная конфигурация клиента (объединена с настройками по умолчанию).
16
+ * @en Current client configuration (merged with default settings).
17
+ */
8
18
  config;
9
19
  transportManager;
10
20
  defaultHeaders;
11
21
  pluginCtx;
12
22
  pipelines = createPipelines();
23
+ /**
24
+ * @ru Создаёт экземпляр HyperCore.
25
+ * @en Creates a HyperCore instance.
26
+ * @param config - Client configuration (overrides defaults).
27
+ * @param transport - Optional transport layer (auto‑selected if omitted).
28
+ */
13
29
  constructor(config = defaultConfig, transport) {
14
30
  this.config = {
15
31
  ...defaultConfig,
@@ -25,14 +41,30 @@ export class HyperCore {
25
41
  });
26
42
  this.pluginCtx = { config: this.config, core: this };
27
43
  }
44
+ /**
45
+ * @ru Возвращает текущий транспортный экземпляр (или null, если он ещё не инициализирован).
46
+ * @en Returns the current transport instance (or null if not yet initialized).
47
+ */
28
48
  get transport() {
29
49
  return this.transportManager.instance;
30
50
  }
51
+ async getTransportName() {
52
+ const t = await this.ensureTransport();
53
+ return t.constructor.name;
54
+ }
55
+ /**
56
+ * @ru Гарантирует наличие готового к работе транспорта (асинхронная инициализация при необходимости).
57
+ * @en Ensures a ready‑to‑use transport (async initialization if needed).
58
+ * @returns Promise resolving to a transport instance.
59
+ */
31
60
  ensureTransport() {
32
61
  return this.transportManager.get();
33
62
  }
34
63
  /**
35
- * Центральный метод обработки запросов
64
+ * @ru Внутренний метод диспетчеризации запроса, обрабатывающий как обычные, так и стриминговые ответы.
65
+ * @en Internal request dispatcher handling both regular and streaming responses.
66
+ * @param req - Internal request object.
67
+ * @returns Promise resolving to a response (HttpResponse or StreamResponse).
36
68
  */
37
69
  async dispatchInternal(req) {
38
70
  try {
@@ -43,7 +75,6 @@ export class HyperCore {
43
75
  return shortCircuit;
44
76
  }
45
77
  }
46
- req.headers = normalizeHeaders(req.headers);
47
78
  const transport = this.transport || (await this.ensureTransport());
48
79
  let rawResponse = await transport.execute(req);
49
80
  if (this.pipelines.responseData.length > 0) {
@@ -61,18 +92,26 @@ export class HyperCore {
61
92
  return this.handleDispatchError(error, req);
62
93
  }
63
94
  }
95
+ /**
96
+ * @ru Отправляет HTTP-запрос и возвращает обычный (нестриминговый) ответ.
97
+ * @en Sends an HTTP request and returns a regular (non‑streaming) response.
98
+ * @param req - Internal request object.
99
+ * @returns Promise resolving to a typed HTTP response.
100
+ */
64
101
  async dispatch(req) {
65
102
  return this.dispatchInternal(req);
66
103
  }
67
104
  /**
68
- * Регистрация плагинов
105
+ * @ru Регистрирует плагин в клиенте. Плагин может добавлять хуки на различных этапах обработки запроса/ответа.
106
+ * @en Registers a plugin with the client. The plugin can add hooks at various request/response processing stages.
107
+ * @param plugin - Plugin instance to register.
108
+ * @returns This instance for chaining.
69
109
  */
70
110
  use(plugin) {
71
111
  const isEnabled = plugin.enabled ? plugin.enabled(this.config) : true;
72
112
  if (!isEnabled)
73
113
  return this;
74
- if (plugin.setup)
75
- plugin.setup(this.pluginCtx);
114
+ plugin.setup?.(this.pluginCtx);
76
115
  const priority = plugin.priority ?? 0;
77
116
  if (plugin.onRequest) {
78
117
  insertHookSorted(this.pipelines.request, {
@@ -82,10 +121,10 @@ export class HyperCore {
82
121
  });
83
122
  }
84
123
  if (plugin.onResponse) {
85
- const targetPipeline = plugin.mode === "background"
124
+ const target = plugin.mode === "background"
86
125
  ? this.pipelines.responseSideEffects
87
126
  : this.pipelines.responseMutators;
88
- insertHookSorted(targetPipeline, {
127
+ insertHookSorted(target, {
89
128
  name: plugin.name,
90
129
  priority,
91
130
  run: plugin.onResponse,
@@ -108,39 +147,110 @@ export class HyperCore {
108
147
  return this;
109
148
  }
110
149
  /**
111
- * Публичные HTTP методы-помощники
150
+ * @ru Выполняет GET-запрос с потоковым ответом.
151
+ * @en Performs a GET request with a streaming response.
152
+ * @param req - Request URL or configuration object.
153
+ * @param signal - Optional AbortSignal to cancel the request.
154
+ * @returns Promise resolving to a StreamResponse.
112
155
  */
113
156
  async stream(req, signal) {
114
157
  const internalReq = this.buildInternalRequest("GET", req, undefined, signal);
115
158
  internalReq.meta = { ...internalReq.meta, responseType: "stream" };
116
159
  return this.dispatchInternal(internalReq);
117
160
  }
161
+ /**
162
+ * @ru Выполняет POST-запрос с потоковым ответом.
163
+ * @en Performs a POST request with a streaming response.
164
+ * @param req - Request URL or configuration object.
165
+ * @param body - Request body data.
166
+ * @param signal - Optional AbortSignal to cancel the request.
167
+ * @returns Promise resolving to a StreamResponse.
168
+ */
118
169
  async postStream(req, body, signal) {
119
170
  const internalReq = this.buildInternalRequest("POST", req, body, signal);
120
171
  internalReq.meta = { ...internalReq.meta, responseType: "stream" };
121
172
  return this.dispatchInternal(internalReq);
122
173
  }
174
+ /**
175
+ * @ru Выполняет GET-запрос.
176
+ * @en Performs a GET request.
177
+ * @param req - Request URL or configuration object.
178
+ * @param signal - Optional AbortSignal to cancel the request.
179
+ * @returns Promise resolving to an HttpResponse.
180
+ */
123
181
  get(req, signal) {
124
182
  return this.dispatch(this.buildInternalRequest("GET", req, undefined, signal));
125
183
  }
184
+ /**
185
+ * @ru Выполняет POST-запрос.
186
+ * @en Performs a POST request.
187
+ * @param req - Request URL or configuration object.
188
+ * @param body - Request body data.
189
+ * @param signal - Optional AbortSignal to cancel the request.
190
+ * @returns Promise resolving to an HttpResponse.
191
+ */
126
192
  post(req, body, signal) {
127
193
  return this.dispatch(this.buildInternalRequest("POST", req, body, signal));
128
194
  }
195
+ /**
196
+ * @ru Выполняет PUT-запрос.
197
+ * @en Performs a PUT request.
198
+ * @param req - Request URL or configuration object.
199
+ * @param body - Request body data.
200
+ * @param signal - Optional AbortSignal to cancel the request.
201
+ * @returns Promise resolving to an HttpResponse.
202
+ */
129
203
  put(req, body, signal) {
130
204
  return this.dispatch(this.buildInternalRequest("PUT", req, body, signal));
131
205
  }
206
+ /**
207
+ * @ru Выполняет PATCH-запрос.
208
+ * @en Performs a PATCH request.
209
+ * @param req - Request URL or configuration object.
210
+ * @param body - Request body data.
211
+ * @param signal - Optional AbortSignal to cancel the request.
212
+ * @returns Promise resolving to an HttpResponse.
213
+ */
132
214
  patch(req, body, signal) {
133
215
  return this.dispatch(this.buildInternalRequest("PATCH", req, body, signal));
134
216
  }
217
+ /**
218
+ * @ru Выполняет DELETE-запрос.
219
+ * @en Performs a DELETE request.
220
+ * @param req - Request URL or configuration object.
221
+ * @param signal - Optional AbortSignal to cancel the request.
222
+ * @returns Promise resolving to an HttpResponse.
223
+ */
135
224
  delete(req, signal) {
136
225
  return this.dispatch(this.buildInternalRequest("DELETE", req, undefined, signal));
137
226
  }
227
+ /**
228
+ * @ru Выполняет OPTIONS-запрос.
229
+ * @en Performs an OPTIONS request.
230
+ * @param req - Request URL or configuration object.
231
+ * @param body - Request body data.
232
+ * @param signal - Optional AbortSignal to cancel the request.
233
+ * @returns Promise resolving to an HttpResponse.
234
+ */
138
235
  options(req, body, signal) {
139
236
  return this.dispatch(this.buildInternalRequest("OPTIONS", req, body, signal));
140
237
  }
238
+ /**
239
+ * @ru Выполняет HEAD-запрос.
240
+ * @en Performs a HEAD request.
241
+ * @param req - Request URL or configuration object.
242
+ * @param signal - Optional AbortSignal to cancel the request.
243
+ * @returns Promise resolving to an HttpResponse with null body.
244
+ */
141
245
  head(req, signal) {
142
246
  return this.dispatch(this.buildInternalRequest("HEAD", req, undefined, signal));
143
247
  }
248
+ /**
249
+ * @ru Создаёт новый экземпляр HyperCore путём расширения текущей конфигурации.
250
+ * @en Creates a new HyperCore instance by extending the current configuration.
251
+ * @param options - Partial configuration overrides.
252
+ * @returns New HyperCore instance.
253
+ */
144
254
  extend(options) {
145
255
  return new HyperCore({
146
256
  ...this.config,
@@ -148,45 +258,81 @@ export class HyperCore {
148
258
  network: { ...this.config.network, ...options.network },
149
259
  }, this.transport ?? undefined);
150
260
  }
261
+ /**
262
+ * @ru Алиас для {@link extend}. Создаёт новый экземпляр с переопределёнными опциями.
263
+ * @en Alias for {@link extend}. Creates a new instance with overridden options.
264
+ * @param options - Partial configuration overrides.
265
+ * @returns New HyperCore instance.
266
+ */
151
267
  create(options) {
152
268
  return this.extend(options);
153
269
  }
270
+ /**
271
+ * @ru Завершает работу клиента: закрывает транспортные соединения.
272
+ * @en Shuts down the client: closes transport connections.
273
+ * @param graceful - If true, attempts graceful shutdown (waiting for pending requests).
274
+ * @returns Promise that resolves when shutdown is complete.
275
+ */
154
276
  async destroy(graceful = true) {
155
277
  await this.transportManager.destroy(graceful);
156
278
  }
279
+ /**
280
+ * @ru Выполняет запрос и возвращает распарсенный JSON-ответ.
281
+ * @en Performs a request and returns parsed JSON response.
282
+ * @param req - Request URL or configuration object.
283
+ * @param signal - Optional AbortSignal to cancel the request.
284
+ * @returns Promise resolving to the parsed JSON value.
285
+ * @throws If response body cannot be parsed as JSON.
286
+ */
157
287
  async json(req, signal) {
158
288
  const res = await this.dispatchShortcut(req, signal);
159
- if (!res.json)
160
- throw new Error("[HyperCore] Method 'json()' is missing on response object.");
161
- return res.json();
289
+ return res.json?.() ?? Promise.reject(new Error("json() not supported"));
162
290
  }
291
+ /**
292
+ * @ru Выполняет запрос и возвращает ответ в виде текста.
293
+ * @en Performs a request and returns response as text.
294
+ * @param req - Request URL or configuration object.
295
+ * @param signal - Optional AbortSignal to cancel the request.
296
+ * @returns Promise resolving to the response body as string.
297
+ * @throws If response body cannot be read as text.
298
+ */
163
299
  async text(req, signal) {
164
300
  const res = await this.dispatchShortcut(req, signal);
165
- if (!res.text)
166
- throw new Error("[HyperCore] Method 'text()' is missing on response object.");
167
- return res.text();
301
+ return res.text?.() ?? Promise.reject(new Error("text() not supported"));
168
302
  }
303
+ /**
304
+ * @ru Выполняет запрос и полностью потребляет тело ответа (без обработки).
305
+ * @en Performs a request and fully consumes the response body (no processing).
306
+ * @param req - Request URL or configuration object.
307
+ * @param signal - Optional AbortSignal to cancel the request.
308
+ * @returns Promise that resolves when response body is drained.
309
+ */
169
310
  async dump(req, signal) {
170
311
  const res = await this.dispatchShortcut(req, signal);
171
- if (!res.dump)
172
- throw new Error("[HyperCore] Method 'dump()' is missing on response object.");
173
- await res.dump();
312
+ await res.dump?.();
174
313
  }
175
314
  /**
176
- * ПРИВАТНЫЕ МЕТОДЫ-ПОМОЩНИКИ (РЕФАКТОРИНГ)
315
+ * @ru Выполняет пайплайн обработки ответа (мутаторы и сайд-эффекты).
316
+ * @en Executes response processing pipeline (mutators and side effects).
317
+ * @param response - Response object (HttpResponse or StreamResponse).
318
+ * @param req - Original internal request.
177
319
  */
178
320
  async runResponsePipeline(response, req) {
179
- const hasMutators = this.pipelines.responseMutators.length > 0;
180
- const hasSideEffects = this.pipelines.responseSideEffects.length > 0;
181
- if (hasMutators || hasSideEffects) {
321
+ if (this.pipelines.responseMutators.length ||
322
+ this.pipelines.responseSideEffects.length) {
182
323
  await executeResponsePipeline(this.pipelines.responseMutators, this.pipelines.responseSideEffects, response, req, this.pluginCtx, this.config.logger);
183
324
  }
184
325
  }
185
326
  /**
186
- * Изолированная обработка ошибок пайплайна ответа
327
+ * @ru Обрабатывает ошибки, возникшие при выполнении запроса, с учётом пайплайна ошибок.
328
+ * @en Handles errors occurring during request execution, considering the error pipeline.
329
+ * @param error - The caught error.
330
+ * @param req - Internal request that caused the error.
331
+ * @returns If recovered, returns a response; otherwise throws the error.
332
+ * @throws The original error if no plugin recovers it.
187
333
  */
188
334
  async handleDispatchError(error, req) {
189
- if (this.pipelines.error.length > 0) {
335
+ if (this.pipelines.error.length) {
190
336
  const recovered = await executeErrorPipeline(this.pipelines.error, error, req, this.pluginCtx);
191
337
  if (recovered) {
192
338
  await this.runResponsePipeline(recovered, req);
@@ -196,119 +342,120 @@ export class HyperCore {
196
342
  throw error;
197
343
  }
198
344
  /**
199
- * Применение встроенной декомпрессии на основе заголовков ответа транспорта
345
+ * @ru Применяет декомпрессию к телу ответа в зависимости от заголовка Content-Encoding.
346
+ * @en Applies decompression to the response body based on the Content-Encoding header.
347
+ * @param rawResponse - Raw transport response object (mutated in place).
200
348
  */
201
349
  applyDecompression(rawResponse) {
202
- if (!rawResponse.body)
203
- return;
204
- const encodingHeader = rawResponse.headers?.["content-encoding"] ??
205
- rawResponse.headers?.["Content-Encoding"];
206
- if (!encodingHeader)
207
- return;
208
- const contentEncoding = typeof encodingHeader === "string"
209
- ? encodingHeader
210
- : Array.isArray(encodingHeader)
211
- ? encodingHeader[0]
212
- : undefined;
213
- if (!contentEncoding)
350
+ const encoding = rawResponse.headers?.["content-encoding"];
351
+ if (!encoding || !rawResponse.body)
214
352
  return;
353
+ const enc = Array.isArray(encoding) ? encoding[0] : encoding;
215
354
  if (rawResponse.body instanceof Uint8Array) {
216
- rawResponse.body = decompressBuffer(rawResponse.body, contentEncoding);
355
+ rawResponse.body = decompressBuffer(rawResponse.body, enc);
217
356
  }
218
357
  else {
219
- rawResponse.body = createDecompressStream(rawResponse.body, contentEncoding);
358
+ rawResponse.body = createDecompressStream(rawResponse.body, enc);
220
359
  }
221
360
  }
222
361
  /**
223
- * Сборка внутреннего объекта запроса InternalRequest
362
+ * @ru Строит внутренний объект запроса на основе пользовательских параметров.
363
+ * @en Builds an internal request object from user parameters.
364
+ * @param method - HTTP method.
365
+ * @param req - Request URL or configuration object.
366
+ * @param body - Request body (optional).
367
+ * @param signal - AbortSignal (optional).
368
+ * @returns Fully constructed InternalRequest.
369
+ * @throws If URL is undefined or invalid.
224
370
  */
225
371
  buildInternalRequest(method, req, body, signal) {
226
- const isStr = typeof req === "string";
227
372
  const rawUrl = normalizeUrl(req);
228
373
  if (!rawUrl) {
229
- throw new Error(`[HyperCore] Critical failure: 'url' resolved to undefined for ${method}.`);
230
- }
231
- const urlObj = new URL(rawUrl);
232
- const castedReq = isStr
233
- ? undefined
234
- : req;
235
- if (castedReq?.query) {
236
- this.appendQueryParams(urlObj, castedReq.query);
374
+ throw new Error(`[HyperCore] URL is undefined for ${method}`);
237
375
  }
238
- const context = {
239
- method,
240
- url: urlObj.href,
241
- origin: urlObj.origin,
242
- path: urlObj.pathname + urlObj.search,
243
- };
244
- if (isStr) {
376
+ if (typeof req === "string") {
377
+ let cached = urlCache.get(rawUrl);
378
+ if (!cached) {
379
+ const urlObj = new URL(rawUrl);
380
+ cached = {
381
+ href: urlObj.href,
382
+ origin: urlObj.origin,
383
+ path: urlObj.pathname + urlObj.search,
384
+ };
385
+ if (urlCache.size > 512)
386
+ urlCache.clear();
387
+ urlCache.set(rawUrl, cached);
388
+ }
245
389
  return {
246
- ...context,
390
+ method,
391
+ url: cached.href,
392
+ origin: cached.origin,
393
+ path: cached.path,
247
394
  headers: { ...this.defaultHeaders },
248
395
  body,
249
396
  signal,
250
397
  meta: {},
251
398
  };
252
399
  }
253
- const rawHeaders = (req.headers ?? castedReq._headers);
254
- const headers = rawHeaders
255
- ? normalizeHeaders(mergeHeadersFast(this.defaultHeaders, rawHeaders))
256
- : { ...this.defaultHeaders };
257
- const rawBody = castedReq.body ?? castedReq.bodyData ?? castedReq._bodyData ?? body;
258
- const computedBody = normalizeBody(method, rawBody);
259
- const computedSignal = req.signal ?? castedReq._signal ?? signal;
260
- const meta = (req.meta ??
261
- castedReq._meta ??
262
- {});
263
- return this.createInternalRequestObject(castedReq, {
264
- ...context,
265
- headers,
266
- body: computedBody,
267
- signal: computedSignal,
268
- meta,
400
+ const urlObj = new URL(rawUrl);
401
+ if (req.query) {
402
+ this.appendQueryParams(urlObj, req.query);
403
+ }
404
+ const headers = (req.headers ?? {});
405
+ return this.createInternalRequestObject(req, {
406
+ method,
407
+ url: urlObj.href,
408
+ origin: urlObj.origin,
409
+ path: urlObj.pathname + urlObj.search,
410
+ headers: mergeHeadersFast(this.defaultHeaders, headers),
411
+ body: normalizeBody(method, req.body ?? body),
412
+ signal: req.signal ?? signal,
413
+ meta: req.meta ?? {},
269
414
  });
270
415
  }
271
416
  /**
272
- * Фабрика сохранения прототипа исходного запроса с подменой дескрипторов базовых свойств
417
+ * @ru Создаёт объект запроса, сохраняя прототип исходного объекта (если есть).
418
+ * @en Creates a request object preserving the prototype of the source object (if any).
419
+ * @param source - Original request object (may have a custom prototype).
420
+ * @param overrides - Properties to override or add.
421
+ * @returns New object with merged properties and inherited prototype.
273
422
  */
274
- createInternalRequestObject(sourceReq, overrides) {
275
- const proto = Object.getPrototypeOf(sourceReq);
423
+ createInternalRequestObject(source, overrides) {
424
+ const proto = Object.getPrototypeOf(source);
276
425
  const target = proto && proto !== Object.prototype ? Object.create(proto) : {};
277
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(sourceReq));
278
- const propertyDescriptors = {};
279
- for (const [key, value] of Object.entries(overrides)) {
280
- propertyDescriptors[key] = {
281
- value,
282
- enumerable: true,
283
- writable: true,
284
- configurable: true,
285
- };
286
- }
287
- Object.defineProperties(target, propertyDescriptors);
288
- return target;
426
+ return Object.assign(target, source, overrides);
289
427
  }
428
+ /**
429
+ * @ru Добавляет параметры запроса к URL-объекту.
430
+ * @en Appends query parameters to a URL object.
431
+ * @param url - URL object to mutate.
432
+ * @param query - Record of query parameters (supports arrays).
433
+ */
290
434
  appendQueryParams(url, query) {
291
435
  if (!query)
292
436
  return;
293
- for (const [key, value] of Object.entries(query)) {
294
- if (value === undefined || value === null)
437
+ for (const k in query) {
438
+ const v = query[k];
439
+ if (v == null)
295
440
  continue;
296
- if (Array.isArray(value)) {
297
- for (const item of value) {
298
- if (item === undefined || item === null)
299
- continue;
300
- url.searchParams.append(key, String(item));
301
- }
441
+ if (Array.isArray(v)) {
442
+ for (const i of v)
443
+ url.searchParams.append(k, String(i));
302
444
  }
303
445
  else {
304
- url.searchParams.set(key, String(value));
446
+ url.searchParams.set(k, String(v));
305
447
  }
306
448
  }
307
449
  }
450
+ /**
451
+ * @ru Упрощённый метод для текстовых/JSON-запросов, определяющий метод из объекта запроса.
452
+ * @en Shortcut method for text/JSON requests, determining method from the request object.
453
+ * @param req - Request URL or configuration object.
454
+ * @param signal - Optional AbortSignal.
455
+ * @returns Promise resolving to HttpResponse.
456
+ */
308
457
  async dispatchShortcut(req, signal) {
309
- const method = typeof req === "string"
310
- ? "GET"
311
- : (req.method ?? "GET");
458
+ const method = typeof req === "string" ? "GET" : (req.method ?? "GET");
312
459
  return this.dispatch(this.buildInternalRequest(method, req, undefined, signal));
313
460
  }
314
461
  }
@@ -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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"}