@gauts/ft 0.1.0 → 0.1.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 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +63 -42
- package/dist/client.js.map +1 -1
- package/dist/download.d.ts +9 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +55 -0
- package/dist/download.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/progress.d.ts +1 -0
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +9 -3
- package/dist/progress.js.map +1 -1
- package/dist/retry.d.ts +6 -3
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +16 -6
- package/dist/retry.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,9 +5,11 @@ A small, typed HTTP client built on the native Fetch API.
|
|
|
5
5
|
- ✅ Ready-to-use default client
|
|
6
6
|
- ✅ Configured instances with `ft.create()`
|
|
7
7
|
- ✅ Typed response shortcuts
|
|
8
|
+
- ✅ Browser file downloads with `.download()`
|
|
8
9
|
- ✅ JSON bodies and search parameters
|
|
9
10
|
- ✅ Timeout and opt-in retries
|
|
10
11
|
- ✅ Typed HTTP, network, and timeout errors
|
|
12
|
+
- ✅ Structured error information with `errorInfo()`
|
|
11
13
|
- ✅ Upload and download progress with native streams
|
|
12
14
|
- ✅ Request, response, retry, error, and status callbacks
|
|
13
15
|
- ✅ Automatic browser/server base URL selection
|
|
@@ -143,20 +145,41 @@ const accounts = await api
|
|
|
143
145
|
|
|
144
146
|
Supported values are strings, numbers, booleans, `null`, `undefined`, and arrays of those values. `null` and `undefined` are omitted. Request parameters replace instance parameters with the same name.
|
|
145
147
|
|
|
148
|
+
An input `Request` already owns its URL. Passing request-specific `searchParams` with it throws instead of silently ignoring them.
|
|
149
|
+
|
|
146
150
|
## Response shortcuts
|
|
147
151
|
|
|
148
152
|
```ts
|
|
149
153
|
api.get("data").json<MyType>();
|
|
150
154
|
api.get("data").text();
|
|
151
155
|
api.get("data").blob();
|
|
156
|
+
api.get("file").download({ filename: "report.pdf" });
|
|
152
157
|
api.get("data").arrayBuffer();
|
|
153
|
-
api.get("data").bytes();
|
|
154
158
|
api.get("data").formData();
|
|
155
159
|
api.get("data").response();
|
|
156
160
|
```
|
|
157
161
|
|
|
158
162
|
`json<T>()` defaults to `unknown`. The generic type provides compile-time typing only; it does not validate the response at runtime. Empty or invalid JSON rejects with the native parsing error.
|
|
159
163
|
|
|
164
|
+
## File downloads
|
|
165
|
+
|
|
166
|
+
Use `.download()` to save a response directly in the browser:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
await api
|
|
170
|
+
.post("invoices/pdf", {
|
|
171
|
+
json: { invoice_id: "invoice-id" },
|
|
172
|
+
onDownloadProgress: ({ percent, transferred, total }) => {
|
|
173
|
+
console.log(percent, transferred, total);
|
|
174
|
+
},
|
|
175
|
+
})
|
|
176
|
+
.download({ filename: "invoice.pdf" });
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The explicit `filename` has priority. When omitted, the name is read from the standard `Content-Disposition` response header and falls back to `download`. Path segments are removed from filenames before the browser receives them.
|
|
180
|
+
|
|
181
|
+
`.download()` is browser-only and rejects with a `TypeError` in server runtimes. Use `.blob()`, `.arrayBuffer()`, or `.response()` when the response must be processed on the server.
|
|
182
|
+
|
|
160
183
|
## Configuration
|
|
161
184
|
|
|
162
185
|
### Instance options
|
|
@@ -292,7 +315,7 @@ const api = ft.create({
|
|
|
292
315
|
});
|
|
293
316
|
```
|
|
294
317
|
|
|
295
|
-
Only `GET` and `HEAD` are retried by default. Add mutation methods explicitly only when the endpoint is idempotent. Request streams are never replayed or buffered silently. `Retry-After` is
|
|
318
|
+
Only `GET` and `HEAD` are retried by default. Add mutation methods explicitly only when the endpoint is idempotent. Request streams are never replayed or buffered silently. A `Retry-After` value within `maxDelay` is followed exactly without jitter. Responses requesting a longer delay are not retried.
|
|
296
319
|
|
|
297
320
|
## Timeout and cancellation
|
|
298
321
|
|
|
@@ -310,8 +333,9 @@ The timeout covers all attempts and retry delays until the final response header
|
|
|
310
333
|
|
|
311
334
|
```ts
|
|
312
335
|
const api = ft.create({
|
|
313
|
-
beforeRequest: ({ attempt, request }) => {
|
|
336
|
+
beforeRequest: ({ attempt, isServer, request }) => {
|
|
314
337
|
request.headers.set("x-attempt", String(attempt));
|
|
338
|
+
request.headers.set("x-runtime", isServer ? "server" : "client");
|
|
315
339
|
},
|
|
316
340
|
|
|
317
341
|
afterResponse: ({ response }) => {
|
|
@@ -340,6 +364,7 @@ beforeRequest
|
|
|
340
364
|
```
|
|
341
365
|
|
|
342
366
|
`afterResponse` may return a replacement `Response`. `onError` may return a replacement `Error`.
|
|
367
|
+
Every lifecycle callback receives `isServer`, calculated once when the request operation starts.
|
|
343
368
|
|
|
344
369
|
## Status actions
|
|
345
370
|
|
|
@@ -348,8 +373,12 @@ beforeRequest
|
|
|
348
373
|
```ts
|
|
349
374
|
const api = ft.create({
|
|
350
375
|
onStatus: {
|
|
351
|
-
401: ({
|
|
352
|
-
|
|
376
|
+
401: ({ isServer, request }) => {
|
|
377
|
+
if (!isServer) {
|
|
378
|
+
window.location.replace("/login");
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
console.log("Unauthorized", request.url);
|
|
353
382
|
},
|
|
354
383
|
503: () => {
|
|
355
384
|
throw new Error("Maintenance mode");
|
|
@@ -378,7 +407,7 @@ await api
|
|
|
378
407
|
console.log({ percent, transferred, total });
|
|
379
408
|
},
|
|
380
409
|
})
|
|
381
|
-
.
|
|
410
|
+
.download({ filename: "download.bin" });
|
|
382
411
|
```
|
|
383
412
|
|
|
384
413
|
`total` and `percent` are `null` when the runtime or server does not provide a known size. Upload progress depends on native request stream support. The package does not switch to XMLHttpRequest or another transport.
|
|
@@ -386,7 +415,13 @@ await api
|
|
|
386
415
|
## Errors
|
|
387
416
|
|
|
388
417
|
```ts
|
|
389
|
-
import {
|
|
418
|
+
import {
|
|
419
|
+
errorInfo,
|
|
420
|
+
FetchError,
|
|
421
|
+
HTTPError,
|
|
422
|
+
NetworkError,
|
|
423
|
+
TimeoutError,
|
|
424
|
+
} from "@gauts/ft";
|
|
390
425
|
```
|
|
391
426
|
|
|
392
427
|
- `HTTPError` exposes `request` and `response`.
|
|
@@ -394,6 +429,19 @@ import { FetchError, HTTPError, NetworkError, TimeoutError } from "@gauts/ft";
|
|
|
394
429
|
- `TimeoutError` exposes `request` and `timeout`.
|
|
395
430
|
- `FetchError` is the shared base class.
|
|
396
431
|
|
|
432
|
+
Use `errorInfo()` to obtain a consistent result without consuming the original response:
|
|
433
|
+
|
|
434
|
+
```ts
|
|
435
|
+
try {
|
|
436
|
+
await api.get("accounts");
|
|
437
|
+
} catch (err) {
|
|
438
|
+
const { code, message, status } = await errorInfo(err);
|
|
439
|
+
console.log({ code, message, status });
|
|
440
|
+
}
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
It reads `error`, `message`, and `code` from JSON error responses. HTTP errors use the response status; errors without an HTTP response use status `0`. Unknown errors return `Request failed`.
|
|
444
|
+
|
|
397
445
|
## Current scope
|
|
398
446
|
|
|
399
447
|
This version contains only the framework-independent native Fetch client. It can select browser/server URLs and filter incoming headers, but it never imports a framework or discovers a framework request context by itself. The consuming application provides that context through `getHeaders`. Authentication, session management, and application caching remain outside the package.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAER,OAAO,EACP,aAAa,EAOhB,MAAM,YAAY,CAAC;AAmepB,eAAO,MAAM,aAAa,GAAI,SAAQ,aAAkB,KAAG,OAOzD,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DEFAULTS, FORWARD_HEADERS } from "./config.js";
|
|
2
|
+
import { saveDownload } from "./download.js";
|
|
2
3
|
import { HTTPError, NetworkError, TimeoutError } from "./errors.js";
|
|
3
|
-
import { getBodySize, trackResponse, trackStream } from "./progress.js";
|
|
4
|
-
import { canRetry, getRetryDelay, resolveRetry, sleep } from "./retry.js";
|
|
4
|
+
import { getBodySize, getContentLength, trackResponse, trackStream } from "./progress.js";
|
|
5
|
+
import { canRetry, getBackoffDelay, getRetryDelay, resolveRetry, sleep } from "./retry.js";
|
|
5
6
|
import { resolveUrl } from "./url.js";
|
|
6
7
|
const CONFIG_KEYS = new Set([
|
|
7
8
|
"afterResponse",
|
|
@@ -43,13 +44,13 @@ const isStream = (body) => {
|
|
|
43
44
|
const isRuntimeBaseUrl = (baseUrl) => {
|
|
44
45
|
return typeof baseUrl === "object" && !(baseUrl instanceof URL);
|
|
45
46
|
};
|
|
46
|
-
const getBaseUrl = (baseUrl) => {
|
|
47
|
+
const getBaseUrl = ({ baseUrl, isServer }) => {
|
|
47
48
|
if (!isRuntimeBaseUrl(baseUrl))
|
|
48
49
|
return baseUrl;
|
|
49
|
-
return
|
|
50
|
+
return isServer ? baseUrl.server : baseUrl.client;
|
|
50
51
|
};
|
|
51
|
-
const getForwardedHeaders = async (config) => {
|
|
52
|
-
if (!config.forwardHeaders ||
|
|
52
|
+
const getForwardedHeaders = async ({ config, isServer }) => {
|
|
53
|
+
if (!config.forwardHeaders || !isServer)
|
|
53
54
|
return undefined;
|
|
54
55
|
if (!config.getHeaders) {
|
|
55
56
|
throw new TypeError("getHeaders is required when forwardHeaders is enabled on the server");
|
|
@@ -93,15 +94,20 @@ const getBody = (options, headers) => {
|
|
|
93
94
|
if (options.json === undefined)
|
|
94
95
|
throw new TypeError("json cannot be undefined");
|
|
95
96
|
const body = JSON.stringify(options.json);
|
|
97
|
+
if (typeof body !== "string")
|
|
98
|
+
throw new TypeError("json must be serializable");
|
|
96
99
|
if (!headers.has("content-type"))
|
|
97
100
|
headers.set("content-type", "application/json");
|
|
98
101
|
return body;
|
|
99
102
|
};
|
|
100
|
-
const buildRequest = ({ config, forwardedHeaders, input, method, options, signal, }) => {
|
|
103
|
+
const buildRequest = ({ config, forwardedHeaders, input, isServer, method, options, signal, }) => {
|
|
104
|
+
if (input instanceof Request && options.searchParams !== undefined) {
|
|
105
|
+
throw new TypeError("searchParams cannot be combined with a Request input");
|
|
106
|
+
}
|
|
101
107
|
const requestInput = input instanceof Request
|
|
102
108
|
? input
|
|
103
109
|
: resolveUrl({
|
|
104
|
-
baseUrl: getBaseUrl(config.baseUrl),
|
|
110
|
+
baseUrl: getBaseUrl({ baseUrl: config.baseUrl, isServer }),
|
|
105
111
|
input,
|
|
106
112
|
prefix: config.prefix,
|
|
107
113
|
requestSearchParams: options.searchParams,
|
|
@@ -124,8 +130,7 @@ const buildRequest = ({ config, forwardedHeaders, input, method, options, signal
|
|
|
124
130
|
: init;
|
|
125
131
|
let request = new Request(requestInput, requestInit);
|
|
126
132
|
if (options.onUploadProgress && request.body) {
|
|
127
|
-
const
|
|
128
|
-
const total = getBodySize(body) ?? (Number.isFinite(headerSize) ? headerSize : null);
|
|
133
|
+
const total = getBodySize(body) ?? getContentLength(request.headers);
|
|
129
134
|
const tracked = trackStream({
|
|
130
135
|
onProgress: options.onUploadProgress,
|
|
131
136
|
stream: request.body,
|
|
@@ -140,6 +145,9 @@ const buildRequest = ({ config, forwardedHeaders, input, method, options, signal
|
|
|
140
145
|
return { replayable: !isStream(body) && !(input instanceof Request && input.body), request };
|
|
141
146
|
};
|
|
142
147
|
const createOperation = ({ signal, timeout, }) => {
|
|
148
|
+
if (timeout !== false && (!Number.isFinite(timeout) || timeout <= 0)) {
|
|
149
|
+
throw new TypeError("timeout must be a positive number or false");
|
|
150
|
+
}
|
|
143
151
|
const controller = new AbortController();
|
|
144
152
|
let timedOut = false;
|
|
145
153
|
let timer;
|
|
@@ -149,9 +157,6 @@ const createOperation = ({ signal, timeout, }) => {
|
|
|
149
157
|
else
|
|
150
158
|
signal?.addEventListener("abort", abort, { once: true });
|
|
151
159
|
if (timeout !== false) {
|
|
152
|
-
if (!Number.isFinite(timeout) || timeout <= 0) {
|
|
153
|
-
throw new TypeError("timeout must be a positive number or false");
|
|
154
|
-
}
|
|
155
160
|
timer = setTimeout(() => {
|
|
156
161
|
timedOut = true;
|
|
157
162
|
controller.abort();
|
|
@@ -194,23 +199,24 @@ class Task {
|
|
|
194
199
|
async blob() {
|
|
195
200
|
return (await this.#promise).blob();
|
|
196
201
|
}
|
|
202
|
+
async download(options = {}) {
|
|
203
|
+
await saveDownload({ options, response: await this.#promise });
|
|
204
|
+
}
|
|
197
205
|
async arrayBuffer() {
|
|
198
206
|
return (await this.#promise).arrayBuffer();
|
|
199
207
|
}
|
|
200
|
-
async bytes() {
|
|
201
|
-
return (await this.#promise).bytes();
|
|
202
|
-
}
|
|
203
208
|
async formData() {
|
|
204
209
|
return (await this.#promise).formData();
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
212
|
const createMethod = (config, method) => (input = "", options = {}) => new Task(async () => {
|
|
213
|
+
const isServer = typeof window === "undefined";
|
|
208
214
|
const timeout = options.timeout ?? config.timeout ?? DEFAULTS.timeout;
|
|
215
|
+
const retry = resolveRetry(options.retry ?? config.retry);
|
|
209
216
|
const operation = createOperation({
|
|
210
217
|
signal: options.signal ?? (input instanceof Request ? input.signal : undefined),
|
|
211
218
|
timeout,
|
|
212
219
|
});
|
|
213
|
-
const retry = resolveRetry(options.retry ?? config.retry);
|
|
214
220
|
const beforeRequest = options.beforeRequest ?? config.beforeRequest;
|
|
215
221
|
const afterResponse = options.afterResponse ?? config.afterResponse;
|
|
216
222
|
const onRetry = options.onRetry ?? config.onRetry;
|
|
@@ -221,14 +227,19 @@ const createMethod = (config, method) => (input = "", options = {}) => new Task(
|
|
|
221
227
|
let lastRequest = null;
|
|
222
228
|
const handleError = async (error) => {
|
|
223
229
|
const current = toError(error);
|
|
224
|
-
const changed = await onError?.({
|
|
230
|
+
const changed = await onError?.({
|
|
231
|
+
attempt,
|
|
232
|
+
error: current,
|
|
233
|
+
isServer,
|
|
234
|
+
request: lastRequest,
|
|
235
|
+
});
|
|
225
236
|
return changed ?? current;
|
|
226
237
|
};
|
|
227
238
|
const getTimeoutError = () => new TimeoutError(operation.timeout === false ? 0 : operation.timeout, lastRequest);
|
|
228
239
|
try {
|
|
229
240
|
let forwardedHeaders;
|
|
230
241
|
try {
|
|
231
|
-
forwardedHeaders = await getForwardedHeaders(config);
|
|
242
|
+
forwardedHeaders = await getForwardedHeaders({ config, isServer });
|
|
232
243
|
}
|
|
233
244
|
catch (error) {
|
|
234
245
|
throw await handleError(error);
|
|
@@ -241,13 +252,14 @@ const createMethod = (config, method) => (input = "", options = {}) => new Task(
|
|
|
241
252
|
config,
|
|
242
253
|
forwardedHeaders,
|
|
243
254
|
input,
|
|
255
|
+
isServer,
|
|
244
256
|
method,
|
|
245
257
|
options,
|
|
246
258
|
signal: operation.signal,
|
|
247
259
|
});
|
|
248
260
|
lastRequest = built.request;
|
|
249
261
|
try {
|
|
250
|
-
await beforeRequest?.({ attempt, request: built.request });
|
|
262
|
+
await beforeRequest?.({ attempt, isServer, request: built.request });
|
|
251
263
|
}
|
|
252
264
|
catch (error) {
|
|
253
265
|
throw await handleError(error);
|
|
@@ -263,20 +275,22 @@ const createMethod = (config, method) => (input = "", options = {}) => new Task(
|
|
|
263
275
|
if (operation.signal.aborted)
|
|
264
276
|
throw await handleError(error);
|
|
265
277
|
const networkError = new NetworkError(error, built.request);
|
|
266
|
-
if (!
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
278
|
+
if (!retry ||
|
|
279
|
+
!canRetry({
|
|
280
|
+
attempt,
|
|
281
|
+
config: retry,
|
|
282
|
+
method,
|
|
283
|
+
replayable: built.replayable,
|
|
284
|
+
})) {
|
|
272
285
|
throw await handleError(networkError);
|
|
273
286
|
}
|
|
274
|
-
const delay =
|
|
287
|
+
const delay = getBackoffDelay({ attempt, config: retry });
|
|
275
288
|
try {
|
|
276
289
|
await onRetry?.({
|
|
277
290
|
attempt,
|
|
278
291
|
delay,
|
|
279
292
|
error: networkError,
|
|
293
|
+
isServer,
|
|
280
294
|
request: built.request,
|
|
281
295
|
response: null,
|
|
282
296
|
});
|
|
@@ -291,6 +305,7 @@ const createMethod = (config, method) => (input = "", options = {}) => new Task(
|
|
|
291
305
|
response =
|
|
292
306
|
(await afterResponse?.({
|
|
293
307
|
attempt,
|
|
308
|
+
isServer,
|
|
294
309
|
request: built.request,
|
|
295
310
|
response,
|
|
296
311
|
})) ?? response;
|
|
@@ -308,27 +323,33 @@ const createMethod = (config, method) => (input = "", options = {}) => new Task(
|
|
|
308
323
|
replayable: built.replayable,
|
|
309
324
|
});
|
|
310
325
|
if (shouldRetry && retry) {
|
|
311
|
-
const error = new HTTPError(response, built.request);
|
|
312
326
|
const delay = getRetryDelay({ attempt, config: retry, response });
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
327
|
+
if (delay !== null) {
|
|
328
|
+
const error = new HTTPError(response, built.request);
|
|
329
|
+
try {
|
|
330
|
+
await onRetry?.({
|
|
331
|
+
attempt,
|
|
332
|
+
delay,
|
|
333
|
+
error,
|
|
334
|
+
isServer,
|
|
335
|
+
request: built.request,
|
|
336
|
+
response,
|
|
337
|
+
});
|
|
338
|
+
if (response.body && !response.bodyUsed && !response.body.locked) {
|
|
339
|
+
await response.body.cancel();
|
|
340
|
+
}
|
|
341
|
+
await sleep(delay, operation.signal);
|
|
342
|
+
}
|
|
343
|
+
catch (retryError) {
|
|
344
|
+
throw await handleError(operation.didTimeout() ? getTimeoutError() : retryError);
|
|
345
|
+
}
|
|
346
|
+
continue;
|
|
326
347
|
}
|
|
327
|
-
continue;
|
|
328
348
|
}
|
|
329
349
|
response = trackResponse(response, options.onDownloadProgress);
|
|
330
350
|
const context = {
|
|
331
351
|
attempt,
|
|
352
|
+
isServer,
|
|
332
353
|
request: built.request,
|
|
333
354
|
response,
|
|
334
355
|
};
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DownloadOptions } from "./types.js";
|
|
2
|
+
type DownloadInput = {
|
|
3
|
+
options: DownloadOptions;
|
|
4
|
+
response: Response;
|
|
5
|
+
};
|
|
6
|
+
export declare const getDownloadName: ({ options, response }: DownloadInput) => string;
|
|
7
|
+
export declare const saveDownload: ({ options, response }: DownloadInput) => Promise<void>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=download.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AA6CF,eAAO,MAAM,eAAe,GAAI,uBAAuB,aAAa,WAEnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,uBAAuB,aAAa,KAAG,OAAO,CAAC,IAAI,CAoBrF,CAAC"}
|
package/dist/download.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const DEFAULT_NAME = "download";
|
|
2
|
+
const encodedPattern = /(?:^|;)\s*filename\*\s*=\s*(?:"([^"]*)"|([^;]*))/i;
|
|
3
|
+
const filenamePattern = /(?:^|;)\s*filename\s*=\s*(?:"([^"]*)"|([^;]*))/i;
|
|
4
|
+
const cleanName = (value) => {
|
|
5
|
+
const name = value?.trim().split(/[\\/]/).at(-1)?.trim();
|
|
6
|
+
if (!name)
|
|
7
|
+
return undefined;
|
|
8
|
+
return name;
|
|
9
|
+
};
|
|
10
|
+
const getParam = ({ header, pattern }) => {
|
|
11
|
+
const match = pattern.exec(header);
|
|
12
|
+
return match?.[1] ?? match?.[2]?.trim();
|
|
13
|
+
};
|
|
14
|
+
const decodeName = (value) => {
|
|
15
|
+
const encoded = value?.match(/^UTF-8'[^']*'(.*)$/i)?.[1];
|
|
16
|
+
if (!encoded)
|
|
17
|
+
return undefined;
|
|
18
|
+
try {
|
|
19
|
+
return decodeURIComponent(encoded);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const getHeaderName = (response) => {
|
|
26
|
+
const header = response.headers.get("content-disposition");
|
|
27
|
+
if (!header)
|
|
28
|
+
return undefined;
|
|
29
|
+
const encoded = getParam({ header, pattern: encodedPattern });
|
|
30
|
+
const filename = getParam({ header, pattern: filenamePattern });
|
|
31
|
+
return cleanName(decodeName(encoded)) ?? cleanName(filename);
|
|
32
|
+
};
|
|
33
|
+
export const getDownloadName = ({ options, response }) => {
|
|
34
|
+
return cleanName(options.filename) ?? getHeaderName(response) ?? DEFAULT_NAME;
|
|
35
|
+
};
|
|
36
|
+
export const saveDownload = async ({ options, response }) => {
|
|
37
|
+
if (typeof document === "undefined" || typeof URL.createObjectURL !== "function") {
|
|
38
|
+
throw new TypeError("download() is only available in browser runtimes");
|
|
39
|
+
}
|
|
40
|
+
const blob = await response.blob();
|
|
41
|
+
const url = URL.createObjectURL(blob);
|
|
42
|
+
const anchor = document.createElement("a");
|
|
43
|
+
anchor.download = getDownloadName({ options, response });
|
|
44
|
+
anchor.hidden = true;
|
|
45
|
+
anchor.href = url;
|
|
46
|
+
try {
|
|
47
|
+
document.body.appendChild(anchor);
|
|
48
|
+
anchor.click();
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
anchor.remove();
|
|
52
|
+
setTimeout(() => URL.revokeObjectURL(url), 0);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export type ErrorInfo = {
|
|
2
|
+
code?: string;
|
|
3
|
+
message: string;
|
|
4
|
+
status: number;
|
|
5
|
+
};
|
|
1
6
|
export declare class FetchError extends Error {
|
|
2
7
|
readonly request: Request | null;
|
|
3
8
|
constructor(message: string, request: Request | null, options?: ErrorOptions);
|
|
@@ -13,4 +18,5 @@ export declare class TimeoutError extends FetchError {
|
|
|
13
18
|
readonly timeout: number;
|
|
14
19
|
constructor(timeout: number, request: Request | null);
|
|
15
20
|
}
|
|
21
|
+
export declare const errorInfo: (err: unknown) => Promise<ErrorInfo>;
|
|
16
22
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY;CAK/E;AAED,qBAAa,SAAU,SAAQ,UAAU;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAEhB,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;CAQnD;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAMtD;AAED,qBAAa,YAAa,SAAQ,UAAU;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAKvD"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,qBAAa,UAAW,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY;CAK/E;AAED,qBAAa,SAAU,SAAQ,UAAU;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAEhB,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;CAQnD;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAMtD;AAED,qBAAa,YAAa,SAAQ,UAAU;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAKvD;AAWD,eAAO,MAAM,SAAS,GAAU,KAAK,OAAO,KAAG,OAAO,CAAC,SAAS,CAoB/D,CAAC"}
|
package/dist/errors.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
const fallbackMessage = "Request failed";
|
|
2
|
+
const getRecord = (value) => {
|
|
3
|
+
return value !== null && typeof value === "object" ? value : null;
|
|
4
|
+
};
|
|
5
|
+
const getText = (value) => {
|
|
6
|
+
return typeof value === "string" && value.trim() ? value : undefined;
|
|
7
|
+
};
|
|
1
8
|
export class FetchError extends Error {
|
|
2
9
|
request;
|
|
3
10
|
constructor(message, request, options) {
|
|
@@ -29,4 +36,31 @@ export class TimeoutError extends FetchError {
|
|
|
29
36
|
this.timeout = timeout;
|
|
30
37
|
}
|
|
31
38
|
}
|
|
39
|
+
const getBody = async (err) => {
|
|
40
|
+
try {
|
|
41
|
+
const body = await err.response.clone().json();
|
|
42
|
+
return getRecord(body);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export const errorInfo = async (err) => {
|
|
49
|
+
const value = getRecord(err);
|
|
50
|
+
const response = getRecord(value?.response);
|
|
51
|
+
const body = err instanceof HTTPError ? await getBody(err) : null;
|
|
52
|
+
let status = 0;
|
|
53
|
+
if (err instanceof HTTPError)
|
|
54
|
+
status = err.response.status;
|
|
55
|
+
else if (typeof value?.status === "number")
|
|
56
|
+
status = value.status;
|
|
57
|
+
else if (typeof response?.status === "number")
|
|
58
|
+
status = response.status;
|
|
59
|
+
const message = getText(body?.error) ??
|
|
60
|
+
getText(body?.message) ??
|
|
61
|
+
getText(value?.message) ??
|
|
62
|
+
fallbackMessage;
|
|
63
|
+
const code = getText(body?.code) ?? getText(value?.code);
|
|
64
|
+
return code ? { code, message, status } : { message, status };
|
|
65
|
+
};
|
|
32
66
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAMA,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAkC,EAAE;IACjE,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnG,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACxB,OAAO,CAAiB;IAEjC,YAAY,OAAe,EAAE,OAAuB,EAAE,OAAsB;QACxE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,OAAO,SAAU,SAAQ,UAAU;IAC5B,QAAQ,CAAW;IAE5B,YAAY,QAAkB,EAAE,OAAgB;QAC5C,KAAK,CACD,8BAA8B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EACrF,OAAO,CACV,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IACxC,YAAY,KAAc,EAAE,OAAuB;QAC/C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAElF,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC/B,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC/B,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,OAAuB;QAChD,KAAK,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,KAAK,EAAE,GAAc,EAAE,EAAE;IACrC,IAAI,CAAC;QACD,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAY,EAAsB,EAAE;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,GAAG,YAAY,SAAS;QAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;SACtD,IAAI,OAAO,KAAK,EAAE,MAAM,KAAK,QAAQ;QAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;SAC7D,IAAI,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ;QAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAExE,MAAM,OAAO,GACT,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEzD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Ft } from "./types.js";
|
|
2
2
|
export { createFetcher } from "./client.js";
|
|
3
|
-
export { FetchError, HTTPError, NetworkError, TimeoutError } from "./errors.js";
|
|
4
|
-
export type {
|
|
3
|
+
export { errorInfo, FetchError, HTTPError, NetworkError, TimeoutError } from "./errors.js";
|
|
4
|
+
export type { ErrorInfo } from "./errors.js";
|
|
5
|
+
export type { AfterResponse, BeforeRequest, DownloadOptions, ErrorContext, Fetcher, FetcherConfig, FetchMethod, FetchTask, Ft, ForwardHeaders, GetHeaders, HttpMethod, OnError, OnRetry, OnStatus, Progress, RequestContext, RequestInput, RequestOptions, ResponseContext, RetryConfig, RetryContext, RetryOption, RuntimeBaseUrl, SearchParams, SearchValue, StatusHandlers, } from "./types.js";
|
|
5
6
|
declare const ft: Ft;
|
|
6
7
|
export default ft;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,EAAE,EACF,cAAc,EACd,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,GACjB,MAAM,YAAY,CAAC;AAIpB,QAAA,MAAM,EAAE,EAAE,EAGT,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createFetcher } from "./client.js";
|
|
2
2
|
export { createFetcher } from "./client.js";
|
|
3
|
-
export { FetchError, HTTPError, NetworkError, TimeoutError } from "./errors.js";
|
|
3
|
+
export { errorInfo, FetchError, HTTPError, NetworkError, TimeoutError } from "./errors.js";
|
|
4
4
|
const client = createFetcher();
|
|
5
5
|
const ft = {
|
|
6
6
|
...client,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgC3F,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;AAE/B,MAAM,EAAE,GAAO;IACX,GAAG,MAAM;IACT,MAAM,EAAE,aAAa;CACxB,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/progress.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ type TrackStreamInput = {
|
|
|
5
5
|
total: number | null;
|
|
6
6
|
};
|
|
7
7
|
export declare const getBodySize: (body: BodyInit | null | undefined) => number | null;
|
|
8
|
+
export declare const getContentLength: (headers: Headers) => number | null;
|
|
8
9
|
export declare const trackStream: ({ onProgress, stream, total }: TrackStreamInput) => ReadableStream<Uint8Array<ArrayBufferLike>>;
|
|
9
10
|
export declare const trackResponse: (response: Response, onProgress?: (progress: Progress) => void) => Response;
|
|
10
11
|
export {};
|
package/dist/progress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,gBAAgB,GAAG;IACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAQF,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,IAUxE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,+BAA+B,gBAAgB,gDAiB1E,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,gBAAgB,GAAG;IACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAQF,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,IAUxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,KAAG,MAAM,GAAG,IAO5D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,+BAA+B,gBAAgB,gDAiB1E,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,aAc1F,CAAC"}
|
package/dist/progress.js
CHANGED
|
@@ -17,13 +17,20 @@ export const getBodySize = (body) => {
|
|
|
17
17
|
return body.byteLength;
|
|
18
18
|
return null;
|
|
19
19
|
};
|
|
20
|
+
export const getContentLength = (headers) => {
|
|
21
|
+
const value = headers.get("content-length");
|
|
22
|
+
if (value === null || value.trim() === "")
|
|
23
|
+
return null;
|
|
24
|
+
const length = Number(value);
|
|
25
|
+
return Number.isFinite(length) && length >= 0 ? length : null;
|
|
26
|
+
};
|
|
20
27
|
export const trackStream = ({ onProgress, stream, total }) => {
|
|
21
28
|
let transferred = 0;
|
|
22
29
|
onProgress(getProgress(0, total));
|
|
23
30
|
return stream.pipeThrough(new TransformStream({
|
|
24
31
|
flush: () => {
|
|
25
32
|
if (transferred === 0)
|
|
26
|
-
onProgress(getProgress(0, total
|
|
33
|
+
onProgress(getProgress(0, total));
|
|
27
34
|
},
|
|
28
35
|
transform: (chunk, controller) => {
|
|
29
36
|
transferred += chunk.byteLength;
|
|
@@ -35,8 +42,7 @@ export const trackStream = ({ onProgress, stream, total }) => {
|
|
|
35
42
|
export const trackResponse = (response, onProgress) => {
|
|
36
43
|
if (!onProgress || !response.body)
|
|
37
44
|
return response;
|
|
38
|
-
const
|
|
39
|
-
const total = Number.isFinite(length) && length >= 0 ? length : null;
|
|
45
|
+
const total = getContentLength(response.headers);
|
|
40
46
|
const body = trackStream({ onProgress, stream: response.body, total });
|
|
41
47
|
const tracked = new Response(body, response);
|
|
42
48
|
Object.defineProperties(tracked, {
|
package/dist/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,GAAG,CAAC,WAAmB,EAAE,KAAoB,EAAY,EAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK;IACtE,KAAK;IACL,WAAW;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiC,EAAiB,EAAE;IAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;IAC/E,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QAClC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC3C,IAAI,IAAI,YAAY,WAAW;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IACxD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAErD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAoB,EAAE,EAAE;IAC3E,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC,WAAW,CACrB,IAAI,eAAe,CAAyB;QACxC,KAAK,EAAE,GAAG,EAAE;YACR,IAAI,WAAW,KAAK,CAAC;gBAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
|
package/dist/retry.d.ts
CHANGED
|
@@ -6,14 +6,17 @@ type CanRetryInput = {
|
|
|
6
6
|
method: HttpMethod;
|
|
7
7
|
replayable: boolean;
|
|
8
8
|
};
|
|
9
|
-
type
|
|
9
|
+
type GetBackoffDelayInput = {
|
|
10
10
|
attempt: number;
|
|
11
11
|
config: ResolvedRetry;
|
|
12
|
-
|
|
12
|
+
};
|
|
13
|
+
type GetRetryDelayInput = GetBackoffDelayInput & {
|
|
14
|
+
response: Response;
|
|
13
15
|
};
|
|
14
16
|
export declare const resolveRetry: (retry?: RetryOption) => ResolvedRetry | null;
|
|
15
17
|
export declare const canRetry: ({ attempt, config, method, replayable }: CanRetryInput) => boolean;
|
|
16
|
-
export declare const
|
|
18
|
+
export declare const getBackoffDelay: ({ attempt, config }: GetBackoffDelayInput) => number;
|
|
19
|
+
export declare const getRetryDelay: ({ attempt, config, response }: GetRetryDelayInput) => number | null;
|
|
17
20
|
export declare const sleep: (delay: number, signal: AbortSignal) => Promise<void>;
|
|
18
21
|
export {};
|
|
19
22
|
//# sourceMappingURL=retry.d.ts.map
|
package/dist/retry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAElD,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAElD,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG,oBAAoB,GAAG;IAC7C,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAQF,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,KAAG,aAAa,GAAG,IAkBlE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,yCAAyC,aAAa,YACgB,CAAC;AAchG,eAAO,MAAM,eAAe,GAAI,qBAAqB,oBAAoB,WAKxE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,+BAA+B,kBAAkB,kBAQ9E,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,QAAQ,WAAW,kBAsBlD,CAAC"}
|
package/dist/retry.js
CHANGED
|
@@ -32,12 +32,18 @@ const retryAfter = (response) => {
|
|
|
32
32
|
const date = Date.parse(value);
|
|
33
33
|
return Number.isNaN(date) ? null : Math.max(0, date - Date.now());
|
|
34
34
|
};
|
|
35
|
-
export const
|
|
36
|
-
const headerDelay = response ? retryAfter(response) : null;
|
|
35
|
+
export const getBackoffDelay = ({ attempt, config }) => {
|
|
37
36
|
const backoff = config.baseDelay * 2 ** (attempt - 1);
|
|
38
|
-
const base = Math.min(
|
|
37
|
+
const base = Math.min(backoff, config.maxDelay);
|
|
39
38
|
return config.jitter ? Math.round(Math.random() * base) : base;
|
|
40
39
|
};
|
|
40
|
+
export const getRetryDelay = ({ attempt, config, response }) => {
|
|
41
|
+
const headerDelay = retryAfter(response);
|
|
42
|
+
if (headerDelay !== null) {
|
|
43
|
+
return headerDelay <= config.maxDelay ? headerDelay : null;
|
|
44
|
+
}
|
|
45
|
+
return getBackoffDelay({ attempt, config });
|
|
46
|
+
};
|
|
41
47
|
export const sleep = (delay, signal) => new Promise((resolve, reject) => {
|
|
42
48
|
const getError = () => signal.reason instanceof Error
|
|
43
49
|
? signal.reason
|
|
@@ -46,10 +52,14 @@ export const sleep = (delay, signal) => new Promise((resolve, reject) => {
|
|
|
46
52
|
reject(getError());
|
|
47
53
|
return;
|
|
48
54
|
}
|
|
49
|
-
const
|
|
50
|
-
signal.addEventListener("abort", () => {
|
|
55
|
+
const abort = () => {
|
|
51
56
|
clearTimeout(timer);
|
|
52
57
|
reject(getError());
|
|
53
|
-
}
|
|
58
|
+
};
|
|
59
|
+
const timer = setTimeout(() => {
|
|
60
|
+
signal.removeEventListener("abort", abort);
|
|
61
|
+
resolve();
|
|
62
|
+
}, delay);
|
|
63
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
54
64
|
});
|
|
55
65
|
//# sourceMappingURL=retry.js.map
|
package/dist/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqBvC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAwB,EAAE;IACtE,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvE,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,MAAM,MAAM,GAAkB;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS;QACtD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK;QAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ;QACnD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW;KAC/D,CAAC;IAEF,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAiB,EAAE,EAAE,CAC/E,OAAO,CAAC,MAAM,IAAI,UAAU,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhG,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAElD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAwB,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAsB,EAAE,EAAE;IAC/E,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE,CACxD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAClC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAClB,MAAM,CAAC,MAAM,YAAY,KAAK;QAC1B,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;IAEtE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnB,OAAO;IACX,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACf,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACd,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -15,8 +15,12 @@ export type Progress = {
|
|
|
15
15
|
total: number | null;
|
|
16
16
|
transferred: number;
|
|
17
17
|
};
|
|
18
|
+
export type DownloadOptions = {
|
|
19
|
+
filename?: string;
|
|
20
|
+
};
|
|
18
21
|
export type RequestContext = {
|
|
19
22
|
attempt: number;
|
|
23
|
+
isServer: boolean;
|
|
20
24
|
request: Request;
|
|
21
25
|
};
|
|
22
26
|
export type ResponseContext = RequestContext & {
|
|
@@ -30,6 +34,7 @@ export type RetryContext = RequestContext & {
|
|
|
30
34
|
export type ErrorContext = {
|
|
31
35
|
attempt: number;
|
|
32
36
|
error: Error;
|
|
37
|
+
isServer: boolean;
|
|
33
38
|
request: Request | null;
|
|
34
39
|
};
|
|
35
40
|
export type BeforeRequest = (context: RequestContext) => unknown;
|
|
@@ -75,8 +80,8 @@ export type RequestOptions = Omit<RequestInit, "method"> & Lifecycle & Reliabili
|
|
|
75
80
|
export type FetchTask = PromiseLike<Response> & {
|
|
76
81
|
arrayBuffer: () => Promise<ArrayBuffer>;
|
|
77
82
|
blob: () => Promise<Blob>;
|
|
78
|
-
bytes: () => Promise<Uint8Array<ArrayBuffer>>;
|
|
79
83
|
catch: <TResult = never>(onRejected?: ((reason: unknown) => PromiseLike<TResult> | TResult) | null) => Promise<Response | TResult>;
|
|
84
|
+
download: (options?: DownloadOptions) => Promise<void>;
|
|
80
85
|
finally: (onFinally?: (() => void) | null) => Promise<Response>;
|
|
81
86
|
formData: () => Promise<FormData>;
|
|
82
87
|
json: <T = unknown>() => Promise<T>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,YAAY,GAClB,eAAe,GACf,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC,GACpD,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,YAAY,GAClB,eAAe,GACf,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC,GACpD,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAElE,MAAM,MAAM,QAAQ,GAAG;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,CACxB,OAAO,EAAE,eAAe,KACvB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC;AAEzD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAEtF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,KAAK,SAAS,GAAG;IACb,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,GACvE,SAAS,GACT,WAAW,GAAG;IACV,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,GAAG,CAAC;IACxC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GACpD,SAAS,GACT,WAAW,GAAG;IACV,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEN,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG;IAC5C,WAAW,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,OAAO,GAAG,KAAK,EACnB,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,KACxE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,SAAS,CAAC;AAExF,MAAM,MAAM,OAAO,GAAG;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,EAAE,GAAG,OAAO,GAAG;IACvB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC;CAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gauts/ft",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "A small, typed HTTP client built on the native Fetch API.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GVALFER",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
|
-
"clean": "node --eval \"import { rmSync } from 'node:fs'; rmSync('dist', { force: true, recursive: true })\"",
|
|
41
|
+
"clean": "node --input-type=module --eval \"import { rmSync } from 'node:fs'; rmSync('dist', { force: true, recursive: true })\"",
|
|
42
42
|
"build": "npm run clean && tsc -p tsconfig.build.json",
|
|
43
43
|
"typecheck": "tsc --noEmit",
|
|
44
44
|
"lint": "eslint src tests examples",
|