@torthu/jacketui-bring 0.2.4 → 1.0.0

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.
Files changed (73) hide show
  1. package/README.md +0 -2
  2. package/dist/bring.js +5 -4
  3. package/dist/errors/AbortError.js +1 -1
  4. package/dist/errors/ClientError.js +1 -1
  5. package/dist/errors/NetworkError.js +1 -1
  6. package/dist/errors/ServerError.js +1 -1
  7. package/dist/errors/TimeoutError.js +1 -1
  8. package/dist/errors/index.js +6 -6
  9. package/dist/fetch.js +1 -1
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.js +6 -5
  12. package/dist/request-builder-pipe/headers.js +11 -2
  13. package/dist/request-builder-pipe/index.d.ts +1 -0
  14. package/dist/request-builder-pipe/index.js +20 -19
  15. package/dist/request-builder-pipe/jitter.js +1 -1
  16. package/dist/response-pipe/index.js +6 -6
  17. package/dist/tryFetch.js +17 -1
  18. package/dist/types/BringInit.d.ts +1 -3
  19. package/package.json +27 -9
  20. package/src/bring.ts +0 -207
  21. package/src/errors/AbortError.ts +0 -18
  22. package/src/errors/BringError.ts +0 -24
  23. package/src/errors/ClientError.ts +0 -24
  24. package/src/errors/NetworkError.ts +0 -23
  25. package/src/errors/ServerError.ts +0 -24
  26. package/src/errors/TimeoutError.ts +0 -18
  27. package/src/errors/index.ts +0 -6
  28. package/src/fetch.ts +0 -34
  29. package/src/helpers/exponentialBackoff.ts +0 -28
  30. package/src/helpers/extractCallbacks.ts +0 -23
  31. package/src/helpers/extractRequestInit.ts +0 -30
  32. package/src/helpers/randomJitter.ts +0 -22
  33. package/src/helpers/shouldRetry.ts +0 -40
  34. package/src/index.ts +0 -7
  35. package/src/request-builder-pipe/backoff.ts +0 -22
  36. package/src/request-builder-pipe/body.ts +0 -17
  37. package/src/request-builder-pipe/cache.ts +0 -23
  38. package/src/request-builder-pipe/cors.ts +0 -39
  39. package/src/request-builder-pipe/credentials.ts +0 -33
  40. package/src/request-builder-pipe/header.ts +0 -28
  41. package/src/request-builder-pipe/headers.ts +0 -34
  42. package/src/request-builder-pipe/index.ts +0 -20
  43. package/src/request-builder-pipe/integrity.ts +0 -23
  44. package/src/request-builder-pipe/jitter.ts +0 -17
  45. package/src/request-builder-pipe/jsonBody.ts +0 -12
  46. package/src/request-builder-pipe/keepalive.ts +0 -21
  47. package/src/request-builder-pipe/method.ts +0 -18
  48. package/src/request-builder-pipe/priority.ts +0 -20
  49. package/src/request-builder-pipe/redirect.ts +0 -23
  50. package/src/request-builder-pipe/referrer.ts +0 -21
  51. package/src/request-builder-pipe/referrerPolicy.ts +0 -33
  52. package/src/request-builder-pipe/retry.ts +0 -13
  53. package/src/request-builder-pipe/shouldRetry.ts +0 -11
  54. package/src/request-builder-pipe/timeout.ts +0 -19
  55. package/src/request-builder-pipe/url.ts +0 -18
  56. package/src/response-pipe/arrayBuffer.ts +0 -18
  57. package/src/response-pipe/blob.ts +0 -18
  58. package/src/response-pipe/bytes.ts +0 -18
  59. package/src/response-pipe/formData.ts +0 -18
  60. package/src/response-pipe/index.ts +0 -6
  61. package/src/response-pipe/json.ts +0 -20
  62. package/src/response-pipe/text.ts +0 -18
  63. package/src/tryFetch.ts +0 -32
  64. package/src/types/BringDecorator.ts +0 -5
  65. package/src/types/BringInit.ts +0 -86
  66. package/src/types/ClientErrorResponse.ts +0 -72
  67. package/src/types/InformationalResponse.ts +0 -20
  68. package/src/types/RedirectResponse.ts +0 -20
  69. package/src/types/ServerErrorResponse.ts +0 -56
  70. package/src/types/SuccessResponse.ts +0 -57
  71. package/src/types/statusCodes.ts +0 -69
  72. package/test/bring.spec.ts +0 -149
  73. package/tsconfig.json +0 -21
@@ -1,149 +0,0 @@
1
- import {
2
- describe,
3
- expect,
4
- it,
5
- beforeAll,
6
- afterAll,
7
- afterEach,
8
- vi,
9
- } from "vitest";
10
- import fetchMock from "fetch-mock";
11
- import {
12
- AbortError,
13
- bring,
14
- ClientError,
15
- ServerError,
16
- TimeoutError,
17
- } from "../src";
18
- import { isResult } from "@torthu/jacketui-core";
19
-
20
- describe("bring", () => {
21
- beforeAll(() => {
22
- fetchMock.mockGlobal();
23
- });
24
-
25
- afterEach(() => {
26
- fetchMock.removeRoutes();
27
- });
28
-
29
- afterAll(() => {
30
- fetchMock.unmockGlobal();
31
- });
32
-
33
- it("should return a Response wrapped in Result", async () => {
34
- fetchMock.get("http://example.com", 200);
35
-
36
- const response = await bring({ url: "http://example.com" });
37
-
38
- expect(isResult(response)).toBe(true);
39
- expect(response.ok).toBe(true);
40
- expect(response.value).toBeInstanceOf(Response);
41
-
42
- fetchMock.removeRoute("http://example.com");
43
- });
44
-
45
- it("server error should return an Error wrapped in Result", async () => {
46
- fetchMock.get("http://example.com", 500);
47
-
48
- const response = await bring({
49
- url: "http://example.com",
50
- retry: 1,
51
- timeout: 100,
52
- onError: () => console.log("error"),
53
- onRetry: () => console.log("retrying"),
54
- onTimeout: () => console.log("timeout"),
55
- onClientError: () => console.log("client error"),
56
- onServerError: () => console.log("server error"),
57
- onAbort: () => console.log("aborted"),
58
- onSuccess: () => console.log("success"),
59
- });
60
-
61
- console.log(response);
62
-
63
- expect(isResult(response)).toBe(true);
64
- expect(response.ok).toBe(false);
65
- expect(response.error).toBeInstanceOf(ServerError);
66
- });
67
-
68
- it("client error should return an Error wrapped in Result", async () => {
69
- fetchMock.get("http://example.com", 400);
70
- const response = await bring({ url: "http://example.com" });
71
- expect(isResult(response)).toBe(true);
72
- expect(response.ok).toBe(false);
73
- expect(response.error).toBeInstanceOf(ClientError);
74
- });
75
-
76
- it("client error should return an Error wrapped in Result", async () => {
77
- fetchMock.get("http://example.com", 400);
78
- const response = await bring({ url: "http://example.com" });
79
- expect(isResult(response)).toBe(true);
80
- expect(response.ok).toBe(false);
81
- expect(response.error).toBeInstanceOf(ClientError);
82
- });
83
-
84
- it("should timeout", async () => {
85
- fetchMock.get("http://foo.bar.com", 200, {
86
- delay: 5000,
87
- });
88
-
89
- const retryCb = vi.fn();
90
-
91
- const response = await bring({
92
- url: "http://foo.bar.com",
93
- timeout: 10,
94
- onRetry: retryCb,
95
- retry: 3,
96
- });
97
-
98
- expect(isResult(response)).toBe(true);
99
- expect(response.ok).toBe(false);
100
- expect(response.error).toBeInstanceOf(TimeoutError);
101
- expect(retryCb).toHaveBeenCalledTimes(3);
102
- });
103
-
104
- it("should retry", async () => {
105
- fetchMock.get("http://foo.bar.com", 200, {
106
- delay: 5000,
107
- });
108
-
109
- const retryCb = vi.fn();
110
-
111
- const response = await bring({
112
- url: "http://foo.bar.com",
113
- timeout: 10,
114
- onRetry: retryCb,
115
- retry: 3,
116
- });
117
-
118
- expect(isResult(response)).toBe(true);
119
- expect(response.ok).toBe(false);
120
- expect(response.error).toBeInstanceOf(TimeoutError);
121
- expect(retryCb).toHaveBeenCalledTimes(3);
122
- });
123
-
124
- it("should abort", () =>
125
- new Promise<void>((done) => {
126
- fetchMock.get("http://foo.bar.com", 200, {
127
- delay: 5000,
128
- });
129
-
130
- const abortController = new AbortController();
131
- let response;
132
-
133
- const promise = bring({
134
- url: "http://foo.bar.com",
135
- timeout: 10,
136
- abortController,
137
- });
138
-
139
- promise.then((res) => {
140
- response = res;
141
- expect(isResult(response)).toBe(true);
142
- expect(response.ok).toBe(false);
143
- expect(response.error).toBeInstanceOf(AbortError);
144
- done();
145
- });
146
-
147
- abortController.abort();
148
- }));
149
- });
package/tsconfig.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/tsconfig",
3
-
4
- "compilerOptions": {
5
- "outDir": "dist",
6
- "strict": true,
7
- "target": "ES2022",
8
- "allowJs": true,
9
- "module": "ES6",
10
- "skipLibCheck": true,
11
- "esModuleInterop": true,
12
- "noImplicitAny": true,
13
- "moduleResolution": "node",
14
- "resolveJsonModule": true,
15
- "jsx": "react-jsx",
16
- "declaration": true
17
- },
18
-
19
- "include": ["src/**/*.ts", "src/**/*.tsx"],
20
- "exclude": ["node_modules"]
21
- }