hyperttp 0.2.6 → 3.0.1
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/Hyperttp/Client/HyperClient.d.ts +30 -0
- package/Hyperttp/Client/HyperClient.d.ts.map +1 -0
- package/Hyperttp/Client/HyperClient.js +215 -0
- package/Hyperttp/Client/HyperClient.js.map +1 -0
- package/{dist/Hyperttp → Hyperttp}/Request.d.ts +1 -1
- package/{dist/Hyperttp → Hyperttp}/Request.d.ts.map +1 -1
- package/{dist/Hyperttp → Hyperttp}/Request.js +2 -7
- package/Hyperttp/Request.js.map +1 -0
- package/{dist/Hyperttp → Hyperttp}/UrlExtractor.d.ts +1 -1
- package/{dist/Hyperttp → Hyperttp}/UrlExtractor.d.ts.map +1 -1
- package/{dist/Hyperttp → Hyperttp}/UrlExtractor.js +1 -4
- package/Hyperttp/UrlExtractor.js.map +1 -0
- package/Hyperttp/Utils/RequestBuilder.d.ts +32 -0
- package/Hyperttp/Utils/RequestBuilder.d.ts.map +1 -0
- package/Hyperttp/Utils/RequestBuilder.js +129 -0
- package/Hyperttp/Utils/RequestBuilder.js.map +1 -0
- package/Hyperttp/Utils/index.d.ts +2 -0
- package/Hyperttp/Utils/index.d.ts.map +1 -0
- package/Hyperttp/Utils/index.js +2 -0
- package/Hyperttp/Utils/index.js.map +1 -0
- package/Hyperttp/Utils/merge.d.ts +2 -0
- package/Hyperttp/Utils/merge.d.ts.map +1 -0
- package/Hyperttp/Utils/merge.js +25 -0
- package/Hyperttp/Utils/merge.js.map +1 -0
- package/Hyperttp/defaultConfig.d.ts +3 -0
- package/Hyperttp/defaultConfig.d.ts.map +1 -0
- package/Hyperttp/defaultConfig.js +39 -0
- package/Hyperttp/defaultConfig.js.map +1 -0
- package/Hyperttp/index.d.ts +6 -0
- package/Hyperttp/index.d.ts.map +1 -0
- package/Hyperttp/index.js +6 -0
- package/Hyperttp/index.js.map +1 -0
- package/{dist/Types → Types}/http-client.d.ts +2 -6
- package/Types/http-client.d.ts.map +1 -0
- package/Types/http-client.js +2 -0
- package/Types/index.d.ts +3 -0
- package/Types/index.d.ts.map +1 -0
- package/Types/index.js +3 -0
- package/Types/index.js.map +1 -0
- package/Types/url-extractor.js +2 -0
- package/index.d.ts +13 -0
- package/index.d.ts.map +1 -0
- package/index.js +12 -0
- package/index.js.map +1 -0
- package/package.json +22 -11
- package/LICENSE +0 -21
- package/README.md +0 -195
- package/dist/Hyperttp/Core/CacheManager.d.ts +0 -84
- package/dist/Hyperttp/Core/CacheManager.d.ts.map +0 -1
- package/dist/Hyperttp/Core/CacheManager.js +0 -109
- package/dist/Hyperttp/Core/CacheManager.js.map +0 -1
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +0 -149
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +0 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +0 -541
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +0 -1
- package/dist/Hyperttp/Core/InterceptorManager.d.ts +0 -62
- package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +0 -1
- package/dist/Hyperttp/Core/InterceptorManager.js +0 -64
- package/dist/Hyperttp/Core/InterceptorManager.js.map +0 -1
- package/dist/Hyperttp/Core/MetricsManager.d.ts +0 -71
- package/dist/Hyperttp/Core/MetricsManager.d.ts.map +0 -1
- package/dist/Hyperttp/Core/MetricsManager.js +0 -246
- package/dist/Hyperttp/Core/MetricsManager.js.map +0 -1
- package/dist/Hyperttp/Core/QueueManager.d.ts +0 -16
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +0 -1
- package/dist/Hyperttp/Core/QueueManager.js +0 -75
- package/dist/Hyperttp/Core/QueueManager.js.map +0 -1
- package/dist/Hyperttp/Core/RateLimiter.d.ts +0 -63
- package/dist/Hyperttp/Core/RateLimiter.d.ts.map +0 -1
- package/dist/Hyperttp/Core/RateLimiter.js +0 -170
- package/dist/Hyperttp/Core/RateLimiter.js.map +0 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts +0 -83
- package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +0 -1
- package/dist/Hyperttp/Core/RequestBuilder.js +0 -169
- package/dist/Hyperttp/Core/RequestBuilder.js.map +0 -1
- package/dist/Hyperttp/Core/RequestExecutor.d.ts +0 -31
- package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +0 -1
- package/dist/Hyperttp/Core/RequestExecutor.js +0 -167
- package/dist/Hyperttp/Core/RequestExecutor.js.map +0 -1
- package/dist/Hyperttp/Core/RequestProfiler.d.ts +0 -10
- package/dist/Hyperttp/Core/RequestProfiler.d.ts.map +0 -1
- package/dist/Hyperttp/Core/RequestProfiler.js +0 -55
- package/dist/Hyperttp/Core/RequestProfiler.js.map +0 -1
- package/dist/Hyperttp/Core/ResponseConverter.d.ts +0 -23
- package/dist/Hyperttp/Core/ResponseConverter.d.ts.map +0 -1
- package/dist/Hyperttp/Core/ResponseConverter.js +0 -369
- package/dist/Hyperttp/Core/ResponseConverter.js.map +0 -1
- package/dist/Hyperttp/Core/index.d.ts +0 -27
- package/dist/Hyperttp/Core/index.d.ts.map +0 -1
- package/dist/Hyperttp/Core/index.js +0 -56
- package/dist/Hyperttp/Core/index.js.map +0 -1
- package/dist/Hyperttp/Request.js.map +0 -1
- package/dist/Hyperttp/UrlExtractor.js.map +0 -1
- package/dist/Hyperttp/index.d.ts +0 -5
- package/dist/Hyperttp/index.d.ts.map +0 -1
- package/dist/Hyperttp/index.js +0 -24
- package/dist/Hyperttp/index.js.map +0 -1
- package/dist/Types/cache.d.ts +0 -10
- package/dist/Types/cache.d.ts.map +0 -1
- package/dist/Types/cache.js +0 -3
- package/dist/Types/cache.js.map +0 -1
- package/dist/Types/errors.d.ts +0 -15
- package/dist/Types/errors.d.ts.map +0 -1
- package/dist/Types/errors.js +0 -34
- package/dist/Types/errors.js.map +0 -1
- package/dist/Types/http-client.d.ts.map +0 -1
- package/dist/Types/http-client.js +0 -3
- package/dist/Types/http.d.ts +0 -5
- package/dist/Types/http.d.ts.map +0 -1
- package/dist/Types/http.js +0 -3
- package/dist/Types/http.js.map +0 -1
- package/dist/Types/index.d.ts +0 -13
- package/dist/Types/index.d.ts.map +0 -1
- package/dist/Types/index.js +0 -29
- package/dist/Types/index.js.map +0 -1
- package/dist/Types/interceptors.d.ts +0 -13
- package/dist/Types/interceptors.d.ts.map +0 -1
- package/dist/Types/interceptors.js +0 -3
- package/dist/Types/interceptors.js.map +0 -1
- package/dist/Types/metrics.d.ts +0 -90
- package/dist/Types/metrics.d.ts.map +0 -1
- package/dist/Types/metrics.js +0 -3
- package/dist/Types/metrics.js.map +0 -1
- package/dist/Types/options.d.ts +0 -233
- package/dist/Types/options.d.ts.map +0 -1
- package/dist/Types/options.js +0 -3
- package/dist/Types/options.js.map +0 -1
- package/dist/Types/queue.d.ts +0 -8
- package/dist/Types/queue.d.ts.map +0 -1
- package/dist/Types/queue.js +0 -3
- package/dist/Types/queue.js.map +0 -1
- package/dist/Types/request.d.ts +0 -189
- package/dist/Types/request.d.ts.map +0 -1
- package/dist/Types/request.js +0 -3
- package/dist/Types/request.js.map +0 -1
- package/dist/Types/response.d.ts +0 -28
- package/dist/Types/response.d.ts.map +0 -1
- package/dist/Types/response.js +0 -3
- package/dist/Types/response.js.map +0 -1
- package/dist/Types/stream.d.ts +0 -39
- package/dist/Types/stream.d.ts.map +0 -1
- package/dist/Types/stream.js +0 -3
- package/dist/Types/stream.js.map +0 -1
- package/dist/Types/url-extractor.js +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- /package/{dist/Types → Types}/http-client.js.map +0 -0
- /package/{dist/Types → Types}/url-extractor.d.ts +0 -0
- /package/{dist/Types → Types}/url-extractor.d.ts.map +0 -0
- /package/{dist/Types → Types}/url-extractor.js.map +0 -0
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { RateLimitOptions } from "../../Types/options";
|
|
2
|
-
/**
|
|
3
|
-
* @class RateLimiter
|
|
4
|
-
* @en Token bucket rate limiter with FIFO wait queue.
|
|
5
|
-
* @ru Rate limiter на основе token bucket с FIFO-очередью ожидания.
|
|
6
|
-
*/
|
|
7
|
-
export declare class RateLimiter {
|
|
8
|
-
private readonly enabled;
|
|
9
|
-
private readonly max;
|
|
10
|
-
private readonly window;
|
|
11
|
-
private readonly refillRate;
|
|
12
|
-
private tokens;
|
|
13
|
-
private lastRefill;
|
|
14
|
-
private waiters;
|
|
15
|
-
private timer;
|
|
16
|
-
constructor(config?: RateLimitOptions);
|
|
17
|
-
/**
|
|
18
|
-
* @en Waits until enough tokens are available and consumes them.
|
|
19
|
-
* @ru Ждёт появления достаточного числа токенов и потребляет их.
|
|
20
|
-
*/
|
|
21
|
-
wait(tokensNeeded?: number): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* @en Attempts to consume tokens immediately.
|
|
24
|
-
* @ru Пытается немедленно потребить токены.
|
|
25
|
-
*/
|
|
26
|
-
tryConsume(tokensNeeded?: number): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* @en Internal method to refill the bucket based on elapsed time.
|
|
29
|
-
* @ru Внутренний метод пополнения корзины на основе прошедшего времени.
|
|
30
|
-
*/
|
|
31
|
-
private refill;
|
|
32
|
-
/**
|
|
33
|
-
* @en Processes queued waiters in FIFO order.
|
|
34
|
-
* @ru Обрабатывает ожидающие запросы в FIFO-порядке.
|
|
35
|
-
*/
|
|
36
|
-
private drainQueue;
|
|
37
|
-
/**
|
|
38
|
-
* @en Schedules the next queue drain based on the next token refill time.
|
|
39
|
-
* @ru Планирует следующий проход по очереди с учётом времени до следующего токена.
|
|
40
|
-
*/
|
|
41
|
-
private scheduleDrain;
|
|
42
|
-
/**
|
|
43
|
-
* @en Returns the number of currently available tokens.
|
|
44
|
-
* @ru Возвращает текущее число доступных токенов.
|
|
45
|
-
*/
|
|
46
|
-
get remainingRequests(): number;
|
|
47
|
-
/**
|
|
48
|
-
* @en Returns the number of currently "used" slots.
|
|
49
|
-
* @ru Возвращает число уже занятых слотов.
|
|
50
|
-
*/
|
|
51
|
-
get currentCount(): number;
|
|
52
|
-
/**
|
|
53
|
-
* @en Estimated time in ms until the next token is available.
|
|
54
|
-
* @ru Оценка времени в мс до появления следующего токена.
|
|
55
|
-
*/
|
|
56
|
-
get timeToReset(): number;
|
|
57
|
-
/**
|
|
58
|
-
* @en Instantly refills the bucket to max capacity and clears waiting timers.
|
|
59
|
-
* @ru Мгновенно пополняет корзину до максимума и очищает таймеры ожидания.
|
|
60
|
-
*/
|
|
61
|
-
reset(): void;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=RateLimiter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/RateLimiter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAA8C;gBAE/C,MAAM,CAAC,EAAE,gBAAgB;IAUrC;;;OAGG;IACG,IAAI,CAAC,YAAY,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3C;;;OAGG;IACH,UAAU,CAAC,YAAY,SAAI,GAAG,OAAO;IAkBrC;;;OAGG;IACH,OAAO,CAAC,MAAM;IAad;;;OAGG;IACH,OAAO,CAAC,UAAU;IAqBlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;OAGG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAI9B;IAED;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAIzB;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,MAAM,CAQxB;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI;CAgBd"}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RateLimiter = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @class RateLimiter
|
|
6
|
-
* @en Token bucket rate limiter with FIFO wait queue.
|
|
7
|
-
* @ru Rate limiter на основе token bucket с FIFO-очередью ожидания.
|
|
8
|
-
*/
|
|
9
|
-
class RateLimiter {
|
|
10
|
-
enabled;
|
|
11
|
-
max;
|
|
12
|
-
window;
|
|
13
|
-
refillRate; // tokens per ms
|
|
14
|
-
tokens;
|
|
15
|
-
lastRefill;
|
|
16
|
-
waiters = [];
|
|
17
|
-
timer = null;
|
|
18
|
-
constructor(config) {
|
|
19
|
-
this.enabled = config?.enabled ?? false;
|
|
20
|
-
this.max = Math.max(1, config?.maxRequests ?? 100);
|
|
21
|
-
this.window = Math.max(1, config?.windowMs ?? 60_000);
|
|
22
|
-
this.refillRate = this.max / this.window;
|
|
23
|
-
this.tokens = this.max;
|
|
24
|
-
this.lastRefill = Date.now();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @en Waits until enough tokens are available and consumes them.
|
|
28
|
-
* @ru Ждёт появления достаточного числа токенов и потребляет их.
|
|
29
|
-
*/
|
|
30
|
-
async wait(tokensNeeded = 1) {
|
|
31
|
-
if (!this.enabled)
|
|
32
|
-
return;
|
|
33
|
-
tokensNeeded = Math.max(1, Math.floor(tokensNeeded));
|
|
34
|
-
if (tokensNeeded > this.max) {
|
|
35
|
-
tokensNeeded = this.max;
|
|
36
|
-
}
|
|
37
|
-
this.refill();
|
|
38
|
-
if (this.waiters.length === 0 && this.tokens >= tokensNeeded) {
|
|
39
|
-
this.tokens -= tokensNeeded;
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
this.waiters.push({ tokensNeeded, resolve, reject });
|
|
44
|
-
this.scheduleDrain();
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* @en Attempts to consume tokens immediately.
|
|
49
|
-
* @ru Пытается немедленно потребить токены.
|
|
50
|
-
*/
|
|
51
|
-
tryConsume(tokensNeeded = 1) {
|
|
52
|
-
if (!this.enabled)
|
|
53
|
-
return true;
|
|
54
|
-
tokensNeeded = Math.max(1, Math.floor(tokensNeeded));
|
|
55
|
-
if (tokensNeeded > this.max) {
|
|
56
|
-
tokensNeeded = this.max;
|
|
57
|
-
}
|
|
58
|
-
this.refill();
|
|
59
|
-
if (this.waiters.length === 0 && this.tokens >= tokensNeeded) {
|
|
60
|
-
this.tokens -= tokensNeeded;
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @en Internal method to refill the bucket based on elapsed time.
|
|
67
|
-
* @ru Внутренний метод пополнения корзины на основе прошедшего времени.
|
|
68
|
-
*/
|
|
69
|
-
refill() {
|
|
70
|
-
const now = Date.now();
|
|
71
|
-
const elapsedMs = now - this.lastRefill;
|
|
72
|
-
if (elapsedMs <= 0)
|
|
73
|
-
return;
|
|
74
|
-
const added = elapsedMs * this.refillRate;
|
|
75
|
-
if (added > 0) {
|
|
76
|
-
this.tokens = Math.min(this.max, this.tokens + added);
|
|
77
|
-
this.lastRefill = now;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* @en Processes queued waiters in FIFO order.
|
|
82
|
-
* @ru Обрабатывает ожидающие запросы в FIFO-порядке.
|
|
83
|
-
*/
|
|
84
|
-
drainQueue() {
|
|
85
|
-
this.timer = null;
|
|
86
|
-
this.refill();
|
|
87
|
-
while (this.waiters.length > 0) {
|
|
88
|
-
const next = this.waiters[0];
|
|
89
|
-
if (this.tokens < next.tokensNeeded) {
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
this.tokens -= next.tokensNeeded;
|
|
93
|
-
this.waiters.shift();
|
|
94
|
-
next.resolve();
|
|
95
|
-
}
|
|
96
|
-
if (this.waiters.length > 0) {
|
|
97
|
-
this.scheduleDrain();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* @en Schedules the next queue drain based on the next token refill time.
|
|
102
|
-
* @ru Планирует следующий проход по очереди с учётом времени до следующего токена.
|
|
103
|
-
*/
|
|
104
|
-
scheduleDrain() {
|
|
105
|
-
if (this.timer || this.waiters.length === 0)
|
|
106
|
-
return;
|
|
107
|
-
const first = this.waiters[0];
|
|
108
|
-
const needed = Math.max(0, first.tokensNeeded - this.tokens);
|
|
109
|
-
if (needed <= 0) {
|
|
110
|
-
queueMicrotask(() => this.drainQueue());
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const waitMs = Math.ceil(needed / this.refillRate);
|
|
114
|
-
this.timer = setTimeout(() => {
|
|
115
|
-
this.drainQueue();
|
|
116
|
-
}, Math.max(1, waitMs));
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* @en Returns the number of currently available tokens.
|
|
120
|
-
* @ru Возвращает текущее число доступных токенов.
|
|
121
|
-
*/
|
|
122
|
-
get remainingRequests() {
|
|
123
|
-
if (!this.enabled)
|
|
124
|
-
return Number.POSITIVE_INFINITY;
|
|
125
|
-
this.refill();
|
|
126
|
-
return Math.max(0, Math.floor(this.tokens));
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* @en Returns the number of currently "used" slots.
|
|
130
|
-
* @ru Возвращает число уже занятых слотов.
|
|
131
|
-
*/
|
|
132
|
-
get currentCount() {
|
|
133
|
-
if (!this.enabled)
|
|
134
|
-
return 0;
|
|
135
|
-
this.refill();
|
|
136
|
-
return Math.max(0, Math.floor(this.max - this.tokens));
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* @en Estimated time in ms until the next token is available.
|
|
140
|
-
* @ru Оценка времени в мс до появления следующего токена.
|
|
141
|
-
*/
|
|
142
|
-
get timeToReset() {
|
|
143
|
-
if (!this.enabled)
|
|
144
|
-
return 0;
|
|
145
|
-
this.refill();
|
|
146
|
-
if (this.tokens >= 1)
|
|
147
|
-
return 0;
|
|
148
|
-
const deficit = 1 - this.tokens;
|
|
149
|
-
return Math.max(0, Math.ceil(deficit / this.refillRate));
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* @en Instantly refills the bucket to max capacity and clears waiting timers.
|
|
153
|
-
* @ru Мгновенно пополняет корзину до максимума и очищает таймеры ожидания.
|
|
154
|
-
*/
|
|
155
|
-
reset() {
|
|
156
|
-
const error = new Error("Rate limiter has been reset");
|
|
157
|
-
while (this.waiters.length > 0) {
|
|
158
|
-
const waiter = this.waiters.shift();
|
|
159
|
-
waiter?.reject(error);
|
|
160
|
-
}
|
|
161
|
-
this.tokens = this.max;
|
|
162
|
-
this.lastRefill = Date.now();
|
|
163
|
-
if (this.timer) {
|
|
164
|
-
clearTimeout(this.timer);
|
|
165
|
-
this.timer = null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
exports.RateLimiter = RateLimiter;
|
|
170
|
-
//# sourceMappingURL=RateLimiter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/RateLimiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import HttpClientImproved from "./HttpClientImproved";
|
|
2
|
-
/**
|
|
3
|
-
* @class RequestBuilder
|
|
4
|
-
* @en Fluent request builder for creating HTTP requests with a chainable API.
|
|
5
|
-
* @ru Fluent request builder для создания HTTP-запросов. Позволяет собирать параметры запроса в цепочку.
|
|
6
|
-
* * @example
|
|
7
|
-
* ```ts
|
|
8
|
-
* const user = await client.request('[https://api.example.com/users](https://api.example.com/users)')
|
|
9
|
-
* .post()
|
|
10
|
-
* .jsonBody({ name: 'John' })
|
|
11
|
-
* .headers({ 'X-Custom-Header': 'value' })
|
|
12
|
-
* .send();
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export declare class RequestBuilder {
|
|
16
|
-
private _url;
|
|
17
|
-
private _method;
|
|
18
|
-
private _headers;
|
|
19
|
-
private _body?;
|
|
20
|
-
private _responseType;
|
|
21
|
-
private _client;
|
|
22
|
-
private _signal?;
|
|
23
|
-
constructor(url: string, client: HttpClientImproved);
|
|
24
|
-
/**
|
|
25
|
-
* @en Appends multiple headers to the request.
|
|
26
|
-
* @ru Добавляет несколько заголовков к запросу.
|
|
27
|
-
*/
|
|
28
|
-
headers(headers: Record<string, string>): this;
|
|
29
|
-
/**
|
|
30
|
-
* @en Sets the request body.
|
|
31
|
-
* @ru Устанавливает тело запроса.
|
|
32
|
-
*/
|
|
33
|
-
body(bodyData: any): this;
|
|
34
|
-
/**
|
|
35
|
-
* @en Sets the body and ensures Content-Type is application/json.
|
|
36
|
-
* @ru Устанавливает тело запроса и заголовок Content-Type: application/json.
|
|
37
|
-
*/
|
|
38
|
-
jsonBody<B>(body: B): this;
|
|
39
|
-
/**
|
|
40
|
-
* @en Adds URL query parameters.
|
|
41
|
-
* @ru Добавляет параметры запроса в URL (search params).
|
|
42
|
-
*/
|
|
43
|
-
query(params: Record<string, string | number | boolean>): this;
|
|
44
|
-
/** @en Set method to POST */
|
|
45
|
-
post(): this;
|
|
46
|
-
/** @en Set method to PUT */
|
|
47
|
-
put(): this;
|
|
48
|
-
/** @en Set method to PATCH */
|
|
49
|
-
patch(): this;
|
|
50
|
-
/** @en Set method to DELETE */
|
|
51
|
-
delete(): this;
|
|
52
|
-
/** @en Set method to HEAD */
|
|
53
|
-
head(): this;
|
|
54
|
-
/** @en Set method to OPTIONS */
|
|
55
|
-
options(): this;
|
|
56
|
-
/** @en Set response type to JSON */
|
|
57
|
-
json(): this;
|
|
58
|
-
/** @en Set response type to Plain Text */
|
|
59
|
-
text(): this;
|
|
60
|
-
/** @en Set response type to XML */
|
|
61
|
-
xml(): this;
|
|
62
|
-
/** @en Set response type to Buffer */
|
|
63
|
-
buffer(): this;
|
|
64
|
-
/** @en Set response type to Stream (AsyncIterable) */
|
|
65
|
-
stream(): this;
|
|
66
|
-
/**
|
|
67
|
-
* @en Attaches an external AbortSignal for manual cancellation.
|
|
68
|
-
* @ru Привязывает внешний AbortSignal для ручной отмены запроса.
|
|
69
|
-
*/
|
|
70
|
-
signal(signal: AbortSignal): this;
|
|
71
|
-
/**
|
|
72
|
-
* @en Creates a timeout signal for this specific request.
|
|
73
|
-
* @ru Устанавливает таймаут для конкретно этого запроса.
|
|
74
|
-
*/
|
|
75
|
-
timeout(ms: number): this;
|
|
76
|
-
/**
|
|
77
|
-
* @en Finalizes and sends the request.
|
|
78
|
-
* @ru Финализирует и отправляет запрос.
|
|
79
|
-
* @returns Promise resolving to the expected type T or StreamResponse.
|
|
80
|
-
*/
|
|
81
|
-
send(): Promise<any>;
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=RequestBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBuilder.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/RequestBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,KAAK,CAAC,CAAM;IACpB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAc;gBAElB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB;IAKnD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAKzB;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAM1B;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI;IAS9D,6BAA6B;IAC7B,IAAI,IAAI,IAAI;IAKZ,4BAA4B;IAC5B,GAAG,IAAI,IAAI;IAKX,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAKb,+BAA+B;IAC/B,MAAM,IAAI,IAAI;IAKd,6BAA6B;IAC7B,IAAI,IAAI,IAAI;IAKZ,gCAAgC;IAChC,OAAO,IAAI,IAAI;IAKf,oCAAoC;IACpC,IAAI,IAAI,IAAI;IAKZ,0CAA0C;IAC1C,IAAI,IAAI,IAAI;IAKZ,mCAAmC;IACnC,GAAG,IAAI,IAAI;IAKX,sCAAsC;IACtC,MAAM,IAAI,IAAI;IAKd,sDAAsD;IACtD,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKjC;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;CA6B3B"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequestBuilder = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @class RequestBuilder
|
|
6
|
-
* @en Fluent request builder for creating HTTP requests with a chainable API.
|
|
7
|
-
* @ru Fluent request builder для создания HTTP-запросов. Позволяет собирать параметры запроса в цепочку.
|
|
8
|
-
* * @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* const user = await client.request('[https://api.example.com/users](https://api.example.com/users)')
|
|
11
|
-
* .post()
|
|
12
|
-
* .jsonBody({ name: 'John' })
|
|
13
|
-
* .headers({ 'X-Custom-Header': 'value' })
|
|
14
|
-
* .send();
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
class RequestBuilder {
|
|
18
|
-
_url;
|
|
19
|
-
_method;
|
|
20
|
-
_headers = {};
|
|
21
|
-
_body;
|
|
22
|
-
_responseType = "auto";
|
|
23
|
-
_client;
|
|
24
|
-
_signal;
|
|
25
|
-
constructor(url, client) {
|
|
26
|
-
this._url = url;
|
|
27
|
-
this._client = client;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @en Appends multiple headers to the request.
|
|
31
|
-
* @ru Добавляет несколько заголовков к запросу.
|
|
32
|
-
*/
|
|
33
|
-
headers(headers) {
|
|
34
|
-
Object.assign(this._headers, headers);
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @en Sets the request body.
|
|
39
|
-
* @ru Устанавливает тело запроса.
|
|
40
|
-
*/
|
|
41
|
-
body(bodyData) {
|
|
42
|
-
this._body = bodyData;
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @en Sets the body and ensures Content-Type is application/json.
|
|
47
|
-
* @ru Устанавливает тело запроса и заголовок Content-Type: application/json.
|
|
48
|
-
*/
|
|
49
|
-
jsonBody(body) {
|
|
50
|
-
this._body = body;
|
|
51
|
-
this._headers["Content-Type"] = "application/json; charset=utf-8";
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* @en Adds URL query parameters.
|
|
56
|
-
* @ru Добавляет параметры запроса в URL (search params).
|
|
57
|
-
*/
|
|
58
|
-
query(params) {
|
|
59
|
-
const urlObj = new URL(this._url);
|
|
60
|
-
Object.entries(params).forEach(([k, v]) => urlObj.searchParams.set(k, String(v)));
|
|
61
|
-
this._url = urlObj.toString();
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
/** @en Set method to POST */
|
|
65
|
-
post() {
|
|
66
|
-
this._method = "POST";
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
/** @en Set method to PUT */
|
|
70
|
-
put() {
|
|
71
|
-
this._method = "PUT";
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
|
-
/** @en Set method to PATCH */
|
|
75
|
-
patch() {
|
|
76
|
-
this._method = "PATCH";
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
/** @en Set method to DELETE */
|
|
80
|
-
delete() {
|
|
81
|
-
this._method = "DELETE";
|
|
82
|
-
return this;
|
|
83
|
-
}
|
|
84
|
-
/** @en Set method to HEAD */
|
|
85
|
-
head() {
|
|
86
|
-
this._method = "HEAD";
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
/** @en Set method to OPTIONS */
|
|
90
|
-
options() {
|
|
91
|
-
this._method = "OPTIONS";
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
|
-
/** @en Set response type to JSON */
|
|
95
|
-
json() {
|
|
96
|
-
this._responseType = "json";
|
|
97
|
-
return this;
|
|
98
|
-
}
|
|
99
|
-
/** @en Set response type to Plain Text */
|
|
100
|
-
text() {
|
|
101
|
-
this._responseType = "text";
|
|
102
|
-
return this;
|
|
103
|
-
}
|
|
104
|
-
/** @en Set response type to XML */
|
|
105
|
-
xml() {
|
|
106
|
-
this._responseType = "xml";
|
|
107
|
-
return this;
|
|
108
|
-
}
|
|
109
|
-
/** @en Set response type to Buffer */
|
|
110
|
-
buffer() {
|
|
111
|
-
this._responseType = "buffer";
|
|
112
|
-
return this;
|
|
113
|
-
}
|
|
114
|
-
/** @en Set response type to Stream (AsyncIterable) */
|
|
115
|
-
stream() {
|
|
116
|
-
this._responseType = "stream";
|
|
117
|
-
return this;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* @en Attaches an external AbortSignal for manual cancellation.
|
|
121
|
-
* @ru Привязывает внешний AbortSignal для ручной отмены запроса.
|
|
122
|
-
*/
|
|
123
|
-
signal(signal) {
|
|
124
|
-
this._signal = signal;
|
|
125
|
-
return this;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* @en Creates a timeout signal for this specific request.
|
|
129
|
-
* @ru Устанавливает таймаут для конкретно этого запроса.
|
|
130
|
-
*/
|
|
131
|
-
timeout(ms) {
|
|
132
|
-
this._signal = AbortSignal.timeout(ms);
|
|
133
|
-
return this;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* @en Finalizes and sends the request.
|
|
137
|
-
* @ru Финализирует и отправляет запрос.
|
|
138
|
-
* @returns Promise resolving to the expected type T or StreamResponse.
|
|
139
|
-
*/
|
|
140
|
-
async send() {
|
|
141
|
-
const req = {
|
|
142
|
-
getURL: () => this._url,
|
|
143
|
-
getBodyData: () => this._body,
|
|
144
|
-
getHeaders: () => this._headers,
|
|
145
|
-
getSignal: () => this._signal,
|
|
146
|
-
};
|
|
147
|
-
if (this._responseType === "stream") {
|
|
148
|
-
return this._client.stream(req);
|
|
149
|
-
}
|
|
150
|
-
switch (this._method) {
|
|
151
|
-
case "POST":
|
|
152
|
-
return this._client.post(req, this._body, this._responseType);
|
|
153
|
-
case "PUT":
|
|
154
|
-
return this._client.put(req, this._body, this._responseType);
|
|
155
|
-
case "PATCH":
|
|
156
|
-
return this._client.patch(req, this._body, this._responseType);
|
|
157
|
-
case "DELETE":
|
|
158
|
-
return this._client.delete(req, this._responseType);
|
|
159
|
-
case "OPTIONS":
|
|
160
|
-
return this._client.options(req, this._body, this._responseType);
|
|
161
|
-
case "HEAD":
|
|
162
|
-
return this._client.head(req);
|
|
163
|
-
default:
|
|
164
|
-
return this._client.get(req, this._responseType);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.RequestBuilder = RequestBuilder;
|
|
169
|
-
//# sourceMappingURL=RequestBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBuilder.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/RequestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Agent } from "undici";
|
|
2
|
-
import { InterceptorManager } from "./InterceptorManager";
|
|
3
|
-
import { RetryOptions } from "../../Types/options";
|
|
4
|
-
import { LogLevel } from "../../Types/http";
|
|
5
|
-
import { RequestMetrics } from "../../Types/metrics";
|
|
6
|
-
export declare class RequestExecutor {
|
|
7
|
-
private agent;
|
|
8
|
-
private interceptors;
|
|
9
|
-
private options;
|
|
10
|
-
private readonly redirectStatusCodes;
|
|
11
|
-
constructor(agent: Agent, interceptors: InterceptorManager, options: {
|
|
12
|
-
timeout: number;
|
|
13
|
-
maxRetries: number;
|
|
14
|
-
followRedirects: boolean;
|
|
15
|
-
maxRedirects: number;
|
|
16
|
-
retryOptions: RetryOptions;
|
|
17
|
-
verbose?: boolean;
|
|
18
|
-
logger?: (level: LogLevel, message: string, meta?: any) => void;
|
|
19
|
-
});
|
|
20
|
-
private calcDelay;
|
|
21
|
-
private sleep;
|
|
22
|
-
private drainBody;
|
|
23
|
-
private executeCore;
|
|
24
|
-
execute(method: string, url: string, headers: Record<string, string>, body: string | Buffer | undefined, metrics?: RequestMetrics, signal?: AbortSignal): Promise<{
|
|
25
|
-
status: number;
|
|
26
|
-
headers: Record<string, any>;
|
|
27
|
-
body: any;
|
|
28
|
-
url: string;
|
|
29
|
-
}>;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=RequestExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestExecutor.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/RequestExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUrD,qBAAa,eAAe;IAIxB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsC;gBAGhE,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,OAAO,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KACjE;IAGH,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,KAAK;YAIC,SAAS;YAoBT,WAAW;IAsLnB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CAWH"}
|