hyperttp 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -65
- package/dist/Hyperttp/Core/CacheManager.d.ts +16 -3
- package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/CacheManager.js +45 -13
- package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +5 -3
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +164 -157
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.d.ts +32 -0
- package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -0
- package/dist/Hyperttp/Core/MetricsManager.js +96 -0
- package/dist/Hyperttp/Core/MetricsManager.js.map +1 -0
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.js +12 -5
- package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.d.ts +6 -36
- package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.js +41 -58
- package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts +17 -4
- package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.js +41 -18
- package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
- package/dist/Hyperttp/Core/index.d.ts +4 -1
- package/dist/Hyperttp/Core/index.d.ts.map +1 -1
- package/dist/Hyperttp/Core/index.js +11 -5
- package/dist/Hyperttp/Core/index.js.map +1 -1
- package/dist/Hyperttp/Request.d.ts +5 -0
- package/dist/Hyperttp/Request.d.ts.map +1 -1
- package/dist/Hyperttp/Request.js +17 -35
- package/dist/Hyperttp/Request.js.map +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
- package/dist/Hyperttp/UrlExtractor.js.map +1 -1
- package/dist/Hyperttp/index.d.ts +3 -1
- package/dist/Hyperttp/index.d.ts.map +1 -1
- package/dist/Hyperttp/index.js +6 -1
- package/dist/Hyperttp/index.js.map +1 -1
- package/dist/Types/index.d.ts +45 -206
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Types/index.js +7 -16
- package/dist/Types/index.js.map +1 -1
- package/dist/Types/request.d.ts +15 -100
- package/dist/Types/request.d.ts.map +1 -1
- package/dist/Types/request.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,48 +1,29 @@
|
|
|
1
1
|
# Hyperttp
|
|
2
2
|
|
|
3
|
-
Advanced HTTP client for Node.js with caching, rate limiting, request queuing, automatic retries, cookie management, and
|
|
3
|
+
Advanced HTTP client for Node.js with caching, rate limiting, request queuing, automatic retries, cookie management, and automatic JSON/XML parsing.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
- Automatic request deduplication
|
|
8
|
+
- LRU caching with TTL
|
|
9
|
+
- Configurable rate limiting
|
|
10
|
+
- Concurrent request management
|
|
11
|
+
- Exponential backoff with jitter for retries
|
|
12
|
+
- Cookie jar support
|
|
13
|
+
- Automatic response parsing (JSON/XML/text/buffer)
|
|
14
|
+
- Automatic handling of redirects
|
|
15
|
+
- Fluent request builder API
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
## Installation
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Russian Version
|
|
25
|
-
|
|
26
|
-
### Описание
|
|
27
|
-
|
|
28
|
-
Расширенный HTTP клиент для Node.js с кэшированием, ограничением запросов, очередями запросов, автоматическими повторными попытками, управлением cookie и декомпрессией ответов.
|
|
29
|
-
|
|
30
|
-
### Возможности
|
|
31
|
-
|
|
32
|
-
* Автоматическое предотвращение дублирования запросов
|
|
33
|
-
* LRU кэширование с TTL
|
|
34
|
-
* Настраиваемое ограничение запросов
|
|
35
|
-
* Управление конкурентными запросами
|
|
36
|
-
* Экспоненциальная задержка с джиттером
|
|
37
|
-
* Поддержка cookie jar
|
|
38
|
-
* Автопарсинг JSON/XML
|
|
39
|
-
* Поддержка сжатия (gzip, deflate, brotli)
|
|
19
|
+
```bash
|
|
20
|
+
npm install hyperttp
|
|
21
|
+
```
|
|
40
22
|
|
|
41
|
-
|
|
23
|
+
## Basic Usage
|
|
42
24
|
|
|
43
|
-
```
|
|
44
|
-
import HttpClientImproved from
|
|
45
|
-
import Request from './src/Hyperttp/Request';
|
|
25
|
+
```typescript
|
|
26
|
+
import HttpClientImproved from "hyperttp";
|
|
46
27
|
|
|
47
28
|
const client = new HttpClientImproved({
|
|
48
29
|
timeout: 10000,
|
|
@@ -50,43 +31,52 @@ const client = new HttpClientImproved({
|
|
|
50
31
|
logger: (level, msg) => console.log(`[${level}] ${msg}`),
|
|
51
32
|
});
|
|
52
33
|
|
|
53
|
-
|
|
54
|
-
const data = await client.get(
|
|
34
|
+
// Simple GET request
|
|
35
|
+
const data = await client.get("https://api.example.com/data");
|
|
55
36
|
console.log(data);
|
|
56
|
-
```
|
|
57
37
|
|
|
58
|
-
|
|
38
|
+
// POST request with JSON body
|
|
39
|
+
const postData = await client.post("https://api.example.com/items", {
|
|
40
|
+
name: "Item 1",
|
|
41
|
+
});
|
|
42
|
+
console.log(postData);
|
|
59
43
|
|
|
60
|
-
|
|
44
|
+
// Using fluent RequestBuilder
|
|
45
|
+
const builderData = await client
|
|
46
|
+
.request("https://api.example.com/search")
|
|
47
|
+
.query({ q: "hyperttp", limit: 10 })
|
|
48
|
+
.headers({ Authorization: "Bearer TOKEN" })
|
|
49
|
+
.json()
|
|
50
|
+
.send();
|
|
61
51
|
|
|
62
|
-
|
|
52
|
+
console.log(builderData);
|
|
53
|
+
```
|
|
63
54
|
|
|
64
|
-
|
|
55
|
+
## Fluent Builder API
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
client
|
|
59
|
+
.request("https://api.example.com/data")
|
|
60
|
+
.get() // default
|
|
61
|
+
.headers({ "X-Test": "123" })
|
|
62
|
+
.query({ page: 1 })
|
|
63
|
+
.json() // or .text(), .xml()
|
|
64
|
+
.send()
|
|
65
|
+
.then(console.log);
|
|
66
|
+
```
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
## Advanced Features
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
* LRU caching with TTL
|
|
70
|
-
* Configurable rate limiting
|
|
71
|
-
* Concurrent request management
|
|
72
|
-
* Exponential backoff with jitter
|
|
73
|
-
* Cookie jar support
|
|
74
|
-
* Automatic response parsing (JSON/XML)
|
|
75
|
-
* Compression support (gzip, deflate, brotli)
|
|
70
|
+
- Caching: Automatically caches GET/HEAD responses, configurable TTL and max size
|
|
76
71
|
|
|
77
|
-
|
|
72
|
+
- Rate limiting: Prevents overwhelming servers
|
|
78
73
|
|
|
79
|
-
|
|
80
|
-
import HttpClientImproved from './src/Hyperttp/Core/HttpClientImproved';
|
|
81
|
-
import Request from './src/Hyperttp/Request';
|
|
74
|
+
- Retries: Automatic retries for 408, 429, 500, 502, 503, 504 with exponential backoff
|
|
82
75
|
|
|
83
|
-
|
|
84
|
-
timeout: 10000,
|
|
85
|
-
maxConcurrent: 10,
|
|
86
|
-
logger: (level, msg) => console.log(`[${level}] ${msg}`),
|
|
87
|
-
});
|
|
76
|
+
- Cookies: Persistent cookie jar per client
|
|
88
77
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
78
|
+
- Metrics: Track request timings, bytes sent/received, retries, and cache hits
|
|
79
|
+
|
|
80
|
+
## Documentation
|
|
81
|
+
|
|
82
|
+
- [Русский](https://github.com/Dirold2/hyperttp/blob/main/lang/ru/README.md)
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
export interface CacheEntry<T> {
|
|
2
|
+
data: T;
|
|
3
|
+
etag?: string;
|
|
4
|
+
lastModified?: string;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
}
|
|
1
7
|
export interface CacheManagerOptions {
|
|
2
|
-
/** TTL для элементов в миллисекундах (по умолчанию 5 минут) */
|
|
3
8
|
cacheTTL?: number;
|
|
4
|
-
/** Максимальное количество элементов в кэше (по умолчанию 500) */
|
|
5
9
|
cacheMaxSize?: number;
|
|
6
10
|
}
|
|
7
11
|
export declare class CacheManager {
|
|
8
12
|
private cache;
|
|
9
13
|
private ttl;
|
|
10
14
|
constructor(options?: CacheManagerOptions);
|
|
15
|
+
getWithMetadata<T>(key: string): Promise<{
|
|
16
|
+
data: T;
|
|
17
|
+
etag?: string;
|
|
18
|
+
lastModified?: string;
|
|
19
|
+
isExpired: boolean;
|
|
20
|
+
} | null>;
|
|
21
|
+
setWithMetadata<T>(key: string, data: T, meta: {
|
|
22
|
+
etag?: any;
|
|
23
|
+
lastModified?: any;
|
|
24
|
+
}): Promise<void>;
|
|
11
25
|
get<T>(key: string): Promise<T | undefined>;
|
|
12
26
|
set<T>(key: string, value: T): Promise<void>;
|
|
13
27
|
has(key: string): Promise<boolean>;
|
|
@@ -18,7 +32,6 @@ export declare class CacheManager {
|
|
|
18
32
|
hasSync(key: string): boolean;
|
|
19
33
|
deleteSync(key: string): boolean;
|
|
20
34
|
clearSync(): void;
|
|
21
|
-
/** Количество элементов в кэше */
|
|
22
35
|
get size(): number;
|
|
23
36
|
}
|
|
24
37
|
//# sourceMappingURL=CacheManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["
|
|
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,CAAoC;IACjD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,CAAC,EAAE,mBAAmB;IAQnC,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;IAcH,eAAe,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,CAAA;KAAE,GACvC,OAAO,CAAC,IAAI,CAAC;IAUV,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgB3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,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;IAIvC,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"}
|
|
@@ -9,21 +9,57 @@ class CacheManager {
|
|
|
9
9
|
this.ttl = options?.cacheTTL ?? 300_000;
|
|
10
10
|
this.cache = new lru_cache_1.LRUCache({
|
|
11
11
|
max: options?.cacheMaxSize ?? 500,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
updateAgeOnGet: false,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async getWithMetadata(key) {
|
|
16
|
+
const entry = this.cache.get(key);
|
|
17
|
+
if (!entry)
|
|
18
|
+
return null;
|
|
19
|
+
const isExpired = Date.now() - entry.timestamp > this.ttl;
|
|
20
|
+
return {
|
|
21
|
+
data: entry.data,
|
|
22
|
+
etag: entry.etag,
|
|
23
|
+
lastModified: entry.lastModified,
|
|
24
|
+
isExpired,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async setWithMetadata(key, data, meta) {
|
|
28
|
+
this.cache.set(key, {
|
|
29
|
+
data,
|
|
30
|
+
etag: typeof meta.etag === "string" ? meta.etag : undefined,
|
|
31
|
+
lastModified: typeof meta.lastModified === "string" ? meta.lastModified : undefined,
|
|
32
|
+
timestamp: Date.now(),
|
|
14
33
|
});
|
|
15
34
|
}
|
|
16
|
-
// ----------------------
|
|
17
|
-
// Async API
|
|
18
|
-
// ----------------------
|
|
19
35
|
async get(key) {
|
|
20
|
-
|
|
36
|
+
const entry = this.cache.get(key);
|
|
37
|
+
if (!entry)
|
|
38
|
+
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
|
+
return entry.data;
|
|
21
47
|
}
|
|
22
48
|
async set(key, value) {
|
|
23
|
-
this.
|
|
49
|
+
await this.setWithMetadata(key, value, {});
|
|
24
50
|
}
|
|
25
51
|
async has(key) {
|
|
26
|
-
|
|
52
|
+
const entry = this.cache.get(key);
|
|
53
|
+
if (!entry)
|
|
54
|
+
return false;
|
|
55
|
+
// Если время жизни истекло — для метода has() записи "нет"
|
|
56
|
+
const isExpired = Date.now() - entry.timestamp > this.ttl;
|
|
57
|
+
if (isExpired) {
|
|
58
|
+
// Опционально: удаляем сразу, чтобы не забивать память
|
|
59
|
+
this.cache.delete(key);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
27
63
|
}
|
|
28
64
|
async delete(key) {
|
|
29
65
|
return this.cache.delete(key);
|
|
@@ -31,14 +67,11 @@ class CacheManager {
|
|
|
31
67
|
async clear() {
|
|
32
68
|
this.cache.clear();
|
|
33
69
|
}
|
|
34
|
-
// ----------------------
|
|
35
|
-
// Sync API (супербыстрый)
|
|
36
|
-
// ----------------------
|
|
37
70
|
getSync(key) {
|
|
38
71
|
return this.cache.get(key);
|
|
39
72
|
}
|
|
40
73
|
setSync(key, value) {
|
|
41
|
-
this.
|
|
74
|
+
this.setWithMetadata(key, value, {});
|
|
42
75
|
}
|
|
43
76
|
hasSync(key) {
|
|
44
77
|
return this.cache.has(key);
|
|
@@ -49,7 +82,6 @@ class CacheManager {
|
|
|
49
82
|
clearSync() {
|
|
50
83
|
this.cache.clear();
|
|
51
84
|
}
|
|
52
|
-
/** Количество элементов в кэше */
|
|
53
85
|
get size() {
|
|
54
86
|
return this.cache.size;
|
|
55
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export default class HttpClientImproved implements HttpClientInterface {
|
|
|
17
17
|
private options;
|
|
18
18
|
private requestInterceptors;
|
|
19
19
|
private responseInterceptors;
|
|
20
|
-
private
|
|
20
|
+
private metricsManager;
|
|
21
21
|
/**
|
|
22
22
|
* Creates a new instance of HttpClientImproved.
|
|
23
23
|
* @param options Optional configuration options for the HTTP client
|
|
@@ -43,7 +43,10 @@ export default class HttpClientImproved implements HttpClientInterface {
|
|
|
43
43
|
* @param interceptor The interceptor function to add
|
|
44
44
|
*/
|
|
45
45
|
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
46
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* @ru Закрывает агент и освобождает ресурсы (keep-alive соединения).
|
|
48
|
+
* @en Closes the HTTP agent and terminates keep-alive connections.
|
|
49
|
+
*/
|
|
47
50
|
close(): void;
|
|
48
51
|
private log;
|
|
49
52
|
private decompress;
|
|
@@ -55,7 +58,6 @@ export default class HttpClientImproved implements HttpClientInterface {
|
|
|
55
58
|
private parseRetryAfterMs;
|
|
56
59
|
private readBodyWithLimit;
|
|
57
60
|
private sendWithRetry;
|
|
58
|
-
private parseContentType;
|
|
59
61
|
private xmlParser;
|
|
60
62
|
private parseResponse;
|
|
61
63
|
private requestInternal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
|