@hyperttp/core 1.3.1 → 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,17 @@ 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();
7
8
  /**
8
- * @ru Основной класс HTTP-клиента Hyperttp. Управляет транспортами, плагинами, перехватчиками, повторными попытками и сжатием.
9
- * @en Core HTTP client class for Hyperttp. Manages transports, plugins, interceptors, retries, and compression.
9
+ * @ru Основной класс HTTP-клиента с поддержкой плагинов, потоковой передачи, кэширования URL и гибкой настройки.
10
+ * @en Core HTTP client class with plugin support, streaming, URL caching and flexible configuration.
11
+ * @implements {IHyperCore}
10
12
  */
11
13
  export class HyperCore {
12
- /** @ru Конфигурация клиента (базовый URL, таймауты, заголовки и т.д.). @en Client configuration (base URL, timeouts, headers, etc.). */
14
+ /**
15
+ * @ru Активная конфигурация клиента (объединена с настройками по умолчанию).
16
+ * @en Current client configuration (merged with default settings).
17
+ */
13
18
  config;
14
19
  transportManager;
15
20
  defaultHeaders;
@@ -17,9 +22,9 @@ export class HyperCore {
17
22
  pipelines = createPipelines();
18
23
  /**
19
24
  * @ru Создаёт экземпляр HyperCore.
20
- * @en Creates an instance of HyperCore.
21
- * @param config - Client configuration options.
22
- * @param transport - Optional custom transport implementation.
25
+ * @en Creates a HyperCore instance.
26
+ * @param config - Client configuration (overrides defaults).
27
+ * @param transport - Optional transport layer (auto‑selected if omitted).
23
28
  */
24
29
  constructor(config = defaultConfig, transport) {
25
30
  this.config = {
@@ -36,12 +41,31 @@ export class HyperCore {
36
41
  });
37
42
  this.pluginCtx = { config: this.config, core: this };
38
43
  }
44
+ /**
45
+ * @ru Возвращает текущий транспортный экземпляр (или null, если он ещё не инициализирован).
46
+ * @en Returns the current transport instance (or null if not yet initialized).
47
+ */
39
48
  get transport() {
40
49
  return this.transportManager.instance;
41
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
+ */
42
60
  ensureTransport() {
43
61
  return this.transportManager.get();
44
62
  }
63
+ /**
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).
68
+ */
45
69
  async dispatchInternal(req) {
46
70
  try {
47
71
  if (this.pipelines.request.length > 0) {
@@ -69,26 +93,25 @@ export class HyperCore {
69
93
  }
70
94
  }
71
95
  /**
72
- * @ru Выполняет HTTP-запрос с полным контролем (через объект InternalRequest).
73
- * @en Performs an HTTP request with full control (via InternalRequest object).
96
+ * @ru Отправляет HTTP-запрос и возвращает обычный (нестриминговый) ответ.
97
+ * @en Sends an HTTP request and returns a regular (non‑streaming) response.
74
98
  * @param req - Internal request object.
75
- * @returns Promise with the HTTP response.
99
+ * @returns Promise resolving to a typed HTTP response.
76
100
  */
77
101
  async dispatch(req) {
78
102
  return this.dispatchInternal(req);
79
103
  }
80
104
  /**
81
- * @ru Регистрирует плагин для расширения функциональности клиента.
82
- * @en Registers a plugin to extend client functionality.
83
- * @param plugin - Plugin instance.
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.
84
108
  * @returns This instance for chaining.
85
109
  */
86
110
  use(plugin) {
87
111
  const isEnabled = plugin.enabled ? plugin.enabled(this.config) : true;
88
112
  if (!isEnabled)
89
113
  return this;
90
- if (plugin.setup)
91
- plugin.setup(this.pluginCtx);
114
+ plugin.setup?.(this.pluginCtx);
92
115
  const priority = plugin.priority ?? 0;
93
116
  if (plugin.onRequest) {
94
117
  insertHookSorted(this.pipelines.request, {
@@ -98,10 +121,10 @@ export class HyperCore {
98
121
  });
99
122
  }
100
123
  if (plugin.onResponse) {
101
- const targetPipeline = plugin.mode === "background"
124
+ const target = plugin.mode === "background"
102
125
  ? this.pipelines.responseSideEffects
103
126
  : this.pipelines.responseMutators;
104
- insertHookSorted(targetPipeline, {
127
+ insertHookSorted(target, {
105
128
  name: plugin.name,
106
129
  priority,
107
130
  run: plugin.onResponse,
@@ -124,11 +147,11 @@ export class HyperCore {
124
147
  return this;
125
148
  }
126
149
  /**
127
- * @ru Выполняет GET-запрос и возвращает ответ в виде потока (StreamResponse).
128
- * @en Performs a GET request and returns the response as a stream (StreamResponse).
129
- * @param req - Request URL or RequestInterface object.
130
- * @param signal - Optional abort signal.
131
- * @returns Promise with the stream response.
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.
132
155
  */
133
156
  async stream(req, signal) {
134
157
  const internalReq = this.buildInternalRequest("GET", req, undefined, signal);
@@ -136,12 +159,12 @@ export class HyperCore {
136
159
  return this.dispatchInternal(internalReq);
137
160
  }
138
161
  /**
139
- * @ru Выполняет POST-запрос и возвращает ответ в виде потока (StreamResponse).
140
- * @en Performs a POST request and returns the response as a stream (StreamResponse).
141
- * @param req - Request URL or RequestInterface object.
162
+ * @ru Выполняет POST-запрос с потоковым ответом.
163
+ * @en Performs a POST request with a streaming response.
164
+ * @param req - Request URL or configuration object.
142
165
  * @param body - Request body data.
143
- * @param signal - Optional abort signal.
144
- * @returns Promise with the stream response.
166
+ * @param signal - Optional AbortSignal to cancel the request.
167
+ * @returns Promise resolving to a StreamResponse.
145
168
  */
146
169
  async postStream(req, body, signal) {
147
170
  const internalReq = this.buildInternalRequest("POST", req, body, signal);
@@ -151,9 +174,9 @@ export class HyperCore {
151
174
  /**
152
175
  * @ru Выполняет GET-запрос.
153
176
  * @en Performs a GET request.
154
- * @param req - Request URL or RequestInterface object.
155
- * @param signal - Optional abort signal.
156
- * @returns Promise with the HTTP response.
177
+ * @param req - Request URL or configuration object.
178
+ * @param signal - Optional AbortSignal to cancel the request.
179
+ * @returns Promise resolving to an HttpResponse.
157
180
  */
158
181
  get(req, signal) {
159
182
  return this.dispatch(this.buildInternalRequest("GET", req, undefined, signal));
@@ -161,10 +184,10 @@ export class HyperCore {
161
184
  /**
162
185
  * @ru Выполняет POST-запрос.
163
186
  * @en Performs a POST request.
164
- * @param req - Request URL or RequestInterface object.
187
+ * @param req - Request URL or configuration object.
165
188
  * @param body - Request body data.
166
- * @param signal - Optional abort signal.
167
- * @returns Promise with the HTTP response.
189
+ * @param signal - Optional AbortSignal to cancel the request.
190
+ * @returns Promise resolving to an HttpResponse.
168
191
  */
169
192
  post(req, body, signal) {
170
193
  return this.dispatch(this.buildInternalRequest("POST", req, body, signal));
@@ -172,10 +195,10 @@ export class HyperCore {
172
195
  /**
173
196
  * @ru Выполняет PUT-запрос.
174
197
  * @en Performs a PUT request.
175
- * @param req - Request URL or RequestInterface object.
198
+ * @param req - Request URL or configuration object.
176
199
  * @param body - Request body data.
177
- * @param signal - Optional abort signal.
178
- * @returns Promise with the HTTP response.
200
+ * @param signal - Optional AbortSignal to cancel the request.
201
+ * @returns Promise resolving to an HttpResponse.
179
202
  */
180
203
  put(req, body, signal) {
181
204
  return this.dispatch(this.buildInternalRequest("PUT", req, body, signal));
@@ -183,10 +206,10 @@ export class HyperCore {
183
206
  /**
184
207
  * @ru Выполняет PATCH-запрос.
185
208
  * @en Performs a PATCH request.
186
- * @param req - Request URL or RequestInterface object.
209
+ * @param req - Request URL or configuration object.
187
210
  * @param body - Request body data.
188
- * @param signal - Optional abort signal.
189
- * @returns Promise with the HTTP response.
211
+ * @param signal - Optional AbortSignal to cancel the request.
212
+ * @returns Promise resolving to an HttpResponse.
190
213
  */
191
214
  patch(req, body, signal) {
192
215
  return this.dispatch(this.buildInternalRequest("PATCH", req, body, signal));
@@ -194,9 +217,9 @@ export class HyperCore {
194
217
  /**
195
218
  * @ru Выполняет DELETE-запрос.
196
219
  * @en Performs a DELETE request.
197
- * @param req - Request URL or RequestInterface object.
198
- * @param signal - Optional abort signal.
199
- * @returns Promise with the HTTP response.
220
+ * @param req - Request URL or configuration object.
221
+ * @param signal - Optional AbortSignal to cancel the request.
222
+ * @returns Promise resolving to an HttpResponse.
200
223
  */
201
224
  delete(req, signal) {
202
225
  return this.dispatch(this.buildInternalRequest("DELETE", req, undefined, signal));
@@ -204,10 +227,10 @@ export class HyperCore {
204
227
  /**
205
228
  * @ru Выполняет OPTIONS-запрос.
206
229
  * @en Performs an OPTIONS request.
207
- * @param req - Request URL or RequestInterface object.
208
- * @param body - Optional request body data.
209
- * @param signal - Optional abort signal.
210
- * @returns Promise with the HTTP response.
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.
211
234
  */
212
235
  options(req, body, signal) {
213
236
  return this.dispatch(this.buildInternalRequest("OPTIONS", req, body, signal));
@@ -215,17 +238,17 @@ export class HyperCore {
215
238
  /**
216
239
  * @ru Выполняет HEAD-запрос.
217
240
  * @en Performs a HEAD request.
218
- * @param req - Request URL or RequestInterface object.
219
- * @param signal - Optional abort signal.
220
- * @returns Promise with the HTTP response (body is always null).
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.
221
244
  */
222
245
  head(req, signal) {
223
246
  return this.dispatch(this.buildInternalRequest("HEAD", req, undefined, signal));
224
247
  }
225
248
  /**
226
- * @ru Создаёт новый экземпляр HyperCore с расширенной конфигурацией (поверх текущей).
227
- * @en Creates a new HyperCore instance with extended configuration (on top of current).
228
- * @param options - Additional configuration options.
249
+ * @ru Создаёт новый экземпляр HyperCore путём расширения текущей конфигурации.
250
+ * @en Creates a new HyperCore instance by extending the current configuration.
251
+ * @param options - Partial configuration overrides.
229
252
  * @returns New HyperCore instance.
230
253
  */
231
254
  extend(options) {
@@ -236,74 +259,80 @@ export class HyperCore {
236
259
  }, this.transport ?? undefined);
237
260
  }
238
261
  /**
239
- * @ru Алиас для extend(). Создаёт новый экземпляр HyperCore.
240
- * @en Alias for extend(). Creates a new HyperCore instance.
241
- * @param options - Configuration options.
262
+ * @ru Алиас для {@link extend}. Создаёт новый экземпляр с переопределёнными опциями.
263
+ * @en Alias for {@link extend}. Creates a new instance with overridden options.
264
+ * @param options - Partial configuration overrides.
242
265
  * @returns New HyperCore instance.
243
266
  */
244
267
  create(options) {
245
268
  return this.extend(options);
246
269
  }
247
270
  /**
248
- * @ru Уничтожает клиент, закрывая соединения и очищая ресурсы.
249
- * @en Destroys the client, closing connections and cleaning up resources.
250
- * @param graceful - If true, attempts graceful shutdown (default: true).
251
- * @returns Promise that resolves when destruction is complete.
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.
252
275
  */
253
276
  async destroy(graceful = true) {
254
277
  await this.transportManager.destroy(graceful);
255
278
  }
256
279
  /**
257
- * @ru Выполняет запрос и сразу возвращает распарсенный JSON (сокращённый метод).
258
- * @en Performs a request and immediately returns parsed JSON (shortcut method).
259
- * @param req - Request URL or RequestInterface object.
260
- * @param signal - Optional abort signal.
261
- * @returns Promise with the parsed JSON value.
262
- * @throws If the response does not contain a json() method.
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.
263
286
  */
264
287
  async json(req, signal) {
265
288
  const res = await this.dispatchShortcut(req, signal);
266
- if (!res.json)
267
- throw new Error("[HyperCore] Method 'json()' is missing on response object.");
268
- return res.json();
289
+ return res.json?.() ?? Promise.reject(new Error("json() not supported"));
269
290
  }
270
291
  /**
271
- * @ru Выполняет запрос и возвращает тело как строку (сокращённый метод).
272
- * @en Performs a request and returns the body as a string (shortcut method).
273
- * @param req - Request URL or RequestInterface object.
274
- * @param signal - Optional abort signal.
275
- * @returns Promise with the response text.
276
- * @throws If the response does not contain a text() method.
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.
277
298
  */
278
299
  async text(req, signal) {
279
300
  const res = await this.dispatchShortcut(req, signal);
280
- if (!res.text)
281
- throw new Error("[HyperCore] Method 'text()' is missing on response object.");
282
- return res.text();
301
+ return res.text?.() ?? Promise.reject(new Error("text() not supported"));
283
302
  }
284
303
  /**
285
- * @ru Выполняет запрос и немедленно отменяет (сбрасывает) тело ответа без чтения.
286
- * @en Performs a request and immediately discards the response body without reading.
287
- * @param req - Request URL or RequestInterface object.
288
- * @param signal - Optional abort signal.
289
- * @returns Promise that resolves after dumping the response.
290
- * @throws If the response does not contain a dump() method.
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.
291
309
  */
292
310
  async dump(req, signal) {
293
311
  const res = await this.dispatchShortcut(req, signal);
294
- if (!res.dump)
295
- throw new Error("[HyperCore] Method 'dump()' is missing on response object.");
296
- await res.dump();
312
+ await res.dump?.();
297
313
  }
314
+ /**
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.
319
+ */
298
320
  async runResponsePipeline(response, req) {
299
- const hasMutators = this.pipelines.responseMutators.length > 0;
300
- const hasSideEffects = this.pipelines.responseSideEffects.length > 0;
301
- if (hasMutators || hasSideEffects) {
321
+ if (this.pipelines.responseMutators.length ||
322
+ this.pipelines.responseSideEffects.length) {
302
323
  await executeResponsePipeline(this.pipelines.responseMutators, this.pipelines.responseSideEffects, response, req, this.pluginCtx, this.config.logger);
303
324
  }
304
325
  }
326
+ /**
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.
333
+ */
305
334
  async handleDispatchError(error, req) {
306
- if (this.pipelines.error.length > 0) {
335
+ if (this.pipelines.error.length) {
307
336
  const recovered = await executeErrorPipeline(this.pipelines.error, error, req, this.pluginCtx);
308
337
  if (recovered) {
309
338
  await this.runResponsePipeline(recovered, req);
@@ -312,115 +341,121 @@ export class HyperCore {
312
341
  }
313
342
  throw error;
314
343
  }
344
+ /**
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).
348
+ */
315
349
  applyDecompression(rawResponse) {
316
- if (!rawResponse.body)
317
- return;
318
- const encodingHeader = rawResponse.headers?.["content-encoding"] ??
319
- rawResponse.headers?.["Content-Encoding"];
320
- if (!encodingHeader)
321
- return;
322
- const contentEncoding = typeof encodingHeader === "string"
323
- ? encodingHeader
324
- : Array.isArray(encodingHeader)
325
- ? encodingHeader[0]
326
- : undefined;
327
- if (!contentEncoding)
350
+ const encoding = rawResponse.headers?.["content-encoding"];
351
+ if (!encoding || !rawResponse.body)
328
352
  return;
353
+ const enc = Array.isArray(encoding) ? encoding[0] : encoding;
329
354
  if (rawResponse.body instanceof Uint8Array) {
330
- rawResponse.body = decompressBuffer(rawResponse.body, contentEncoding);
355
+ rawResponse.body = decompressBuffer(rawResponse.body, enc);
331
356
  }
332
357
  else {
333
- rawResponse.body = createDecompressStream(rawResponse.body, contentEncoding);
358
+ rawResponse.body = createDecompressStream(rawResponse.body, enc);
334
359
  }
335
360
  }
361
+ /**
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.
370
+ */
336
371
  buildInternalRequest(method, req, body, signal) {
337
- const isStr = typeof req === "string";
338
372
  const rawUrl = normalizeUrl(req);
339
373
  if (!rawUrl) {
340
- throw new Error(`[HyperCore] Critical failure: 'url' resolved to undefined for ${method}.`);
374
+ throw new Error(`[HyperCore] URL is undefined for ${method}`);
341
375
  }
342
- const urlObj = new URL(rawUrl);
343
- const castedReq = isStr
344
- ? undefined
345
- : req;
346
- if (castedReq?.query) {
347
- this.appendQueryParams(urlObj, castedReq.query);
348
- }
349
- const context = {
350
- method,
351
- url: urlObj.href,
352
- origin: urlObj.origin,
353
- path: urlObj.pathname + urlObj.search,
354
- };
355
- 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
+ }
356
389
  return {
357
- ...context,
390
+ method,
391
+ url: cached.href,
392
+ origin: cached.origin,
393
+ path: cached.path,
358
394
  headers: { ...this.defaultHeaders },
359
395
  body,
360
396
  signal,
361
397
  meta: {},
362
398
  };
363
399
  }
364
- const rawHeaders = (req.headers ?? castedReq._headers);
365
- const headers = rawHeaders
366
- ? normalizeHeaders(mergeHeadersFast(this.defaultHeaders, rawHeaders))
367
- : { ...this.defaultHeaders };
368
- const rawBody = castedReq.body ?? castedReq.bodyData ?? castedReq._bodyData ?? body;
369
- const computedBody = normalizeBody(method, rawBody);
370
- const computedSignal = req.signal ?? castedReq._signal ?? signal;
371
- const meta = (req.meta ??
372
- castedReq._meta ??
373
- {});
374
- return this.createInternalRequestObject(castedReq, {
375
- ...context,
376
- headers,
377
- body: computedBody,
378
- signal: computedSignal,
379
- 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 ?? {},
380
414
  });
381
415
  }
382
- createInternalRequestObject(sourceReq, overrides) {
383
- const proto = Object.getPrototypeOf(sourceReq);
416
+ /**
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.
422
+ */
423
+ createInternalRequestObject(source, overrides) {
424
+ const proto = Object.getPrototypeOf(source);
384
425
  const target = proto && proto !== Object.prototype ? Object.create(proto) : {};
385
- for (const key in sourceReq) {
386
- if (Object.prototype.hasOwnProperty.call(sourceReq, key)) {
387
- target[key] = sourceReq[key];
388
- }
389
- }
390
- for (const key in overrides) {
391
- if (Object.prototype.hasOwnProperty.call(overrides, key)) {
392
- target[key] = overrides[key];
393
- }
394
- }
395
- return target;
426
+ return Object.assign(target, source, overrides);
396
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
+ */
397
434
  appendQueryParams(url, query) {
398
435
  if (!query)
399
436
  return;
400
- for (const key in query) {
401
- if (Object.prototype.hasOwnProperty.call(query, key)) {
402
- const value = query[key];
403
- if (value === undefined || value === null)
404
- continue;
405
- if (Array.isArray(value)) {
406
- const len = value.length;
407
- for (let i = 0; i < len; i++) {
408
- const item = value[i];
409
- if (item === undefined || item === null)
410
- continue;
411
- url.searchParams.append(key, String(item));
412
- }
413
- }
414
- else {
415
- url.searchParams.set(key, String(value));
416
- }
437
+ for (const k in query) {
438
+ const v = query[k];
439
+ if (v == null)
440
+ continue;
441
+ if (Array.isArray(v)) {
442
+ for (const i of v)
443
+ url.searchParams.append(k, String(i));
444
+ }
445
+ else {
446
+ url.searchParams.set(k, String(v));
417
447
  }
418
448
  }
419
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
+ */
420
457
  async dispatchShortcut(req, signal) {
421
- const method = typeof req === "string"
422
- ? "GET"
423
- : (req.method ?? "GET");
458
+ const method = typeof req === "string" ? "GET" : (req.method ?? "GET");
424
459
  return this.dispatch(this.buildInternalRequest(method, req, undefined, signal));
425
460
  }
426
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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"}