@geekmidas/client 0.4.0 → 0.5.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 (71) hide show
  1. package/dist/auth-fetcher.cjs +0 -1
  2. package/dist/auth-fetcher.cjs.map +1 -1
  3. package/dist/auth-fetcher.d.cts +1 -1
  4. package/dist/auth-fetcher.d.cts.map +1 -1
  5. package/dist/auth-fetcher.d.mts +1 -1
  6. package/dist/auth-fetcher.d.mts.map +1 -1
  7. package/dist/auth-fetcher.mjs +0 -1
  8. package/dist/auth-fetcher.mjs.map +1 -1
  9. package/dist/endpoint-hooks.cjs +10 -5
  10. package/dist/endpoint-hooks.cjs.map +1 -1
  11. package/dist/endpoint-hooks.d.cts +2 -2
  12. package/dist/endpoint-hooks.d.cts.map +1 -1
  13. package/dist/endpoint-hooks.d.mts +2 -2
  14. package/dist/endpoint-hooks.d.mts.map +1 -1
  15. package/dist/endpoint-hooks.mjs +10 -5
  16. package/dist/endpoint-hooks.mjs.map +1 -1
  17. package/dist/fetcher-5fnBE7Dk.mjs.map +1 -1
  18. package/dist/fetcher-CgLEaIAC.cjs.map +1 -1
  19. package/dist/fetcher.d.cts +1 -1
  20. package/dist/fetcher.d.cts.map +1 -1
  21. package/dist/fetcher.d.mts +1 -1
  22. package/dist/fetcher.d.mts.map +1 -1
  23. package/dist/infer.d.cts.map +1 -1
  24. package/dist/infer.d.mts.map +1 -1
  25. package/dist/openapi-hooks.cjs.map +1 -1
  26. package/dist/openapi-hooks.d.cts +2 -2
  27. package/dist/openapi-hooks.d.cts.map +1 -1
  28. package/dist/openapi-hooks.d.mts +2 -2
  29. package/dist/openapi-hooks.d.mts.map +1 -1
  30. package/dist/openapi-hooks.mjs.map +1 -1
  31. package/dist/openapi-types.d.cts.map +1 -1
  32. package/dist/openapi-types.d.mts.map +1 -1
  33. package/dist/openapi.cjs.map +1 -1
  34. package/dist/openapi.mjs.map +1 -1
  35. package/dist/react-query.cjs.map +1 -1
  36. package/dist/react-query.d.cts +1 -1
  37. package/dist/react-query.d.cts.map +1 -1
  38. package/dist/react-query.d.mts +1 -1
  39. package/dist/react-query.d.mts.map +1 -1
  40. package/dist/react-query.mjs.map +1 -1
  41. package/dist/{types-FxummKaL.d.mts → types-4K4N-Fl1.d.cts} +2 -2
  42. package/dist/types-4K4N-Fl1.d.cts.map +1 -0
  43. package/dist/{types-vutATyWv.d.cts → types-hhkZWjQn.d.mts} +2 -2
  44. package/dist/types-hhkZWjQn.d.mts.map +1 -0
  45. package/dist/types.d.cts +1 -1
  46. package/dist/types.d.mts +1 -1
  47. package/package.json +3 -3
  48. package/src/__tests__/auth-fetcher.spec.ts +476 -476
  49. package/src/__tests__/endpoint-hooks.spec.tsx +348 -348
  50. package/src/__tests__/fetcher.spec.ts +403 -403
  51. package/src/__tests__/infer.integration.spec.ts +171 -171
  52. package/src/__tests__/infer.spec.ts +182 -182
  53. package/src/__tests__/method-restrictions.spec.tsx +165 -165
  54. package/src/__tests__/openapi-hooks.spec.tsx +536 -536
  55. package/src/__tests__/react-query-infinite.spec.tsx +989 -989
  56. package/src/__tests__/react-query-invalidation.spec.tsx +223 -222
  57. package/src/__tests__/react-query.spec.tsx +567 -567
  58. package/src/__tests__/setup.ts +260 -260
  59. package/src/__tests__/types.spec.ts +127 -127
  60. package/src/__tests__/url-parsing.spec.ts +191 -191
  61. package/src/auth-fetcher.ts +160 -162
  62. package/src/endpoint-hooks.ts +151 -156
  63. package/src/fetcher.ts +163 -163
  64. package/src/infer.ts +64 -63
  65. package/src/openapi-hooks.ts +146 -146
  66. package/src/openapi-types.d.ts +428 -428
  67. package/src/openapi.json +593 -593
  68. package/src/react-query.ts +281 -281
  69. package/src/types.ts +121 -124
  70. package/dist/types-FxummKaL.d.mts.map +0 -1
  71. package/dist/types-vutATyWv.d.cts.map +0 -1
@@ -11,70 +11,70 @@ import { createTypedQueryClient } from '../react-query';
11
11
  import './setup';
12
12
 
13
13
  describe('Method Restrictions', () => {
14
- const queryClient = new QueryClient({
15
- defaultOptions: {
16
- queries: {
17
- retry: false,
18
- },
19
- },
20
- });
21
-
22
- const wrapper = ({ children }: { children: React.ReactNode }) => (
23
- <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
24
- );
25
-
26
- describe('useQuery', () => {
27
- it('should accept GET endpoints', () => {
28
- const typedClient = createTypedQueryClient<paths>({
29
- baseURL: 'https://api.example.com',
30
- });
31
-
32
- // This should compile - GET endpoints are allowed
33
- const { result } = renderHook(() => typedClient.useQuery('GET /users'), {
34
- wrapper,
35
- });
36
-
37
- expect(result.current).toBeDefined();
38
- });
39
-
40
- it('should accept GET endpoints with parameters', () => {
41
- const typedClient = createTypedQueryClient<paths>({
42
- baseURL: 'https://api.example.com',
43
- });
44
-
45
- // This should compile - GET endpoints with params are allowed
46
- const { result } = renderHook(
47
- () =>
48
- typedClient.useQuery('GET /users/{id}', {
49
- params: { id: '123' },
50
- }),
51
- { wrapper },
52
- );
53
-
54
- expect(result.current).toBeDefined();
55
- });
56
-
57
- it('should accept GET endpoints with query parameters', () => {
58
- const typedClient = createTypedQueryClient<paths>({
59
- baseURL: 'https://api.example.com',
60
- });
61
-
62
- // This should compile - GET endpoints with query params are allowed
63
- const { result } = renderHook(
64
- () =>
65
- typedClient.useQuery('GET /posts', {
66
- query: { page: 1, limit: 10 },
67
- }),
68
- { wrapper },
69
- );
70
-
71
- expect(result.current).toBeDefined();
72
- });
73
-
74
- // The following tests would fail TypeScript compilation if uncommented
75
- // They are left here as documentation of what should NOT work
76
-
77
- /*
14
+ const queryClient = new QueryClient({
15
+ defaultOptions: {
16
+ queries: {
17
+ retry: false,
18
+ },
19
+ },
20
+ });
21
+
22
+ const wrapper = ({ children }: { children: React.ReactNode }) => (
23
+ <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
24
+ );
25
+
26
+ describe('useQuery', () => {
27
+ it('should accept GET endpoints', () => {
28
+ const typedClient = createTypedQueryClient<paths>({
29
+ baseURL: 'https://api.example.com',
30
+ });
31
+
32
+ // This should compile - GET endpoints are allowed
33
+ const { result } = renderHook(() => typedClient.useQuery('GET /users'), {
34
+ wrapper,
35
+ });
36
+
37
+ expect(result.current).toBeDefined();
38
+ });
39
+
40
+ it('should accept GET endpoints with parameters', () => {
41
+ const typedClient = createTypedQueryClient<paths>({
42
+ baseURL: 'https://api.example.com',
43
+ });
44
+
45
+ // This should compile - GET endpoints with params are allowed
46
+ const { result } = renderHook(
47
+ () =>
48
+ typedClient.useQuery('GET /users/{id}', {
49
+ params: { id: '123' },
50
+ }),
51
+ { wrapper },
52
+ );
53
+
54
+ expect(result.current).toBeDefined();
55
+ });
56
+
57
+ it('should accept GET endpoints with query parameters', () => {
58
+ const typedClient = createTypedQueryClient<paths>({
59
+ baseURL: 'https://api.example.com',
60
+ });
61
+
62
+ // This should compile - GET endpoints with query params are allowed
63
+ const { result } = renderHook(
64
+ () =>
65
+ typedClient.useQuery('GET /posts', {
66
+ query: { page: 1, limit: 10 },
67
+ }),
68
+ { wrapper },
69
+ );
70
+
71
+ expect(result.current).toBeDefined();
72
+ });
73
+
74
+ // The following tests would fail TypeScript compilation if uncommented
75
+ // They are left here as documentation of what should NOT work
76
+
77
+ /*
78
78
  it('should NOT accept POST endpoints', () => {
79
79
  const typedClient = createTypedQueryClient<paths>({
80
80
  baseURL: 'https://api.example.com',
@@ -111,55 +111,55 @@ describe('Method Restrictions', () => {
111
111
  );
112
112
  });
113
113
  */
114
- });
115
-
116
- describe('useMutation', () => {
117
- it('should accept POST endpoints', () => {
118
- const typedClient = createTypedQueryClient<paths>({
119
- baseURL: 'https://api.example.com',
120
- });
121
-
122
- // This should compile - POST endpoints are allowed
123
- const { result } = renderHook(
124
- () => typedClient.useMutation('POST /users'),
125
- { wrapper },
126
- );
127
-
128
- expect(result.current).toBeDefined();
129
- });
130
-
131
- it('should accept PUT endpoints', () => {
132
- const typedClient = createTypedQueryClient<paths>({
133
- baseURL: 'https://api.example.com',
134
- });
135
-
136
- // This should compile - PUT endpoints are allowed
137
- const { result } = renderHook(
138
- () => typedClient.useMutation('PUT /users/{id}'),
139
- { wrapper },
140
- );
141
-
142
- expect(result.current).toBeDefined();
143
- });
144
-
145
- it('should accept DELETE endpoints', () => {
146
- const typedClient = createTypedQueryClient<paths>({
147
- baseURL: 'https://api.example.com',
148
- });
149
-
150
- // This should compile - DELETE endpoints are allowed
151
- const { result } = renderHook(
152
- () => typedClient.useMutation('DELETE /users/{id}'),
153
- { wrapper },
154
- );
155
-
156
- expect(result.current).toBeDefined();
157
- });
158
-
159
- // The following test would fail TypeScript compilation if uncommented
160
- // It is left here as documentation of what should NOT work
161
-
162
- /*
114
+ });
115
+
116
+ describe('useMutation', () => {
117
+ it('should accept POST endpoints', () => {
118
+ const typedClient = createTypedQueryClient<paths>({
119
+ baseURL: 'https://api.example.com',
120
+ });
121
+
122
+ // This should compile - POST endpoints are allowed
123
+ const { result } = renderHook(
124
+ () => typedClient.useMutation('POST /users'),
125
+ { wrapper },
126
+ );
127
+
128
+ expect(result.current).toBeDefined();
129
+ });
130
+
131
+ it('should accept PUT endpoints', () => {
132
+ const typedClient = createTypedQueryClient<paths>({
133
+ baseURL: 'https://api.example.com',
134
+ });
135
+
136
+ // This should compile - PUT endpoints are allowed
137
+ const { result } = renderHook(
138
+ () => typedClient.useMutation('PUT /users/{id}'),
139
+ { wrapper },
140
+ );
141
+
142
+ expect(result.current).toBeDefined();
143
+ });
144
+
145
+ it('should accept DELETE endpoints', () => {
146
+ const typedClient = createTypedQueryClient<paths>({
147
+ baseURL: 'https://api.example.com',
148
+ });
149
+
150
+ // This should compile - DELETE endpoints are allowed
151
+ const { result } = renderHook(
152
+ () => typedClient.useMutation('DELETE /users/{id}'),
153
+ { wrapper },
154
+ );
155
+
156
+ expect(result.current).toBeDefined();
157
+ });
158
+
159
+ // The following test would fail TypeScript compilation if uncommented
160
+ // It is left here as documentation of what should NOT work
161
+
162
+ /*
163
163
  it('should NOT accept GET endpoints', () => {
164
164
  const typedClient = createTypedQueryClient<paths>({
165
165
  baseURL: 'https://api.example.com',
@@ -172,56 +172,56 @@ describe('Method Restrictions', () => {
172
172
  );
173
173
  });
174
174
  */
175
- });
176
-
177
- describe('Type inference', () => {
178
- it('should correctly infer response types for GET requests', () => {
179
- const typedClient = createTypedQueryClient<paths>({
180
- baseURL: 'https://api.example.com',
181
- });
182
-
183
- const { result } = renderHook(() => typedClient.useQuery('GET /users'), {
184
- wrapper,
185
- });
186
-
187
- // TypeScript should infer this type correctly
188
- type ResponseType = typeof result.current.data;
189
- type ExpectedType =
190
- | { users: Array<{ id: string; name: string; email: string }> }
191
- | undefined;
192
-
193
- // This assertion validates that the types match at compile time
194
- const _typeCheck: ResponseType extends ExpectedType ? true : false = true;
195
- const _typeCheck2: ExpectedType extends ResponseType ? true : false =
196
- true;
197
-
198
- expect(_typeCheck).toBe(true);
199
- expect(_typeCheck2).toBe(true);
200
- });
201
-
202
- it('should correctly infer response types for POST requests', () => {
203
- const typedClient = createTypedQueryClient<paths>({
204
- baseURL: 'https://api.example.com',
205
- });
206
-
207
- const { result } = renderHook(
208
- () => typedClient.useMutation('POST /users'),
209
- { wrapper },
210
- );
211
-
212
- // TypeScript should infer this type correctly
213
- type ResponseType = typeof result.current.data;
214
- type ExpectedType =
215
- | { id: string; name: string; email: string }
216
- | undefined;
217
-
218
- // This assertion validates that the types match at compile time
219
- const _typeCheck: ResponseType extends ExpectedType ? true : false = true;
220
- const _typeCheck2: ExpectedType extends ResponseType ? true : false =
221
- true;
222
-
223
- expect(_typeCheck).toBe(true);
224
- expect(_typeCheck2).toBe(true);
225
- });
226
- });
175
+ });
176
+
177
+ describe('Type inference', () => {
178
+ it('should correctly infer response types for GET requests', () => {
179
+ const typedClient = createTypedQueryClient<paths>({
180
+ baseURL: 'https://api.example.com',
181
+ });
182
+
183
+ const { result } = renderHook(() => typedClient.useQuery('GET /users'), {
184
+ wrapper,
185
+ });
186
+
187
+ // TypeScript should infer this type correctly
188
+ type ResponseType = typeof result.current.data;
189
+ type ExpectedType =
190
+ | { users: Array<{ id: string; name: string; email: string }> }
191
+ | undefined;
192
+
193
+ // This assertion validates that the types match at compile time
194
+ const _typeCheck: ResponseType extends ExpectedType ? true : false = true;
195
+ const _typeCheck2: ExpectedType extends ResponseType ? true : false =
196
+ true;
197
+
198
+ expect(_typeCheck).toBe(true);
199
+ expect(_typeCheck2).toBe(true);
200
+ });
201
+
202
+ it('should correctly infer response types for POST requests', () => {
203
+ const typedClient = createTypedQueryClient<paths>({
204
+ baseURL: 'https://api.example.com',
205
+ });
206
+
207
+ const { result } = renderHook(
208
+ () => typedClient.useMutation('POST /users'),
209
+ { wrapper },
210
+ );
211
+
212
+ // TypeScript should infer this type correctly
213
+ type ResponseType = typeof result.current.data;
214
+ type ExpectedType =
215
+ | { id: string; name: string; email: string }
216
+ | undefined;
217
+
218
+ // This assertion validates that the types match at compile time
219
+ const _typeCheck: ResponseType extends ExpectedType ? true : false = true;
220
+ const _typeCheck2: ExpectedType extends ResponseType ? true : false =
221
+ true;
222
+
223
+ expect(_typeCheck).toBe(true);
224
+ expect(_typeCheck2).toBe(true);
225
+ });
226
+ });
227
227
  });