hyperttp 0.2.2 → 0.2.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/dist/Hyperttp/Core/CacheManager.d.ts +26 -2
- package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/CacheManager.js +30 -13
- package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +68 -98
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +313 -631
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
- package/dist/Hyperttp/Core/InterceptorManager.d.ts +62 -0
- package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +1 -0
- package/dist/Hyperttp/Core/InterceptorManager.js +64 -0
- package/dist/Hyperttp/Core/InterceptorManager.js.map +1 -0
- package/dist/Hyperttp/Core/MetricsManager.d.ts +50 -2
- package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.js +48 -4
- package/dist/Hyperttp/Core/MetricsManager.js.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.d.ts +5 -40
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.js +41 -54
- package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.d.ts +50 -0
- package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.js +39 -1
- package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts +44 -73
- package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.js +71 -106
- package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
- package/dist/Hyperttp/Core/RequestExecutor.d.ts +58 -0
- package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +1 -0
- package/dist/Hyperttp/Core/RequestExecutor.js +160 -0
- package/dist/Hyperttp/Core/RequestExecutor.js.map +1 -0
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts +35 -0
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts.map +1 -0
- package/dist/Hyperttp/Core/ResponseTransformer.js +171 -0
- package/dist/Hyperttp/Core/ResponseTransformer.js.map +1 -0
- package/dist/Hyperttp/Core/index.d.ts +3 -0
- package/dist/Hyperttp/Core/index.d.ts.map +1 -1
- package/dist/Hyperttp/Core/index.js +7 -1
- package/dist/Hyperttp/Core/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,29 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @interface CacheEntry
|
|
3
|
+
*/
|
|
1
4
|
export interface CacheEntry<T> {
|
|
2
5
|
data: T;
|
|
3
6
|
etag?: string;
|
|
4
7
|
lastModified?: string;
|
|
5
8
|
timestamp: number;
|
|
6
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @interface CacheManagerOptions
|
|
12
|
+
*/
|
|
7
13
|
export interface CacheManagerOptions {
|
|
8
14
|
cacheTTL?: number;
|
|
9
15
|
cacheMaxSize?: number;
|
|
10
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* @class CacheManager
|
|
19
|
+
*/
|
|
11
20
|
export declare class CacheManager {
|
|
12
21
|
private cache;
|
|
13
22
|
private ttl;
|
|
14
23
|
constructor(options?: CacheManagerOptions);
|
|
24
|
+
/**
|
|
25
|
+
* @en Retrieves data along with HTTP validation metadata.
|
|
26
|
+
*/
|
|
15
27
|
getWithMetadata<T>(key: string): Promise<{
|
|
16
28
|
data: T;
|
|
17
29
|
etag?: string;
|
|
18
30
|
lastModified?: string;
|
|
19
31
|
isExpired: boolean;
|
|
20
32
|
} | null>;
|
|
33
|
+
/**
|
|
34
|
+
* @en Stores data with optional ETag and Last-Modified headers.
|
|
35
|
+
*/
|
|
21
36
|
setWithMetadata<T>(key: string, data: T, meta: {
|
|
22
|
-
etag?:
|
|
23
|
-
lastModified?:
|
|
37
|
+
etag?: unknown;
|
|
38
|
+
lastModified?: unknown;
|
|
24
39
|
}): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* @en Gets an item from cache.
|
|
42
|
+
*/
|
|
25
43
|
get<T>(key: string): Promise<T | undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* @en Standard async set method.
|
|
46
|
+
*/
|
|
26
47
|
set<T>(key: string, value: T): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* @en Checks if key exists and is not expired.
|
|
50
|
+
*/
|
|
27
51
|
has(key: string): Promise<boolean>;
|
|
28
52
|
delete(key: string): Promise<boolean>;
|
|
29
53
|
clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,CAAC,EAAE,mBAAmB;IASzC;;OAEG;IACG,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;IAcT;;OAEG;IACG,eAAe,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAMjD;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAItC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheManager = void 0;
|
|
4
4
|
const lru_cache_1 = require("lru-cache");
|
|
5
|
+
/**
|
|
6
|
+
* @class CacheManager
|
|
7
|
+
*/
|
|
5
8
|
class CacheManager {
|
|
6
9
|
cache;
|
|
7
10
|
ttl;
|
|
@@ -9,9 +12,13 @@ class CacheManager {
|
|
|
9
12
|
this.ttl = options?.cacheTTL ?? 300_000;
|
|
10
13
|
this.cache = new lru_cache_1.LRUCache({
|
|
11
14
|
max: options?.cacheMaxSize ?? 500,
|
|
12
|
-
|
|
15
|
+
ttl: this.ttl,
|
|
16
|
+
updateAgeOnGet: true,
|
|
13
17
|
});
|
|
14
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @en Retrieves data along with HTTP validation metadata.
|
|
21
|
+
*/
|
|
15
22
|
async getWithMetadata(key) {
|
|
16
23
|
const entry = this.cache.get(key);
|
|
17
24
|
if (!entry)
|
|
@@ -24,6 +31,9 @@ class CacheManager {
|
|
|
24
31
|
isExpired,
|
|
25
32
|
};
|
|
26
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @en Stores data with optional ETag and Last-Modified headers.
|
|
36
|
+
*/
|
|
27
37
|
async setWithMetadata(key, data, meta) {
|
|
28
38
|
this.cache.set(key, {
|
|
29
39
|
data,
|
|
@@ -32,30 +42,33 @@ class CacheManager {
|
|
|
32
42
|
timestamp: Date.now(),
|
|
33
43
|
});
|
|
34
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @en Gets an item from cache.
|
|
47
|
+
*/
|
|
35
48
|
async get(key) {
|
|
36
49
|
const entry = this.cache.get(key);
|
|
37
50
|
if (!entry)
|
|
38
51
|
return undefined;
|
|
39
|
-
const isExpired = Date.now() - entry.timestamp > this.ttl;
|
|
40
|
-
if (isExpired) {
|
|
41
|
-
this.cache.delete(key);
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
entry.timestamp = Date.now();
|
|
45
|
-
this.cache.set(key, entry);
|
|
46
52
|
return entry.data;
|
|
47
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* @en Standard async set method.
|
|
56
|
+
*/
|
|
48
57
|
async set(key, value) {
|
|
49
|
-
|
|
58
|
+
this.cache.set(key, {
|
|
59
|
+
data: value,
|
|
60
|
+
timestamp: Date.now(),
|
|
61
|
+
});
|
|
50
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* @en Checks if key exists and is not expired.
|
|
65
|
+
*/
|
|
51
66
|
async has(key) {
|
|
52
67
|
const entry = this.cache.get(key);
|
|
53
68
|
if (!entry)
|
|
54
69
|
return false;
|
|
55
|
-
// Если время жизни истекло — для метода has() записи "нет"
|
|
56
70
|
const isExpired = Date.now() - entry.timestamp > this.ttl;
|
|
57
71
|
if (isExpired) {
|
|
58
|
-
// Опционально: удаляем сразу, чтобы не забивать память
|
|
59
72
|
this.cache.delete(key);
|
|
60
73
|
return false;
|
|
61
74
|
}
|
|
@@ -67,11 +80,15 @@ class CacheManager {
|
|
|
67
80
|
async clear() {
|
|
68
81
|
this.cache.clear();
|
|
69
82
|
}
|
|
83
|
+
// --- Synchronous Methods ---
|
|
70
84
|
getSync(key) {
|
|
71
|
-
return this.cache.get(key);
|
|
85
|
+
return this.cache.get(key)?.data;
|
|
72
86
|
}
|
|
73
87
|
setSync(key, value) {
|
|
74
|
-
this.
|
|
88
|
+
this.cache.set(key, {
|
|
89
|
+
data: value,
|
|
90
|
+
timestamp: Date.now(),
|
|
91
|
+
});
|
|
75
92
|
}
|
|
76
93
|
hasSync(key) {
|
|
77
94
|
return this.cache.has(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,150 +1,114 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HttpClientInterface, HttpClientOptions,
|
|
3
|
-
import { RequestBuilder } from "./RequestBuilder";
|
|
1
|
+
import { RequestBuilder } from "./RequestBuilder.js";
|
|
2
|
+
import type { HttpClientInterface, HttpClientOptions, RequestInterface, RequestMetrics, ResponseType, StreamResponse } from "../../Types/index.js";
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @class HttpClientImproved
|
|
5
|
+
* @en High-performance HTTP client with built-in caching, queuing, rate limiting, and metrics.
|
|
6
|
+
* @ru Высокопроизводительный HTTP-клиент со встроенным кэшированием, очередями, лимитами и метриками.
|
|
7
7
|
*/
|
|
8
8
|
export default class HttpClientImproved implements HttpClientInterface {
|
|
9
|
-
private cookieJar;
|
|
10
9
|
private agent;
|
|
10
|
+
private options;
|
|
11
11
|
private cache?;
|
|
12
12
|
private queue?;
|
|
13
13
|
private limiter?;
|
|
14
|
-
private inflight;
|
|
15
|
-
private retryOptions;
|
|
16
|
-
private defaultHeaders;
|
|
17
|
-
private options;
|
|
18
|
-
private requestInterceptors;
|
|
19
|
-
private responseInterceptors;
|
|
20
14
|
private metricsManager;
|
|
15
|
+
private interceptors;
|
|
16
|
+
private transformer;
|
|
17
|
+
private executor;
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
19
|
+
* @en Internal map to track active requests for deduplication and cancellation.
|
|
20
|
+
* @ru Внутренняя карта для отслеживания активных запросов (дедупликация и отмена).
|
|
24
21
|
*/
|
|
22
|
+
private inflight;
|
|
23
|
+
private defaultHeaders;
|
|
25
24
|
constructor(options?: HttpClientOptions);
|
|
26
25
|
/**
|
|
27
|
-
*
|
|
28
|
-
* @
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
* @returns The CookieJar instance
|
|
34
|
-
*/
|
|
35
|
-
getCookieJar(): CookieJar;
|
|
36
|
-
/**
|
|
37
|
-
* Adds a request interceptor to modify requests before they are sent.
|
|
38
|
-
* @param interceptor The interceptor function to add
|
|
39
|
-
*/
|
|
40
|
-
addRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
41
|
-
/**
|
|
42
|
-
* Adds a response interceptor to modify responses after they are received.
|
|
43
|
-
* @param interceptor The interceptor function to add
|
|
26
|
+
* @en Core internal method for handling all HTTP requests.
|
|
27
|
+
* @ru Основной внутренний метод для обработки всех HTTP-запросов.
|
|
28
|
+
* @param method HTTP method (GET, POST, etc.)
|
|
29
|
+
* @param req Request object
|
|
30
|
+
* @param useCache Whether to use caching for this request
|
|
31
|
+
* @param responseType Expected response format
|
|
44
32
|
*/
|
|
45
|
-
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
46
|
-
/**
|
|
47
|
-
* @ru Закрывает агент и освобождает ресурсы (keep-alive соединения).
|
|
48
|
-
* @en Closes the HTTP agent and terminates keep-alive connections.
|
|
49
|
-
*/
|
|
50
|
-
close(): void;
|
|
51
|
-
private log;
|
|
52
|
-
private decompress;
|
|
53
|
-
private calcDelay;
|
|
54
|
-
private sleep;
|
|
55
|
-
private applyRequestInterceptors;
|
|
56
|
-
private applyResponseInterceptors;
|
|
57
|
-
private resolveRedirect;
|
|
58
|
-
private parseRetryAfterMs;
|
|
59
|
-
private readBodyWithLimit;
|
|
60
|
-
private sendWithRetry;
|
|
61
|
-
private xmlParser;
|
|
62
|
-
private parseResponse;
|
|
63
33
|
private requestInternal;
|
|
64
34
|
/**
|
|
65
|
-
* Performs an HTTP GET request.
|
|
66
|
-
* @
|
|
67
|
-
* @param
|
|
68
|
-
* @
|
|
69
|
-
* @template T The expected response type
|
|
35
|
+
* @en Performs an HTTP GET request.
|
|
36
|
+
* @ru Выполняет HTTP GET запрос.
|
|
37
|
+
* @param req Request URL or Request object
|
|
38
|
+
* @param responseType Expected response format
|
|
70
39
|
*/
|
|
71
40
|
get<T = any>(req: RequestInterface | string, responseType?: ResponseType): Promise<T>;
|
|
72
41
|
/**
|
|
73
|
-
* Performs an HTTP POST request.
|
|
74
|
-
* @
|
|
75
|
-
* @param
|
|
76
|
-
* @
|
|
77
|
-
* @
|
|
42
|
+
* @en Performs an HTTP POST request.
|
|
43
|
+
* @ru Выполняет HTTP POST запрос.
|
|
44
|
+
* @param req Request URL or Request object
|
|
45
|
+
* @param body Request body data
|
|
46
|
+
* @param responseType Expected response format
|
|
78
47
|
*/
|
|
79
48
|
post<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
|
|
80
49
|
/**
|
|
81
|
-
* Performs an HTTP PUT request.
|
|
82
|
-
* @
|
|
83
|
-
* @param responseType Optional response parsing type
|
|
84
|
-
* @returns A promise that resolves to the parsed response
|
|
85
|
-
* @template T The expected response type
|
|
50
|
+
* @en Performs an HTTP PUT request.
|
|
51
|
+
* @ru Выполняет HTTP PUT запрос.
|
|
86
52
|
*/
|
|
87
53
|
put<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
|
|
88
54
|
/**
|
|
89
|
-
* Performs an HTTP DELETE request.
|
|
90
|
-
* @
|
|
91
|
-
* @param responseType Optional response parsing type
|
|
92
|
-
* @returns A promise that resolves to the parsed response
|
|
93
|
-
* @template T The expected response type
|
|
55
|
+
* @en Performs an HTTP DELETE request.
|
|
56
|
+
* @ru Выполняет HTTP DELETE запрос.
|
|
94
57
|
*/
|
|
95
58
|
delete<T = any>(req: RequestInterface | string, responseType?: ResponseType): Promise<T>;
|
|
96
59
|
/**
|
|
97
|
-
* Performs an HTTP PATCH request.
|
|
98
|
-
* @
|
|
99
|
-
* @param responseType Optional response parsing type
|
|
100
|
-
* @returns A promise that resolves to the parsed response
|
|
101
|
-
* @template T The expected response type
|
|
60
|
+
* @en Performs an HTTP PATCH request.
|
|
61
|
+
* @ru Выполняет HTTP PATCH запрос.
|
|
102
62
|
*/
|
|
103
63
|
patch<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
|
|
104
64
|
/**
|
|
105
|
-
* @
|
|
106
|
-
* @
|
|
65
|
+
* @en Creates a RequestBuilder for a fluent API approach.
|
|
66
|
+
* @ru Создает RequestBuilder для использования Fluent API.
|
|
67
|
+
* @example client.request('url').get().send();
|
|
107
68
|
*/
|
|
108
|
-
|
|
69
|
+
request<T = any>(url: string): RequestBuilder<T>;
|
|
70
|
+
/**
|
|
71
|
+
* @en Releases all resources, aborts active requests, and closes connections.
|
|
72
|
+
* @ru Освобождает ресурсы клиента, отменяет активные запросы и закрывает соединения.
|
|
73
|
+
*/
|
|
74
|
+
destroy(): Promise<void>;
|
|
109
75
|
/**
|
|
110
|
-
* Performs an HTTP HEAD request.
|
|
111
|
-
* @
|
|
112
|
-
* @returns A promise that resolves when the request completes
|
|
76
|
+
* @en Performs an HTTP HEAD request.
|
|
77
|
+
* @ru Выполняет HTTP HEAD запрос.
|
|
113
78
|
*/
|
|
114
79
|
head(req: RequestInterface | string): Promise<{
|
|
115
80
|
status: number;
|
|
116
81
|
headers: Record<string, any>;
|
|
117
82
|
}>;
|
|
118
83
|
/**
|
|
119
|
-
*
|
|
84
|
+
* @en Executes a request and returns an AsyncIterable stream.
|
|
85
|
+
* @ru Выполняет запрос и возвращает итерируемый поток данных.
|
|
120
86
|
*/
|
|
121
|
-
|
|
87
|
+
stream(req: RequestInterface | string): Promise<StreamResponse>;
|
|
88
|
+
/**
|
|
89
|
+
* @en Clears the internal cache.
|
|
90
|
+
* @ru Полностью очищает внутренний кэш клиента.
|
|
91
|
+
*/
|
|
92
|
+
clearCache(): void;
|
|
122
93
|
/**
|
|
123
|
-
* Clears all collected
|
|
124
|
-
*
|
|
94
|
+
* @en Clears all collected performance metrics.
|
|
95
|
+
* @ru Очищает все собранные метрики производительности.
|
|
125
96
|
*/
|
|
126
97
|
clearMetrics(): void;
|
|
127
98
|
/**
|
|
128
|
-
* Retrieves metrics for a specific
|
|
129
|
-
* @
|
|
130
|
-
* @returns Metrics object if found, undefined otherwise
|
|
99
|
+
* @en Retrieves metrics for a specific URL.
|
|
100
|
+
* @ru Получает метрики для конкретного URL.
|
|
131
101
|
*/
|
|
132
102
|
getMetrics(key: string): RequestMetrics | undefined;
|
|
133
103
|
/**
|
|
134
|
-
* Retrieves all
|
|
135
|
-
* @
|
|
104
|
+
* @en Retrieves all stored request metrics.
|
|
105
|
+
* @ru Получает список всех сохраненных метрик.
|
|
136
106
|
*/
|
|
137
107
|
getAllMetrics(): RequestMetrics[];
|
|
138
108
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* @
|
|
142
|
-
* @returns RequestBuilder instance for chaining
|
|
143
|
-
*/
|
|
144
|
-
request<T = any>(url: string): RequestBuilder<T>;
|
|
145
|
-
/**
|
|
146
|
-
* Returns current statistics about the HTTP client's state.
|
|
147
|
-
* @returns An object containing cache size, request counts, and rate limit information
|
|
109
|
+
* @en Returns real-time statistics about the client's internal state.
|
|
110
|
+
* @ru Возвращает статистику состояния клиента в реальном времени.
|
|
111
|
+
* @returns Cache size, active requests, queue state, etc.
|
|
148
112
|
*/
|
|
149
113
|
getStats(): {
|
|
150
114
|
cacheSize: number;
|
|
@@ -153,5 +117,11 @@ export default class HttpClientImproved implements HttpClientInterface {
|
|
|
153
117
|
activeRequests: number;
|
|
154
118
|
currentRateLimit: number;
|
|
155
119
|
};
|
|
120
|
+
private normalizeRequest;
|
|
121
|
+
private applyDefaultOptions;
|
|
122
|
+
private prepareRequestData;
|
|
123
|
+
private createInitialMetrics;
|
|
124
|
+
private recordSuccess;
|
|
125
|
+
private recordError;
|
|
156
126
|
}
|
|
157
127
|
//# sourceMappingURL=HttpClientImproved.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
|