@openapi-qraft/react 1.1.5 → 1.3.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.
Files changed (193) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +142 -46
  3. package/dist/QraftContext.d.ts +14 -5
  4. package/dist/QraftContext.d.ts.map +1 -1
  5. package/dist/QraftContext.js.map +1 -1
  6. package/dist/ServiceOperation.d.ts +112 -3
  7. package/dist/ServiceOperation.d.ts.map +1 -1
  8. package/dist/callbacks/cancelQueries.d.ts +2 -2
  9. package/dist/callbacks/cancelQueries.d.ts.map +1 -1
  10. package/dist/callbacks/cancelQueries.js.map +1 -1
  11. package/dist/callbacks/fetchInfiniteQuery.d.ts +7 -0
  12. package/dist/callbacks/fetchInfiniteQuery.d.ts.map +1 -0
  13. package/dist/callbacks/fetchInfiniteQuery.js +5 -0
  14. package/dist/callbacks/fetchInfiniteQuery.js.map +1 -0
  15. package/dist/callbacks/fetchQuery.d.ts +7 -0
  16. package/dist/callbacks/fetchQuery.d.ts.map +1 -0
  17. package/dist/callbacks/fetchQuery.js +5 -0
  18. package/dist/callbacks/fetchQuery.js.map +1 -0
  19. package/dist/callbacks/getInfiniteQueryData.d.ts +4 -4
  20. package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -1
  21. package/dist/callbacks/getInfiniteQueryData.js +3 -6
  22. package/dist/callbacks/getInfiniteQueryData.js.map +1 -1
  23. package/dist/callbacks/getInfiniteQueryKey.d.ts +2 -2
  24. package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  25. package/dist/callbacks/getInfiniteQueryKey.js.map +1 -1
  26. package/dist/callbacks/getMutationKey.d.ts +2 -2
  27. package/dist/callbacks/getMutationKey.d.ts.map +1 -1
  28. package/dist/callbacks/getMutationKey.js.map +1 -1
  29. package/dist/callbacks/getQueryData.d.ts +3 -3
  30. package/dist/callbacks/getQueryData.d.ts.map +1 -1
  31. package/dist/callbacks/getQueryData.js +3 -4
  32. package/dist/callbacks/getQueryData.js.map +1 -1
  33. package/dist/callbacks/getQueryKey.d.ts +2 -2
  34. package/dist/callbacks/getQueryKey.d.ts.map +1 -1
  35. package/dist/callbacks/getQueryKey.js.map +1 -1
  36. package/dist/callbacks/invalidateQueries.d.ts +2 -2
  37. package/dist/callbacks/invalidateQueries.d.ts.map +1 -1
  38. package/dist/callbacks/invalidateQueries.js.map +1 -1
  39. package/dist/callbacks/isFetching.d.ts +2 -2
  40. package/dist/callbacks/isFetching.d.ts.map +1 -1
  41. package/dist/callbacks/isFetching.js.map +1 -1
  42. package/dist/callbacks/mutationFn.d.ts +2 -2
  43. package/dist/callbacks/mutationFn.d.ts.map +1 -1
  44. package/dist/callbacks/mutationFn.js.map +1 -1
  45. package/dist/callbacks/prefetchInfiniteQuery.d.ts +7 -0
  46. package/dist/callbacks/prefetchInfiniteQuery.d.ts.map +1 -0
  47. package/dist/callbacks/prefetchInfiniteQuery.js +5 -0
  48. package/dist/callbacks/prefetchInfiniteQuery.js.map +1 -0
  49. package/dist/callbacks/prefetchQuery.d.ts +7 -0
  50. package/dist/callbacks/prefetchQuery.d.ts.map +1 -0
  51. package/dist/callbacks/prefetchQuery.js +5 -0
  52. package/dist/callbacks/prefetchQuery.js.map +1 -0
  53. package/dist/callbacks/queryFn.js.map +1 -1
  54. package/dist/callbacks/refetchQueries.d.ts +3 -3
  55. package/dist/callbacks/refetchQueries.d.ts.map +1 -1
  56. package/dist/callbacks/refetchQueries.js.map +1 -1
  57. package/dist/callbacks/resetQueries.d.ts +2 -2
  58. package/dist/callbacks/resetQueries.d.ts.map +1 -1
  59. package/dist/callbacks/resetQueries.js.map +1 -1
  60. package/dist/callbacks/setInfiniteQueryData.d.ts +2 -2
  61. package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -1
  62. package/dist/callbacks/setInfiniteQueryData.js +2 -6
  63. package/dist/callbacks/setInfiniteQueryData.js.map +1 -1
  64. package/dist/callbacks/setQueryData.d.ts +3 -3
  65. package/dist/callbacks/setQueryData.d.ts.map +1 -1
  66. package/dist/callbacks/setQueryData.js +3 -7
  67. package/dist/callbacks/setQueryData.js.map +1 -1
  68. package/dist/callbacks/useInfiniteQuery.d.ts +4 -4
  69. package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -1
  70. package/dist/callbacks/useInfiniteQuery.js +5 -24
  71. package/dist/callbacks/useInfiniteQuery.js.map +1 -1
  72. package/dist/callbacks/useIsFetching.d.ts +2 -2
  73. package/dist/callbacks/useIsFetching.d.ts.map +1 -1
  74. package/dist/callbacks/useIsFetching.js +3 -8
  75. package/dist/callbacks/useIsFetching.js.map +1 -1
  76. package/dist/callbacks/useMutation.d.ts +2 -2
  77. package/dist/callbacks/useMutation.d.ts.map +1 -1
  78. package/dist/callbacks/useMutation.js +11 -8
  79. package/dist/callbacks/useMutation.js.map +1 -1
  80. package/dist/callbacks/useMutationState.d.ts +2 -2
  81. package/dist/callbacks/useMutationState.d.ts.map +1 -1
  82. package/dist/callbacks/useMutationState.js +3 -7
  83. package/dist/callbacks/useMutationState.js.map +1 -1
  84. package/dist/callbacks/useQueries.d.ts +2 -2
  85. package/dist/callbacks/useQueries.d.ts.map +1 -1
  86. package/dist/callbacks/useQueries.js +9 -6
  87. package/dist/callbacks/useQueries.js.map +1 -1
  88. package/dist/callbacks/useQuery.d.ts +4 -4
  89. package/dist/callbacks/useQuery.d.ts.map +1 -1
  90. package/dist/callbacks/useQuery.js +5 -23
  91. package/dist/callbacks/useQuery.js.map +1 -1
  92. package/dist/callbacks/useSuspenseInfiniteQuery.d.ts +4 -4
  93. package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
  94. package/dist/callbacks/useSuspenseInfiniteQuery.js +5 -24
  95. package/dist/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  96. package/dist/callbacks/useSuspenseQueries.d.ts +2 -2
  97. package/dist/callbacks/useSuspenseQueries.d.ts.map +1 -1
  98. package/dist/callbacks/useSuspenseQueries.js +9 -6
  99. package/dist/callbacks/useSuspenseQueries.js.map +1 -1
  100. package/dist/callbacks/useSuspenseQuery.d.ts +4 -4
  101. package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -1
  102. package/dist/callbacks/useSuspenseQuery.js +5 -23
  103. package/dist/callbacks/useSuspenseQuery.js.map +1 -1
  104. package/dist/index.d.ts +3 -7
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +1 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/lib/callQueryClientFetchMethod.d.ts +20 -0
  109. package/dist/lib/callQueryClientFetchMethod.d.ts.map +1 -0
  110. package/dist/lib/callQueryClientFetchMethod.js +48 -0
  111. package/dist/lib/callQueryClientFetchMethod.js.map +1 -0
  112. package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts +2 -2
  113. package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
  114. package/dist/lib/callQueryClientMethodWithQueryFilters.js +5 -13
  115. package/dist/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
  116. package/dist/lib/callQueryClientMethodWithQueryKey.d.ts +11 -0
  117. package/dist/lib/callQueryClientMethodWithQueryKey.d.ts.map +1 -0
  118. package/dist/lib/callQueryClientMethodWithQueryKey.js +22 -0
  119. package/dist/lib/callQueryClientMethodWithQueryKey.js.map +1 -0
  120. package/dist/lib/composeInfiniteQueryKey.d.ts +3 -3
  121. package/dist/lib/composeInfiniteQueryKey.d.ts.map +1 -1
  122. package/dist/lib/composeMutationKey.d.ts +4 -4
  123. package/dist/lib/composeMutationKey.d.ts.map +1 -1
  124. package/dist/lib/composeMutationKey.js.map +1 -1
  125. package/dist/lib/composeQueryFilters.d.ts +3 -3
  126. package/dist/lib/composeQueryFilters.d.ts.map +1 -1
  127. package/dist/lib/composeQueryFilters.js.map +1 -1
  128. package/dist/lib/composeQueryKey.d.ts +3 -3
  129. package/dist/lib/composeQueryKey.d.ts.map +1 -1
  130. package/dist/lib/requestFn.d.ts +75 -0
  131. package/dist/lib/requestFn.d.ts.map +1 -0
  132. package/dist/lib/{request.js → requestFn.js} +40 -34
  133. package/dist/lib/requestFn.js.map +1 -0
  134. package/dist/lib/useComposeUseQueryOptions.d.ts +16 -0
  135. package/dist/lib/useComposeUseQueryOptions.d.ts.map +1 -0
  136. package/dist/lib/useComposeUseQueryOptions.js +40 -0
  137. package/dist/lib/useComposeUseQueryOptions.js.map +1 -0
  138. package/dist/lib/useQueryClient.d.ts +9 -0
  139. package/dist/lib/useQueryClient.d.ts.map +1 -0
  140. package/dist/lib/useQueryClient.js +15 -0
  141. package/dist/lib/useQueryClient.js.map +1 -0
  142. package/dist/qraftAPIClient.d.ts +7 -7
  143. package/dist/qraftAPIClient.d.ts.map +1 -1
  144. package/package.json +2 -2
  145. package/src/QraftContext.ts +22 -10
  146. package/src/ServiceOperation.ts +261 -4
  147. package/src/callbacks/cancelQueries.ts +3 -3
  148. package/src/callbacks/fetchInfiniteQuery.ts +22 -0
  149. package/src/callbacks/fetchQuery.ts +20 -0
  150. package/src/callbacks/getInfiniteQueryData.ts +13 -16
  151. package/src/callbacks/getInfiniteQueryKey.ts +3 -3
  152. package/src/callbacks/getMutationKey.ts +3 -3
  153. package/src/callbacks/getQueryData.ts +12 -10
  154. package/src/callbacks/getQueryKey.ts +3 -3
  155. package/src/callbacks/invalidateQueries.ts +3 -3
  156. package/src/callbacks/isFetching.ts +3 -3
  157. package/src/callbacks/mutationFn.ts +3 -3
  158. package/src/callbacks/prefetchInfiniteQuery.ts +22 -0
  159. package/src/callbacks/prefetchQuery.ts +22 -0
  160. package/src/callbacks/queryFn.ts +2 -2
  161. package/src/callbacks/refetchQueries.ts +4 -4
  162. package/src/callbacks/resetQueries.ts +3 -3
  163. package/src/callbacks/setInfiniteQueryData.ts +11 -18
  164. package/src/callbacks/setQueryData.ts +16 -17
  165. package/src/callbacks/useInfiniteQuery.ts +8 -46
  166. package/src/callbacks/useIsFetching.ts +6 -20
  167. package/src/callbacks/useMutation.ts +13 -12
  168. package/src/callbacks/useMutationState.ts +5 -11
  169. package/src/callbacks/useQueries.ts +11 -10
  170. package/src/callbacks/useQuery.ts +8 -39
  171. package/src/callbacks/useSuspenseInfiniteQuery.ts +8 -42
  172. package/src/callbacks/useSuspenseQueries.ts +11 -10
  173. package/src/callbacks/useSuspenseQuery.ts +8 -43
  174. package/src/index.ts +12 -7
  175. package/src/lib/callQueryClientFetchMethod.ts +90 -0
  176. package/src/lib/callQueryClientMethodWithQueryFilters.ts +10 -23
  177. package/src/lib/callQueryClientMethodWithQueryKey.ts +46 -0
  178. package/src/lib/composeInfiniteQueryKey.ts +3 -3
  179. package/src/lib/composeMutationKey.ts +5 -8
  180. package/src/lib/composeQueryFilters.ts +2 -2
  181. package/src/lib/composeQueryKey.ts +3 -3
  182. package/src/lib/{request.ts → requestFn.ts} +143 -79
  183. package/src/lib/useComposeUseQueryOptions.ts +64 -0
  184. package/src/lib/useQueryClient.ts +26 -0
  185. package/src/qraftAPIClient.ts +8 -8
  186. package/dist/RequestClient.d.ts +0 -19
  187. package/dist/RequestClient.d.ts.map +0 -1
  188. package/dist/RequestClient.js +0 -2
  189. package/dist/RequestClient.js.map +0 -1
  190. package/dist/lib/request.d.ts +0 -32
  191. package/dist/lib/request.d.ts.map +0 -1
  192. package/dist/lib/request.js.map +0 -1
  193. package/src/RequestClient.ts +0 -32
@@ -4,23 +4,15 @@ import { composeQueryFilters } from './composeQueryFilters.js';
4
4
  * and automatically composes the `QueryKey` based on the schema and parameters.
5
5
  */
6
6
  export function callQueryClientMethodWithQueryFilters(queryFilterMethod, schema, args) {
7
- const queryClient = (args.length === 1
8
- ? args[0]
9
- : args.length === 2
10
- ? args[1]
11
- : args.length === 3
12
- ? args[2]
13
- : undefined);
14
- const filters = composeQueryFilters(schema, args.length === 1 ? undefined : args[0]);
15
- const options = args.length === 3 ? args[1] : undefined;
7
+ const filters = args[0];
8
+ const queryClient = args[args.length - 1];
16
9
  if (!queryClient)
17
10
  throw new Error('queryClient is required');
18
11
  if (!queryClient[queryFilterMethod])
19
12
  throw new Error(`queryClient is invalid, ${queryFilterMethod} method does not exist`);
20
- if (options)
21
- // @ts-expect-error
22
- return queryClient[queryFilterMethod](filters, options);
23
13
  // @ts-expect-error
24
- return queryClient[queryFilterMethod](filters);
14
+ return queryClient[queryFilterMethod](composeQueryFilters(schema, filters),
15
+ // @ts-expect-error
16
+ ...args.slice(1, -1));
25
17
  }
26
18
  //# sourceMappingURL=callQueryClientMethodWithQueryFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callQueryClientMethodWithQueryFilters.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAGnD,iBAA2B,EAC3B,MAA2B,EAC3B,IAA4E;IAE5E,MAAM,WAAW,GAAG,CAClB,IAAI,CAAC,MAAM,KAAK,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACT,CAAC,CAAC,SAAS,CACS,CAAC;IAE7B,MAAM,OAAO,GAAG,mBAAmB,CACjC,MAAM,EACN,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExD,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,IAAI,OAAO;QACT,mBAAmB;QACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1D,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"callQueryClientMethodWithQueryFilters.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAGnD,iBAA2B,EAC3B,MAAuB,EACvB,IAA4E;IAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA4B,CAAC;IAErE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CACnC,mBAAmB,CAAC,MAAM,EAAE,OAAgB,CAAC;IAC7C,mBAAmB;IACnB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { QueryClient } from '@tanstack/query-core';
2
+ import type { OperationSchema } from './requestFn.js';
3
+ /**
4
+ * Calls a query client method with parameters and options,
5
+ * and automatically composes the `QueryKey` based on the schema and parameters.
6
+ */
7
+ export declare function callQueryClientMethodWithQueryKey<QFMethod extends QueryKeyMethods>(queryFilterMethod: QFMethod, schema: OperationSchema, infinite: boolean, args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]): ReturnType<(typeof QueryClient.prototype)[QFMethod]>;
8
+ type QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> = QFMethod;
9
+ type QueryKeyMethods = QueryKeyMethod<'setQueryData'> | QueryKeyMethod<'getQueryData'> | QueryKeyMethod<'getQueryState'> | QueryKeyMethod<'setQueryDefaults'> | QueryKeyMethod<'getQueryDefaults'>;
10
+ export {};
11
+ //# sourceMappingURL=callQueryClientMethodWithQueryKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callQueryClientMethodWithQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,SAAS,eAAe,EAEhC,iBAAiB,EAAE,QAAQ,EAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAC3E,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAkBtD;AAED,KAAK,cAAc,CAAC,QAAQ,SAAS,MAAM,OAAO,WAAW,CAAC,SAAS,IACrE,QAAQ,CAAC;AAEX,KAAK,eAAe,GAChB,cAAc,CAAC,cAAc,CAAC,GAC9B,cAAc,CAAC,cAAc,CAAC,GAC9B,cAAc,CAAC,eAAe,CAAC,GAC/B,cAAc,CAAC,kBAAkB,CAAC,GAClC,cAAc,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
2
+ import { composeQueryKey } from './composeQueryKey.js';
3
+ /**
4
+ * Calls a query client method with parameters and options,
5
+ * and automatically composes the `QueryKey` based on the schema and parameters.
6
+ */
7
+ export function callQueryClientMethodWithQueryKey(queryFilterMethod, schema, infinite, args) {
8
+ const parameters = args[0];
9
+ const queryClient = args[args.length - 1];
10
+ if (!queryClient)
11
+ throw new Error('queryClient is required');
12
+ if (!queryClient[queryFilterMethod])
13
+ throw new Error(`queryClient is invalid, ${queryFilterMethod} method does not exist`);
14
+ const queryKey = Array.isArray(parameters)
15
+ ? parameters
16
+ : infinite
17
+ ? composeInfiniteQueryKey(schema, parameters)
18
+ : composeQueryKey(schema, parameters);
19
+ // @ts-expect-error
20
+ return queryClient[queryFilterMethod](queryKey, ...args.slice(1, -1));
21
+ }
22
+ //# sourceMappingURL=callQueryClientMethodWithQueryKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callQueryClientMethodWithQueryKey.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAG/C,iBAA2B,EAC3B,MAAuB,EACvB,QAAiB,EACjB,IAA4E;IAE5E,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA4B,CAAC;IAErE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { RequestClientSchema } from '../RequestClient.js';
2
- import { ServiceOperationInfiniteQueryKey } from '../ServiceOperation.js';
3
- export declare function composeInfiniteQueryKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationInfiniteQueryKey<TSchema, TParams>;
1
+ import type { ServiceOperationInfiniteQueryKey } from '../ServiceOperation.js';
2
+ import type { OperationSchema } from './requestFn.js';
3
+ export declare function composeInfiniteQueryKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationInfiniteQueryKey<TSchema, TParams>;
4
4
  //# sourceMappingURL=composeInfiniteQueryKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,mBAAmB,EACnC,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAEpD"}
1
+ {"version":3,"file":"composeInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,eAAe,EAC/B,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAEpD"}
@@ -1,10 +1,10 @@
1
- import type { RequestClientSchema } from '../RequestClient.js';
2
- import { ServiceOperationMutationKey } from '../ServiceOperation.js';
1
+ import type { ServiceOperationMutationKey } from '../ServiceOperation.js';
2
+ import type { OperationSchema } from './requestFn.js';
3
3
  /**
4
4
  * Omit `body` or `requestBody` from mutation parameters if exists
5
5
  * and return the rest of the parameters
6
6
  */
7
- export declare function composeMutationKey<TSchema extends RequestClientSchema, TParams = undefined>(schema: TSchema, parameters: undefined): ServiceOperationMutationKey<TSchema, undefined>;
8
- export declare function composeMutationKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams): ServiceOperationMutationKey<TSchema, TParams>;
7
+ export declare function composeMutationKey<TSchema extends OperationSchema, TParams = undefined>(schema: TSchema, parameters: undefined): ServiceOperationMutationKey<TSchema, undefined>;
8
+ export declare function composeMutationKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams): ServiceOperationMutationKey<TSchema, TParams>;
9
9
  export declare function omitMutationPayload<T>(params: T): {};
10
10
  //# sourceMappingURL=composeMutationKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeMutationKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,mBAAmB,EACnC,OAAO,GAAG,SAAS,EAEnB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,GACpB,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnD,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,mBAAmB,EACnC,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAClB,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAgBjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAa/C"}
1
+ {"version":3,"file":"composeMutationKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,eAAe,EAC/B,OAAO,GAAG,SAAS,EAEnB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,GACpB,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnD,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,EAAE,OAAO,EACzE,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAClB,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAgBjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAa/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"composeMutationKey.js","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,kBAAkB,CAGhC,MAAe,EAAE,UAA+B;IAChD,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC;YACE;gBACE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;YACD,mBAAmB,CAAC,UAAU,CAAC;SAChC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,MAAS;IAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAG5C,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"composeMutationKey.js","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,kBAAkB,CAGhC,MAAe,EAAE,UAA+B;IAChD,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC;YACE;gBACE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;YACD,mBAAmB,CAAC,UAAU,CAAC;SAChC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,MAAS;IAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAG5C,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC"}
@@ -1,11 +1,11 @@
1
- import type { RequestClientSchema } from '../RequestClient.js';
1
+ import type { OperationSchema } from './requestFn.js';
2
2
  /**
3
3
  * Replaces the `parameters` field in the filters with a `queryKey` field based on the schema.
4
4
  * If no filters are provided, a `queryKey` will be composed schema's base query key.
5
5
  * @param schema
6
6
  * @param filters
7
7
  */
8
- export declare function composeQueryFilters<Filters extends object>(schema: RequestClientSchema, filters: Filters | undefined): (Filters & Record<"queryKey", unknown>) | Omit<Filters & Record<"parameters", unknown>, "parameters"> | {
9
- queryKey: import("../ServiceOperation.js").ServiceOperationQueryKey<RequestClientSchema, undefined>;
8
+ export declare function composeQueryFilters<Filters extends object>(schema: OperationSchema, filters: Filters | undefined): (Filters & Record<"queryKey", unknown>) | Omit<Filters & Record<"parameters", unknown>, "parameters"> | {
9
+ queryKey: import("../ServiceOperation.js").ServiceOperationQueryKey<OperationSchema, undefined>;
10
10
  };
11
11
  //# sourceMappingURL=composeQueryFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeQueryFilters.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GAAG,SAAS;;EAgC7B"}
1
+ {"version":3,"file":"composeQueryFilters.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GAAG,SAAS;;EAgC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"composeQueryFilters.js","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA2B,EAC3B,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;YACtC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;SAC9C,CAAC,CAAC;QAEH,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"composeQueryFilters.js","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAuB,EACvB,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;YACtC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;SAC9C,CAAC,CAAC;QAEH,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { RequestClientSchema } from '../RequestClient.js';
2
- import { ServiceOperationQueryKey } from '../ServiceOperation.js';
3
- export declare function composeQueryKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationQueryKey<TSchema, TParams>;
1
+ import type { ServiceOperationQueryKey } from '../ServiceOperation.js';
2
+ import type { OperationSchema } from './requestFn.js';
3
+ export declare function composeQueryKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationQueryKey<TSchema, TParams>;
4
4
  //# sourceMappingURL=composeQueryKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,eAAe,CAAC,OAAO,SAAS,mBAAmB,EAAE,OAAO,EAC1E,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
1
+ {"version":3,"file":"composeQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,eAAe,CAAC,OAAO,SAAS,eAAe,EAAE,OAAO,EACtE,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @throws {error: object|string, response: Response} if the request fails
3
+ */
4
+ export declare function requestFn<T>(schema: OperationSchema, requestInfo: RequestFnInfo, options?: RequestFnOptions): Promise<T>;
5
+ /**
6
+ * @throws {error: object|string, response: Response} if the request fails
7
+ */
8
+ export declare function baseRequestFn<T>(requestSchema: OperationSchema, requestInfo: RequestFnInfo, options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>): Promise<T>;
9
+ export declare function urlSerializer(schema: OperationSchema, info: RequestFnPayload): string;
10
+ export declare function bodySerializer(schema: OperationSchema, info: RequestFnPayload): string | Blob | FormData | undefined;
11
+ export type HeadersOptions = HeadersInit | Record<string, string | number | boolean | null | undefined>;
12
+ export interface OperationSchema {
13
+ /**
14
+ * Operation path
15
+ * @example /user/{id}
16
+ */
17
+ readonly url: string;
18
+ /**
19
+ * Operation method
20
+ */
21
+ readonly method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
22
+ /**
23
+ * Media type of the request body
24
+ * @example application/json
25
+ */
26
+ readonly mediaType?: string;
27
+ }
28
+ export interface RequestFnPayload {
29
+ /**
30
+ * Base URL to use for the request
31
+ */
32
+ baseUrl: string | undefined;
33
+ /**
34
+ * OpenAPI parameters
35
+ * @example
36
+ * ```ts
37
+ * { path: {id: 1}, query: {search: 'hello'} }
38
+ * ```
39
+ */
40
+ readonly parameters?: {
41
+ readonly path?: Record<string, any>;
42
+ readonly cookie?: Record<string, any>;
43
+ readonly header?: Record<string, any>;
44
+ readonly query?: Record<string, any>;
45
+ };
46
+ /**
47
+ * Request body
48
+ * @example { name: 'John' }
49
+ */
50
+ readonly body?: BodyInit | Record<string, unknown> | null;
51
+ /**
52
+ * Tanstack Query Meta
53
+ */
54
+ meta?: Record<string, unknown>;
55
+ /** An AbortSignal to set request's signal. */
56
+ signal?: AbortSignal | null;
57
+ }
58
+ interface RequestFnInfo extends RequestFnPayload, Omit<RequestInit, 'headers' | 'method' | 'body' | 'signal'> {
59
+ /**
60
+ * Request headers
61
+ * @example { 'X-Auth': '123' }
62
+ */
63
+ readonly headers?: HeadersOptions;
64
+ }
65
+ export interface RequestFnOptions {
66
+ urlSerializer?: typeof urlSerializer;
67
+ bodySerializer?: typeof bodySerializer;
68
+ fetch?: typeof fetch;
69
+ }
70
+ export type RequestFn<T> = typeof requestFn<T>;
71
+ type WithRequired<T, K extends keyof T> = T & {
72
+ [_ in K]: {};
73
+ };
74
+ export {};
75
+ //# sourceMappingURL=requestFn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestFn.d.ts","sourceRoot":"","sources":["../../src/lib/requestFn.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,aAAa,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,eAAe,GAAG,gBAAgB,CAAC,GAC1E,OAAO,CAAC,CAAC,CAAC,CAoCZ;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAkBR;AA6DD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,wCAwBvB;AA+ED,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,MAAM,EACX,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IAEZ;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,aACR,SAAQ,gBAAgB,EACtB,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AAE/C,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAC3C,CAAC,IAAI,CAAC,GAAG,EAAE;CACb,CAAC"}
@@ -1,24 +1,31 @@
1
1
  /**
2
2
  * @throws {error: object|string, response: Response} if the request fails
3
3
  */
4
- export async function request(config, requestInit, { urlSerializer: urlSerializerFunc, bodySerializer: bodySerializerFunc, }) {
5
- const { method, url, parameters, mediaType, headers, body, ...requestInitRest } = requestInit;
6
- const requestBody = bodySerializerFunc({
7
- method,
8
- mediaType,
9
- body,
4
+ export async function requestFn(schema, requestInfo, options) {
5
+ return baseRequestFn(schema, requestInfo, {
6
+ urlSerializer,
7
+ bodySerializer,
8
+ ...options,
10
9
  });
11
- const response = await fetch(urlSerializerFunc(config, { url, parameters }), {
12
- method: method.toUpperCase(),
10
+ }
11
+ /**
12
+ * @throws {error: object|string, response: Response} if the request fails
13
+ */
14
+ export async function baseRequestFn(requestSchema, requestInfo, options) {
15
+ const { parameters, headers, body, ...requestInfoRest } = requestInfo;
16
+ const requestBody = options.bodySerializer(requestSchema, requestInfo);
17
+ const baseFetch = options.fetch ?? fetch;
18
+ const response = await baseFetch(options.urlSerializer(requestSchema, requestInfo), {
19
+ method: requestSchema.method.toUpperCase(),
13
20
  body: requestBody,
14
21
  headers: mergeHeaders({
15
22
  Accept: 'application/json',
16
- 'Content-Type': mediaType ?? getBodyContentType(body),
23
+ 'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
17
24
  }, headers, parameters?.header, requestBody instanceof FormData
18
25
  ? // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
19
26
  { 'Content-Type': null }
20
27
  : undefined),
21
- ...requestInitRest,
28
+ ...requestInfoRest,
22
29
  });
23
30
  // clone response to allow multiple reads
24
31
  const clonedResponse = response.clone();
@@ -27,17 +34,18 @@ export async function request(config, requestInit, { urlSerializer: urlSerialize
27
34
  }
28
35
  return (await getResponseBody(clonedResponse));
29
36
  }
30
- export function urlSerializer(config, { url, parameters }) {
31
- const path = url.replace(/{(.*?)}/g, (substring, group) => {
32
- if (parameters?.path?.hasOwnProperty(group)) {
33
- return encodeURI(String(parameters?.path[group]));
37
+ export function urlSerializer(schema, info) {
38
+ const path = schema.url.replace(/{(.*?)}/g, (substring, group) => {
39
+ if (info.parameters?.path?.hasOwnProperty(group)) {
40
+ return encodeURI(String(info.parameters?.path[group]));
34
41
  }
35
42
  return substring;
36
43
  });
37
- if (parameters?.query) {
38
- return `${config.baseUrl}${path}${getQueryString(parameters.query)}`;
44
+ const baseUrl = info.baseUrl ?? '';
45
+ if (info.parameters?.query) {
46
+ return `${baseUrl}${path}${getQueryString(info.parameters.query)}`;
39
47
  }
40
- return `${config.baseUrl}${path}`;
48
+ return `${baseUrl}${path}`;
41
49
  }
42
50
  function getQueryString(params) {
43
51
  const qs = [];
@@ -89,22 +97,22 @@ function mergeHeaders(...allHeaders) {
89
97
  }
90
98
  return headers;
91
99
  }
92
- export function bodySerializer(options) {
93
- if (options.body === undefined)
100
+ export function bodySerializer(schema, info) {
101
+ if (info.body === undefined)
94
102
  return;
95
- if (options.method === 'get' ||
96
- options.method === 'head' ||
97
- options.method === 'options')
103
+ if (schema.method === 'get' ||
104
+ schema.method === 'head' ||
105
+ schema.method === 'options')
98
106
  return;
99
- if (options.mediaType?.includes('/form-data'))
100
- return getRequestBodyFormData(options);
101
- if (!options.mediaType?.includes('/json') &&
102
- (typeof options.body === 'string' ||
103
- options.body instanceof Blob ||
104
- options.body instanceof FormData)) {
105
- return options.body;
107
+ if (schema.mediaType?.includes('/form-data'))
108
+ return getRequestBodyFormData(info);
109
+ if (!schema.mediaType?.includes('/json') &&
110
+ (typeof info.body === 'string' ||
111
+ info.body instanceof Blob ||
112
+ info.body instanceof FormData)) {
113
+ return info.body;
106
114
  }
107
- return JSON.stringify(options.body);
115
+ return JSON.stringify(info.body);
108
116
  }
109
117
  function getRequestBodyFormData({ body, }) {
110
118
  if (body instanceof FormData)
@@ -165,9 +173,7 @@ async function getResponseBody(response) {
165
173
  return response.json();
166
174
  const errorFallbackResponse = response.clone(); // clone to allow multiple reads
167
175
  return response.json().catch(() => {
168
- if (typeof process !== 'undefined' &&
169
- typeof process.env !== 'undefined' &&
170
- process.env.NODE_ENV === 'development') {
176
+ if (process.env.NODE_ENV === 'development') {
171
177
  console.warn('Failed to parse response body as JSON. Falling back to .text()');
172
178
  }
173
179
  // falling back to .text() when necessary for error messages
@@ -176,4 +182,4 @@ async function getResponseBody(response) {
176
182
  }
177
183
  return response.text();
178
184
  }
179
- //# sourceMappingURL=request.js.map
185
+ //# sourceMappingURL=requestFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestFn.js","sourceRoot":"","sources":["../../src/lib/requestFn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { QueryClient } from '@tanstack/query-core';
2
+ import type { UseQueryOptions } from '@tanstack/react-query';
3
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
4
+ import type { OperationSchema } from './requestFn.js';
5
+ /**
6
+ * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
7
+ * @internal
8
+ */
9
+ export declare function useComposeUseQueryOptions(qraftOptions: QraftClientOptions | undefined, schema: OperationSchema, args: UseQueryOptionsArgs, infinite: boolean): never;
10
+ type UseQueryOptionsArgs = [
11
+ parameters: unknown,
12
+ options?: UseQueryOptions,
13
+ queryClient?: QueryClient
14
+ ];
15
+ export {};
16
+ //# sourceMappingURL=useComposeUseQueryOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComposeUseQueryOptions.d.ts","sourceRoot":"","sources":["../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,OAAO,GAChB,KAAK,CAgCP;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,OAAO;IACnB,OAAO,CAAC,EAAE,eAAe;IACzB,WAAW,CAAC,EAAE,WAAW;CAC1B,CAAC"}
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ import { useContext } from 'react';
3
+ import { QraftContext } from '../QraftContext.js';
4
+ import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
5
+ import { composeQueryKey } from './composeQueryKey.js';
6
+ import { shelfMerge } from './shelfMerge.js';
7
+ import { useQueryClient } from './useQueryClient.js';
8
+ /**
9
+ * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
10
+ * @internal
11
+ */
12
+ export function useComposeUseQueryOptions(qraftOptions, schema, args, infinite) {
13
+ const [parameters, options, queryClient] = args;
14
+ const contextValue = useContext(qraftOptions?.context ?? QraftContext);
15
+ if (!contextValue?.requestFn)
16
+ throw new Error(`QraftContext.requestFn not found`);
17
+ const queryFn = options?.queryFn ??
18
+ // @ts-expect-error
19
+ function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
20
+ return contextValue.requestFn(schema, {
21
+ // @ts-expect-error
22
+ parameters: infinite
23
+ ? shelfMerge(2, queryParams, pageParam)
24
+ : queryParams,
25
+ baseUrl: contextValue.baseUrl,
26
+ signal,
27
+ meta,
28
+ });
29
+ };
30
+ const queryKey = Array.isArray(parameters)
31
+ ? parameters
32
+ : infinite
33
+ ? composeInfiniteQueryKey(schema, parameters)
34
+ : composeQueryKey(schema, parameters);
35
+ return [
36
+ { ...options, queryFn, queryKey },
37
+ useQueryClient(qraftOptions, queryClient),
38
+ ];
39
+ }
40
+ //# sourceMappingURL=useComposeUseQueryOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComposeUseQueryOptions.js","sourceRoot":"","sources":["../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA4C,EAC5C,MAAuB,EACvB,IAAyB,EACzB,QAAiB;IAEjB,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAEhD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,EAAE,SAAS;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEtD,MAAM,OAAO,GACX,OAAO,EAAE,OAAO;QAChB,mBAAmB;QACnB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9D,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;gBACpC,mBAAmB;gBACnB,UAAU,EAAE,QAAQ;oBAClB,CAAC,CAAE,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAW;oBAClD,CAAC,CAAC,WAAW;gBACf,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,MAAM;gBACN,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC,CAAE,UAAiE;QACpE,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO;QACL,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;KACjC,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
3
+ /**
4
+ * Get the QueryClient from the QraftContext or the provided QueryClient argument.
5
+ * @param qraftOptions if `queryClient` is not provided, will be taken from context
6
+ * @param queryClient If not provided, will be taken this instance
7
+ */
8
+ export declare function useQueryClient(qraftOptions: QraftClientOptions | undefined, queryClient: QueryClient | undefined): QueryClient;
9
+ //# sourceMappingURL=useQueryClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQueryClient.d.ts","sourceRoot":"","sources":["../../src/lib/useQueryClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,WAAW,EAAE,WAAW,GAAG,SAAS,eAMrC"}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { useContext } from 'react';
3
+ import { useQueryClient as useQueryClientTanstack, } from '@tanstack/react-query';
4
+ import { QraftContext } from '../QraftContext.js';
5
+ /**
6
+ * Get the QueryClient from the QraftContext or the provided QueryClient argument.
7
+ * @param qraftOptions if `queryClient` is not provided, will be taken from context
8
+ * @param queryClient If not provided, will be taken this instance
9
+ */
10
+ export function useQueryClient(qraftOptions, queryClient) {
11
+ const queryClientByContext = useContext(qraftOptions?.context ?? QraftContext)
12
+ ?.queryClient;
13
+ return useQueryClientTanstack(queryClient ?? queryClientByContext);
14
+ }
15
+ //# sourceMappingURL=useQueryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQueryClient.js","sourceRoot":"","sources":["../../src/lib/useQueryClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAEL,cAAc,IAAI,sBAAsB,GACzC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,YAA4C,EAC5C,WAAoC;IAEpC,MAAM,oBAAoB,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QAC5E,EAAE,WAAW,CAAC;IAEhB,OAAO,sBAAsB,CAAC,WAAW,IAAI,oBAAoB,CAAC,CAAC;AACrE,CAAC"}
@@ -1,14 +1,14 @@
1
- import { Context } from 'react';
2
- import { QraftContextValue } from './QraftContext.js';
3
- import type { RequestClientSchema } from './RequestClient.js';
4
- export type QraftClientOptions = {
1
+ import type { Context } from 'react';
2
+ import type { OperationSchema } from './lib/requestFn.js';
3
+ import type { QraftContextValue } from './QraftContext.js';
4
+ export interface QraftClientOptions {
5
5
  context?: Context<QraftContextValue>;
6
- };
6
+ }
7
7
  export declare const qraftAPIClient: <Services extends ServicesOutput<Services>, Callbacks extends ServicesCallbacks>(services: ServicesDeclaration<Services>, callbacks: Callbacks, options?: QraftClientOptions) => ServicesCallbacksFilter<Services, keyof Callbacks>;
8
8
  type ServicesOutput<Services> = {
9
9
  [service in keyof Services]: {
10
10
  [method in keyof Services[service]]: {
11
- schema: RequestClientSchema;
11
+ schema: OperationSchema;
12
12
  };
13
13
  };
14
14
  };
@@ -23,7 +23,7 @@ type ServicesCallbacks = Record<string, (...rest: any[]) => any>;
23
23
  type ServicesCallbacksFilter<Services extends ServicesOutput<Services>, Callbacks> = Services extends {
24
24
  [serviceName in keyof Services]: {
25
25
  [method in keyof Services[serviceName]]: {
26
- schema: RequestClientSchema;
26
+ schema: OperationSchema;
27
27
  };
28
28
  };
29
29
  } ? {
@@ -1 +1 @@
1
- {"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAgC7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACrE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACzE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAgC7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,eAAe,CAAA;SAAE;KACjE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,eAAe,CAAA;SAAE;KACrE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-qraft/react",
3
- "version": "1.1.5",
3
+ "version": "1.3.2",
4
4
  "description": "API client for React, providing type-safe requests and dynamic Tanstack Query React Hooks via a modular, Proxy-based architecture.",
5
5
  "scripts": {
6
6
  "build": "rimraf dist/ && tsc --project tsconfig.build.json",
@@ -14,7 +14,7 @@
14
14
  "type": "module",
15
15
  "sideEffects": false,
16
16
  "devDependencies": {
17
- "@openapi-qraft/cli": "~1.1.5",
17
+ "@openapi-qraft/cli": "~1.3.2",
18
18
  "@openapi-qraft/openapi-typescript": "^1.0.0",
19
19
  "@tanstack/react-query": "^5.17.3",
20
20
  "@testing-library/jest-dom": "^5.17.0",
@@ -4,15 +4,27 @@ import { createContext } from 'react';
4
4
 
5
5
  import type { QueryClient } from '@tanstack/react-query';
6
6
 
7
- import type { RequestClient } from './RequestClient.js';
8
-
9
- export type QraftContextValue =
10
- | {
11
- /** The request client to use for making requests. Will be invoked with every request. */
12
- requestClient: RequestClient;
13
- /** The QueryClient to use in Hooks */
14
- queryClient?: QueryClient;
15
- }
16
- | undefined;
7
+ import type { OperationSchema, RequestFnPayload } from './lib/requestFn.js';
8
+
9
+ interface QraftContextValueBase {
10
+ /**
11
+ * The base URL to use for all requests.
12
+ * @example 'https://api.example.com'
13
+ */
14
+ baseUrl?: string;
15
+
16
+ /**
17
+ * The `requestFn` will be invoked with every request.
18
+ */
19
+ requestFn<T>(
20
+ requestSchema: OperationSchema,
21
+ requestInfo: RequestFnPayload
22
+ ): Promise<T>;
23
+
24
+ /** The QueryClient to use in Hooks */
25
+ queryClient?: QueryClient;
26
+ }
27
+
28
+ export type QraftContextValue = QraftContextValueBase | undefined;
17
29
 
18
30
  export const QraftContext = createContext<QraftContextValue>(undefined);