@openapi-qraft/react 1.14.0-beta.5 → 2.0.0-next.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 (419) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/cjs/Unstable_QraftSecureRequestFn.cjs.map +1 -1
  3. package/dist/cjs/callbacks/cancelQueries.cjs +1 -1
  4. package/dist/cjs/callbacks/cancelQueries.cjs.map +1 -1
  5. package/dist/cjs/callbacks/fetchInfiniteQuery.cjs +2 -2
  6. package/dist/cjs/callbacks/fetchInfiniteQuery.cjs.map +1 -1
  7. package/dist/cjs/callbacks/fetchQuery.cjs +2 -2
  8. package/dist/cjs/callbacks/fetchQuery.cjs.map +1 -1
  9. package/dist/cjs/callbacks/getInfiniteQueryData.cjs +3 -2
  10. package/dist/cjs/callbacks/getInfiniteQueryData.cjs.map +1 -1
  11. package/dist/cjs/callbacks/getInfiniteQueryKey.cjs +1 -1
  12. package/dist/cjs/callbacks/getInfiniteQueryKey.cjs.map +1 -1
  13. package/dist/cjs/callbacks/getInfiniteQueryState.cjs +3 -2
  14. package/dist/cjs/callbacks/getInfiniteQueryState.cjs.map +1 -1
  15. package/dist/cjs/callbacks/getMutationKey.cjs +1 -1
  16. package/dist/cjs/callbacks/getMutationKey.cjs.map +1 -1
  17. package/dist/cjs/callbacks/getQueriesData.cjs +2 -2
  18. package/dist/cjs/callbacks/getQueriesData.cjs.map +1 -1
  19. package/dist/cjs/callbacks/getQueryData.cjs +3 -2
  20. package/dist/cjs/callbacks/getQueryData.cjs.map +1 -1
  21. package/dist/cjs/callbacks/getQueryKey.cjs +1 -1
  22. package/dist/cjs/callbacks/getQueryKey.cjs.map +1 -1
  23. package/dist/cjs/callbacks/getQueryState.cjs +3 -2
  24. package/dist/cjs/callbacks/getQueryState.cjs.map +1 -1
  25. package/dist/cjs/callbacks/index.cjs +0 -4
  26. package/dist/cjs/callbacks/index.cjs.map +1 -1
  27. package/dist/cjs/callbacks/invalidateQueries.cjs +1 -1
  28. package/dist/cjs/callbacks/invalidateQueries.cjs.map +1 -1
  29. package/dist/cjs/callbacks/isFetching.cjs +1 -1
  30. package/dist/cjs/callbacks/isFetching.cjs.map +1 -1
  31. package/dist/cjs/callbacks/isMutating.cjs +2 -2
  32. package/dist/cjs/callbacks/isMutating.cjs.map +1 -1
  33. package/dist/cjs/callbacks/operationInvokeFn.cjs +7 -5
  34. package/dist/cjs/callbacks/operationInvokeFn.cjs.map +1 -1
  35. package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs +2 -2
  36. package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs.map +1 -1
  37. package/dist/cjs/callbacks/prefetchQuery.cjs +2 -2
  38. package/dist/cjs/callbacks/prefetchQuery.cjs.map +1 -1
  39. package/dist/cjs/callbacks/refetchQueries.cjs +1 -1
  40. package/dist/cjs/callbacks/refetchQueries.cjs.map +1 -1
  41. package/dist/cjs/callbacks/removeQueries.cjs +2 -2
  42. package/dist/cjs/callbacks/removeQueries.cjs.map +1 -1
  43. package/dist/cjs/callbacks/resetQueries.cjs +1 -1
  44. package/dist/cjs/callbacks/resetQueries.cjs.map +1 -1
  45. package/dist/cjs/callbacks/setInfiniteQueryData.cjs +2 -1
  46. package/dist/cjs/callbacks/setInfiniteQueryData.cjs.map +1 -1
  47. package/dist/cjs/callbacks/setQueriesData.cjs +2 -2
  48. package/dist/cjs/callbacks/setQueriesData.cjs.map +1 -1
  49. package/dist/cjs/callbacks/setQueryData.cjs +3 -2
  50. package/dist/cjs/callbacks/setQueryData.cjs.map +1 -1
  51. package/dist/cjs/callbacks/useInfiniteQuery.cjs.map +1 -1
  52. package/dist/cjs/callbacks/useIsFetching.cjs +2 -3
  53. package/dist/cjs/callbacks/useIsFetching.cjs.map +1 -1
  54. package/dist/cjs/callbacks/useIsMutating.cjs +2 -3
  55. package/dist/cjs/callbacks/useIsMutating.cjs.map +1 -1
  56. package/dist/cjs/callbacks/useMutation.cjs +10 -14
  57. package/dist/cjs/callbacks/useMutation.cjs.map +1 -1
  58. package/dist/cjs/callbacks/useMutationState.cjs +2 -3
  59. package/dist/cjs/callbacks/useMutationState.cjs.map +1 -1
  60. package/dist/cjs/callbacks/useQueries.cjs +6 -10
  61. package/dist/cjs/callbacks/useQueries.cjs.map +1 -1
  62. package/dist/cjs/callbacks/useQuery.cjs.map +1 -1
  63. package/dist/cjs/callbacks/useSuspenseInfiniteQuery.cjs.map +1 -1
  64. package/dist/cjs/callbacks/useSuspenseQueries.cjs +6 -10
  65. package/dist/cjs/callbacks/useSuspenseQueries.cjs.map +1 -1
  66. package/dist/cjs/callbacks/useSuspenseQuery.cjs.map +1 -1
  67. package/dist/cjs/index.cjs +0 -2
  68. package/dist/cjs/index.cjs.map +1 -1
  69. package/dist/cjs/lib/callQueryClientFetchMethod.cjs +15 -22
  70. package/dist/cjs/lib/callQueryClientFetchMethod.cjs.map +1 -1
  71. package/dist/cjs/lib/callQueryClientMethodWithMutationFilters.cjs +4 -6
  72. package/dist/cjs/lib/callQueryClientMethodWithMutationFilters.cjs.map +1 -1
  73. package/dist/cjs/lib/callQueryClientMethodWithQueryFilters.cjs +4 -6
  74. package/dist/cjs/lib/callQueryClientMethodWithQueryFilters.cjs.map +1 -1
  75. package/dist/cjs/lib/callQueryClientMethodWithQueryKey.cjs +4 -6
  76. package/dist/cjs/lib/callQueryClientMethodWithQueryKey.cjs.map +1 -1
  77. package/dist/cjs/lib/requestFn.cjs +42 -31
  78. package/dist/cjs/lib/requestFn.cjs.map +1 -1
  79. package/dist/cjs/lib/requestFnResponseResolver.cjs +9 -0
  80. package/dist/cjs/lib/requestFnResponseResolver.cjs.map +1 -0
  81. package/dist/cjs/lib/useComposeUseQueryOptions.cjs +6 -10
  82. package/dist/cjs/lib/useComposeUseQueryOptions.cjs.map +1 -1
  83. package/dist/cjs/qraftAPIClient.cjs +13 -3
  84. package/dist/cjs/qraftAPIClient.cjs.map +1 -1
  85. package/dist/esm/Unstable_QraftSecureRequestFn.js.map +1 -1
  86. package/dist/esm/callbacks/cancelQueries.js +1 -1
  87. package/dist/esm/callbacks/cancelQueries.js.map +1 -1
  88. package/dist/esm/callbacks/fetchInfiniteQuery.js +2 -2
  89. package/dist/esm/callbacks/fetchInfiniteQuery.js.map +1 -1
  90. package/dist/esm/callbacks/fetchQuery.js +2 -2
  91. package/dist/esm/callbacks/fetchQuery.js.map +1 -1
  92. package/dist/esm/callbacks/getInfiniteQueryData.js +3 -2
  93. package/dist/esm/callbacks/getInfiniteQueryData.js.map +1 -1
  94. package/dist/esm/callbacks/getInfiniteQueryKey.js +1 -1
  95. package/dist/esm/callbacks/getInfiniteQueryKey.js.map +1 -1
  96. package/dist/esm/callbacks/getInfiniteQueryState.js +3 -2
  97. package/dist/esm/callbacks/getInfiniteQueryState.js.map +1 -1
  98. package/dist/esm/callbacks/getMutationKey.js +1 -1
  99. package/dist/esm/callbacks/getMutationKey.js.map +1 -1
  100. package/dist/esm/callbacks/getQueriesData.js +2 -2
  101. package/dist/esm/callbacks/getQueriesData.js.map +1 -1
  102. package/dist/esm/callbacks/getQueryData.js +3 -2
  103. package/dist/esm/callbacks/getQueryData.js.map +1 -1
  104. package/dist/esm/callbacks/getQueryKey.js +1 -1
  105. package/dist/esm/callbacks/getQueryKey.js.map +1 -1
  106. package/dist/esm/callbacks/getQueryState.js +3 -2
  107. package/dist/esm/callbacks/getQueryState.js.map +1 -1
  108. package/dist/esm/callbacks/index.js +0 -2
  109. package/dist/esm/callbacks/index.js.map +1 -1
  110. package/dist/esm/callbacks/invalidateQueries.js +1 -1
  111. package/dist/esm/callbacks/invalidateQueries.js.map +1 -1
  112. package/dist/esm/callbacks/isFetching.js +1 -1
  113. package/dist/esm/callbacks/isFetching.js.map +1 -1
  114. package/dist/esm/callbacks/isMutating.js +2 -2
  115. package/dist/esm/callbacks/isMutating.js.map +1 -1
  116. package/dist/esm/callbacks/operationInvokeFn.js +7 -5
  117. package/dist/esm/callbacks/operationInvokeFn.js.map +1 -1
  118. package/dist/esm/callbacks/prefetchInfiniteQuery.js +2 -2
  119. package/dist/esm/callbacks/prefetchInfiniteQuery.js.map +1 -1
  120. package/dist/esm/callbacks/prefetchQuery.js +2 -2
  121. package/dist/esm/callbacks/prefetchQuery.js.map +1 -1
  122. package/dist/esm/callbacks/refetchQueries.js +1 -1
  123. package/dist/esm/callbacks/refetchQueries.js.map +1 -1
  124. package/dist/esm/callbacks/removeQueries.js +2 -2
  125. package/dist/esm/callbacks/removeQueries.js.map +1 -1
  126. package/dist/esm/callbacks/resetQueries.js +1 -1
  127. package/dist/esm/callbacks/resetQueries.js.map +1 -1
  128. package/dist/esm/callbacks/setInfiniteQueryData.js +2 -1
  129. package/dist/esm/callbacks/setInfiniteQueryData.js.map +1 -1
  130. package/dist/esm/callbacks/setQueriesData.js +2 -2
  131. package/dist/esm/callbacks/setQueriesData.js.map +1 -1
  132. package/dist/esm/callbacks/setQueryData.js +3 -2
  133. package/dist/esm/callbacks/setQueryData.js.map +1 -1
  134. package/dist/esm/callbacks/useInfiniteQuery.js.map +1 -1
  135. package/dist/esm/callbacks/useIsFetching.js +2 -3
  136. package/dist/esm/callbacks/useIsFetching.js.map +1 -1
  137. package/dist/esm/callbacks/useIsMutating.js +2 -3
  138. package/dist/esm/callbacks/useIsMutating.js.map +1 -1
  139. package/dist/esm/callbacks/useMutation.js +10 -14
  140. package/dist/esm/callbacks/useMutation.js.map +1 -1
  141. package/dist/esm/callbacks/useMutationState.js +2 -3
  142. package/dist/esm/callbacks/useMutationState.js.map +1 -1
  143. package/dist/esm/callbacks/useQueries.js +6 -10
  144. package/dist/esm/callbacks/useQueries.js.map +1 -1
  145. package/dist/esm/callbacks/useQuery.js.map +1 -1
  146. package/dist/esm/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  147. package/dist/esm/callbacks/useSuspenseQueries.js +6 -10
  148. package/dist/esm/callbacks/useSuspenseQueries.js.map +1 -1
  149. package/dist/esm/callbacks/useSuspenseQuery.js.map +1 -1
  150. package/dist/esm/index.js +0 -1
  151. package/dist/esm/index.js.map +1 -1
  152. package/dist/esm/lib/callQueryClientFetchMethod.js +15 -22
  153. package/dist/esm/lib/callQueryClientFetchMethod.js.map +1 -1
  154. package/dist/esm/lib/callQueryClientMethodWithMutationFilters.js +4 -6
  155. package/dist/esm/lib/callQueryClientMethodWithMutationFilters.js.map +1 -1
  156. package/dist/esm/lib/callQueryClientMethodWithQueryFilters.js +4 -6
  157. package/dist/esm/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
  158. package/dist/esm/lib/callQueryClientMethodWithQueryKey.js +4 -6
  159. package/dist/esm/lib/callQueryClientMethodWithQueryKey.js.map +1 -1
  160. package/dist/esm/lib/requestFn.js +42 -31
  161. package/dist/esm/lib/requestFn.js.map +1 -1
  162. package/dist/esm/lib/requestFnResponseResolver.js +7 -0
  163. package/dist/esm/lib/requestFnResponseResolver.js.map +1 -0
  164. package/dist/esm/lib/useComposeUseQueryOptions.js +6 -10
  165. package/dist/esm/lib/useComposeUseQueryOptions.js.map +1 -1
  166. package/dist/esm/qraftAPIClient.js +13 -3
  167. package/dist/esm/qraftAPIClient.js.map +1 -1
  168. package/dist/types/Unstable_QraftSecureRequestFn.d.ts +2 -2
  169. package/dist/types/Unstable_QraftSecureRequestFn.d.ts.map +1 -1
  170. package/dist/types/callbacks/cancelQueries.d.ts +3 -3
  171. package/dist/types/callbacks/cancelQueries.d.ts.map +1 -1
  172. package/dist/types/callbacks/fetchInfiniteQuery.d.ts +3 -3
  173. package/dist/types/callbacks/fetchInfiniteQuery.d.ts.map +1 -1
  174. package/dist/types/callbacks/fetchQuery.d.ts +3 -3
  175. package/dist/types/callbacks/fetchQuery.d.ts.map +1 -1
  176. package/dist/types/callbacks/getInfiniteQueryData.d.ts +2 -2
  177. package/dist/types/callbacks/getInfiniteQueryData.d.ts.map +1 -1
  178. package/dist/types/callbacks/getInfiniteQueryKey.d.ts +2 -2
  179. package/dist/types/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  180. package/dist/types/callbacks/getInfiniteQueryState.d.ts +2 -2
  181. package/dist/types/callbacks/getInfiniteQueryState.d.ts.map +1 -1
  182. package/dist/types/callbacks/getMutationKey.d.ts +3 -3
  183. package/dist/types/callbacks/getMutationKey.d.ts.map +1 -1
  184. package/dist/types/callbacks/getQueriesData.d.ts +3 -3
  185. package/dist/types/callbacks/getQueriesData.d.ts.map +1 -1
  186. package/dist/types/callbacks/getQueryData.d.ts +2 -2
  187. package/dist/types/callbacks/getQueryData.d.ts.map +1 -1
  188. package/dist/types/callbacks/getQueryKey.d.ts +3 -3
  189. package/dist/types/callbacks/getQueryKey.d.ts.map +1 -1
  190. package/dist/types/callbacks/getQueryState.d.ts +2 -2
  191. package/dist/types/callbacks/getQueryState.d.ts.map +1 -1
  192. package/dist/types/callbacks/index.d.ts +0 -2
  193. package/dist/types/callbacks/index.d.ts.map +1 -1
  194. package/dist/types/callbacks/invalidateQueries.d.ts +3 -3
  195. package/dist/types/callbacks/invalidateQueries.d.ts.map +1 -1
  196. package/dist/types/callbacks/isFetching.d.ts +3 -3
  197. package/dist/types/callbacks/isFetching.d.ts.map +1 -1
  198. package/dist/types/callbacks/isMutating.d.ts +3 -3
  199. package/dist/types/callbacks/isMutating.d.ts.map +1 -1
  200. package/dist/types/callbacks/operationInvokeFn.d.ts +5 -5
  201. package/dist/types/callbacks/operationInvokeFn.d.ts.map +1 -1
  202. package/dist/types/callbacks/prefetchInfiniteQuery.d.ts +3 -3
  203. package/dist/types/callbacks/prefetchInfiniteQuery.d.ts.map +1 -1
  204. package/dist/types/callbacks/prefetchQuery.d.ts +3 -3
  205. package/dist/types/callbacks/prefetchQuery.d.ts.map +1 -1
  206. package/dist/types/callbacks/refetchQueries.d.ts +3 -3
  207. package/dist/types/callbacks/refetchQueries.d.ts.map +1 -1
  208. package/dist/types/callbacks/removeQueries.d.ts +3 -3
  209. package/dist/types/callbacks/removeQueries.d.ts.map +1 -1
  210. package/dist/types/callbacks/resetQueries.d.ts +3 -3
  211. package/dist/types/callbacks/resetQueries.d.ts.map +1 -1
  212. package/dist/types/callbacks/setInfiniteQueryData.d.ts +4 -4
  213. package/dist/types/callbacks/setInfiniteQueryData.d.ts.map +1 -1
  214. package/dist/types/callbacks/setQueriesData.d.ts +3 -3
  215. package/dist/types/callbacks/setQueriesData.d.ts.map +1 -1
  216. package/dist/types/callbacks/setQueryData.d.ts +3 -3
  217. package/dist/types/callbacks/setQueryData.d.ts.map +1 -1
  218. package/dist/types/callbacks/useInfiniteQuery.d.ts +2 -2
  219. package/dist/types/callbacks/useInfiniteQuery.d.ts.map +1 -1
  220. package/dist/types/callbacks/useIsFetching.d.ts +2 -2
  221. package/dist/types/callbacks/useIsFetching.d.ts.map +1 -1
  222. package/dist/types/callbacks/useIsMutating.d.ts +4 -4
  223. package/dist/types/callbacks/useIsMutating.d.ts.map +1 -1
  224. package/dist/types/callbacks/useMutation.d.ts +3 -3
  225. package/dist/types/callbacks/useMutation.d.ts.map +1 -1
  226. package/dist/types/callbacks/useMutationState.d.ts +4 -4
  227. package/dist/types/callbacks/useMutationState.d.ts.map +1 -1
  228. package/dist/types/callbacks/useQueries.d.ts +4 -4
  229. package/dist/types/callbacks/useQueries.d.ts.map +1 -1
  230. package/dist/types/callbacks/useQuery.d.ts +2 -2
  231. package/dist/types/callbacks/useQuery.d.ts.map +1 -1
  232. package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts +2 -2
  233. package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
  234. package/dist/types/callbacks/useSuspenseQueries.d.ts +4 -4
  235. package/dist/types/callbacks/useSuspenseQueries.d.ts.map +1 -1
  236. package/dist/types/callbacks/useSuspenseQuery.d.ts +2 -2
  237. package/dist/types/callbacks/useSuspenseQuery.d.ts.map +1 -1
  238. package/dist/types/index.d.ts +2 -3
  239. package/dist/types/index.d.ts.map +1 -1
  240. package/dist/types/lib/callQueryClientFetchMethod.d.ts +3 -2
  241. package/dist/types/lib/callQueryClientFetchMethod.d.ts.map +1 -1
  242. package/dist/types/lib/callQueryClientMethodWithMutationFilters.d.ts +2 -1
  243. package/dist/types/lib/callQueryClientMethodWithMutationFilters.d.ts.map +1 -1
  244. package/dist/types/lib/callQueryClientMethodWithQueryFilters.d.ts +2 -1
  245. package/dist/types/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
  246. package/dist/types/lib/callQueryClientMethodWithQueryKey.d.ts +2 -1
  247. package/dist/types/lib/callQueryClientMethodWithQueryKey.d.ts.map +1 -1
  248. package/dist/types/lib/requestFn.d.ts +17 -4
  249. package/dist/types/lib/requestFn.d.ts.map +1 -1
  250. package/dist/types/lib/requestFnResponseResolver.d.ts +3 -0
  251. package/dist/types/lib/requestFnResponseResolver.d.ts.map +1 -0
  252. package/dist/types/lib/useComposeUseQueryOptions.d.ts +2 -2
  253. package/dist/types/lib/useComposeUseQueryOptions.d.ts.map +1 -1
  254. package/dist/types/qraftAPIClient.d.ts +40 -9
  255. package/dist/types/qraftAPIClient.d.ts.map +1 -1
  256. package/dist/types/service-operation/ServiceOperation.d.ts +2 -2
  257. package/dist/types/service-operation/ServiceOperation.d.ts.map +1 -1
  258. package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts +2 -13
  259. package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts.map +1 -1
  260. package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts +10 -7
  261. package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts.map +1 -1
  262. package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts +19 -10
  263. package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts.map +1 -1
  264. package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts +3 -3
  265. package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts.map +1 -1
  266. package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts +3 -4
  267. package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts.map +1 -1
  268. package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts +3 -3
  269. package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts.map +1 -1
  270. package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts +3 -3
  271. package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts.map +1 -1
  272. package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts +2 -13
  273. package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts.map +1 -1
  274. package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts +2 -12
  275. package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts.map +1 -1
  276. package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts +2 -12
  277. package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts.map +1 -1
  278. package/dist/types/service-operation/ServiceOperationMutationFn.d.ts +16 -33
  279. package/dist/types/service-operation/ServiceOperationMutationFn.d.ts.map +1 -1
  280. package/dist/types/service-operation/ServiceOperationQueryFn.d.ts +7 -49
  281. package/dist/types/service-operation/ServiceOperationQueryFn.d.ts.map +1 -1
  282. package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts +2 -23
  283. package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts.map +1 -1
  284. package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts +2 -12
  285. package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts.map +1 -1
  286. package/dist/types/service-operation/ServiceOperationResetQueries.d.ts +2 -13
  287. package/dist/types/service-operation/ServiceOperationResetQueries.d.ts.map +1 -1
  288. package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts +2 -2
  289. package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts.map +1 -1
  290. package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts +3 -14
  291. package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts.map +1 -1
  292. package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts +2 -12
  293. package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts.map +1 -1
  294. package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts +6 -5
  295. package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts.map +1 -1
  296. package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts +2 -2
  297. package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts.map +1 -1
  298. package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts +2 -2
  299. package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts.map +1 -1
  300. package/dist/types/service-operation/ServiceOperationUseMutation.d.ts +4 -4
  301. package/dist/types/service-operation/ServiceOperationUseMutation.d.ts.map +1 -1
  302. package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts +2 -2
  303. package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts.map +1 -1
  304. package/dist/types/service-operation/ServiceOperationUseQueries.d.ts +2 -2
  305. package/dist/types/service-operation/ServiceOperationUseQueries.d.ts.map +1 -1
  306. package/dist/types/service-operation/ServiceOperationUseQuery.d.ts +5 -5
  307. package/dist/types/service-operation/ServiceOperationUseQuery.d.ts.map +1 -1
  308. package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts +2 -2
  309. package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts.map +1 -1
  310. package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts +2 -2
  311. package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts.map +1 -1
  312. package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts +2 -2
  313. package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts.map +1 -1
  314. package/package.json +4 -4
  315. package/src/Unstable_QraftSecureRequestFn.ts +3 -2
  316. package/src/callbacks/cancelQueries.ts +5 -4
  317. package/src/callbacks/fetchInfiniteQuery.ts +10 -5
  318. package/src/callbacks/fetchQuery.ts +8 -5
  319. package/src/callbacks/getInfiniteQueryData.ts +5 -3
  320. package/src/callbacks/getInfiniteQueryKey.ts +2 -2
  321. package/src/callbacks/getInfiniteQueryState.ts +5 -3
  322. package/src/callbacks/getMutationKey.ts +3 -3
  323. package/src/callbacks/getQueriesData.ts +4 -3
  324. package/src/callbacks/getQueryData.ts +5 -3
  325. package/src/callbacks/getQueryKey.ts +3 -3
  326. package/src/callbacks/getQueryState.ts +5 -3
  327. package/src/callbacks/index.ts +0 -2
  328. package/src/callbacks/invalidateQueries.ts +5 -4
  329. package/src/callbacks/isFetching.ts +5 -4
  330. package/src/callbacks/isMutating.ts +5 -4
  331. package/src/callbacks/operationInvokeFn.ts +23 -13
  332. package/src/callbacks/prefetchInfiniteQuery.ts +10 -5
  333. package/src/callbacks/prefetchQuery.ts +6 -5
  334. package/src/callbacks/refetchQueries.ts +5 -4
  335. package/src/callbacks/removeQueries.ts +5 -4
  336. package/src/callbacks/resetQueries.ts +5 -4
  337. package/src/callbacks/setInfiniteQueryData.ts +8 -6
  338. package/src/callbacks/setQueriesData.ts +5 -4
  339. package/src/callbacks/setQueryData.ts +7 -5
  340. package/src/callbacks/useInfiniteQuery.ts +2 -2
  341. package/src/callbacks/useIsFetching.ts +4 -5
  342. package/src/callbacks/useIsMutating.ts +7 -10
  343. package/src/callbacks/useMutation.ts +22 -29
  344. package/src/callbacks/useMutationState.ts +7 -10
  345. package/src/callbacks/useQueries.ts +16 -23
  346. package/src/callbacks/useQuery.ts +2 -2
  347. package/src/callbacks/useSuspenseInfiniteQuery.ts +2 -2
  348. package/src/callbacks/useSuspenseQueries.ts +16 -23
  349. package/src/callbacks/useSuspenseQuery.ts +2 -2
  350. package/src/index.ts +10 -2
  351. package/src/lib/callQueryClientFetchMethod.ts +39 -37
  352. package/src/lib/callQueryClientMethodWithMutationFilters.ts +5 -9
  353. package/src/lib/callQueryClientMethodWithQueryFilters.ts +5 -9
  354. package/src/lib/callQueryClientMethodWithQueryKey.ts +10 -10
  355. package/src/lib/requestFn.ts +104 -55
  356. package/src/lib/requestFnResponseResolver.ts +8 -0
  357. package/src/lib/urlSerializer.test.ts +0 -1
  358. package/src/lib/useComposeUseQueryOptions.ts +16 -24
  359. package/src/qraftAPIClient.ts +236 -31
  360. package/src/service-operation/ServiceOperation.ts +2 -2
  361. package/src/service-operation/ServiceOperationCancelQueries.ts +4 -37
  362. package/src/service-operation/ServiceOperationFetchInfiniteQuery.ts +12 -11
  363. package/src/service-operation/ServiceOperationFetchQuery.ts +40 -23
  364. package/src/service-operation/ServiceOperationGetInfiniteQueryData.ts +5 -4
  365. package/src/service-operation/ServiceOperationGetQueriesData.ts +5 -6
  366. package/src/service-operation/ServiceOperationGetQueryData.ts +5 -4
  367. package/src/service-operation/ServiceOperationGetQueryState.ts +3 -9
  368. package/src/service-operation/ServiceOperationInvalidateQueries.ts +10 -34
  369. package/src/service-operation/ServiceOperationIsFetchingQueries.ts +3 -24
  370. package/src/service-operation/ServiceOperationIsMutatingQueries.ts +2 -37
  371. package/src/service-operation/ServiceOperationMutationFn.ts +32 -75
  372. package/src/service-operation/ServiceOperationQueryFn.ts +15 -121
  373. package/src/service-operation/ServiceOperationRefetchQueries.ts +4 -58
  374. package/src/service-operation/ServiceOperationRemoveQueries.ts +3 -24
  375. package/src/service-operation/ServiceOperationResetQueries.ts +4 -37
  376. package/src/service-operation/ServiceOperationSetInfiniteQueryData.ts +1 -7
  377. package/src/service-operation/ServiceOperationSetQueriesData.ts +3 -32
  378. package/src/service-operation/ServiceOperationSetQueryData.ts +3 -31
  379. package/src/service-operation/ServiceOperationUseInfiniteQuery.ts +13 -11
  380. package/src/service-operation/ServiceOperationUseIsFetchingQueries.ts +3 -4
  381. package/src/service-operation/ServiceOperationUseIsMutating.ts +2 -3
  382. package/src/service-operation/ServiceOperationUseMutation.ts +6 -8
  383. package/src/service-operation/ServiceOperationUseMutationState.ts +17 -21
  384. package/src/service-operation/ServiceOperationUseQueries.ts +6 -10
  385. package/src/service-operation/ServiceOperationUseQuery.ts +7 -9
  386. package/src/service-operation/ServiceOperationUseSuspenseInfiniteQuery.ts +1 -3
  387. package/src/service-operation/ServiceOperationUseSuspenseQueries.ts +9 -12
  388. package/src/service-operation/ServiceOperationUseSuspenseQuery.ts +2 -3
  389. package/dist/cjs/QraftContext.cjs +0 -9
  390. package/dist/cjs/QraftContext.cjs.map +0 -1
  391. package/dist/cjs/callbacks/mutationFn.cjs +0 -12
  392. package/dist/cjs/callbacks/mutationFn.cjs.map +0 -1
  393. package/dist/cjs/callbacks/queryFn.cjs +0 -13
  394. package/dist/cjs/callbacks/queryFn.cjs.map +0 -1
  395. package/dist/cjs/lib/useQueryClient.cjs +0 -18
  396. package/dist/cjs/lib/useQueryClient.cjs.map +0 -1
  397. package/dist/esm/QraftContext.js +0 -7
  398. package/dist/esm/QraftContext.js.map +0 -1
  399. package/dist/esm/callbacks/mutationFn.js +0 -10
  400. package/dist/esm/callbacks/mutationFn.js.map +0 -1
  401. package/dist/esm/callbacks/queryFn.js +0 -11
  402. package/dist/esm/callbacks/queryFn.js.map +0 -1
  403. package/dist/esm/lib/useQueryClient.js +0 -16
  404. package/dist/esm/lib/useQueryClient.js.map +0 -1
  405. package/dist/types/QraftContext.d.ts +0 -20
  406. package/dist/types/QraftContext.d.ts.map +0 -1
  407. package/dist/types/ServiceOperation.d.ts +0 -44
  408. package/dist/types/ServiceOperation.d.ts.map +0 -1
  409. package/dist/types/callbacks/mutationFn.d.ts +0 -4
  410. package/dist/types/callbacks/mutationFn.d.ts.map +0 -1
  411. package/dist/types/callbacks/queryFn.d.ts +0 -7
  412. package/dist/types/callbacks/queryFn.d.ts.map +0 -1
  413. package/dist/types/lib/useQueryClient.d.ts +0 -9
  414. package/dist/types/lib/useQueryClient.d.ts.map +0 -1
  415. package/src/QraftContext.ts +0 -28
  416. package/src/ServiceOperation.ts +0 -66
  417. package/src/callbacks/mutationFn.ts +0 -22
  418. package/src/callbacks/queryFn.ts +0 -26
  419. package/src/lib/useQueryClient.ts +0 -25
@@ -1,7 +1,9 @@
1
1
  import type { QueryClient } from '@tanstack/query-core';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
2
3
  import type { OperationSchema, RequestFn } from './requestFn.js';
3
4
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
4
5
  import { composeQueryKey } from './composeQueryKey.js';
6
+ import { requestFnResponseResolver } from './requestFnResponseResolver.js';
5
7
  import { shelfMerge } from './shelfMerge.js';
6
8
 
7
9
  /**
@@ -11,68 +13,68 @@ import { shelfMerge } from './shelfMerge.js';
11
13
  export function callQueryClientMethodWithQueryKey<
12
14
  QFMethod extends QueryKeyMethods,
13
15
  >(
16
+ qraftOptions: CreateAPIQueryClientOptions,
14
17
  queryFilterMethod: QFMethod,
15
18
  schema: OperationSchema,
16
19
  infinite: boolean,
17
20
  args: QueryClientMethodArgs<QFMethod>
18
21
  ): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {
19
- const [{ requestFn, baseUrl, parameters, ...options }, queryClient] = args;
22
+ const {
23
+ requestFn: requestFnOption,
24
+ baseUrl: baseUrlOption,
25
+ queryFn: queryFnOption,
26
+ parameters,
27
+ ...options
28
+ } = args[0] ?? {};
20
29
 
21
- if (!queryClient) throw new Error('queryClient is required');
22
- if (!queryClient[queryFilterMethod])
23
- throw new Error(
24
- `queryClient is invalid, ${queryFilterMethod} method does not exist`
25
- );
30
+ const queryClient = qraftOptions.queryClient;
31
+ const baseUrl = baseUrlOption ?? qraftOptions.baseUrl;
26
32
 
27
- if (options.queryKey && parameters) {
33
+ if (queryFnOption && requestFnOption) {
28
34
  throw new Error(
29
- 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'
35
+ 'callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'
30
36
  );
31
37
  }
32
38
 
33
- if (options.queryFn && requestFn) {
39
+ const requestFn = requestFnOption ?? qraftOptions.requestFn;
40
+
41
+ if (options.queryKey && parameters) {
34
42
  throw new Error(
35
- 'callQueryClientMethodWithQueryKey: options.queryFn and requestFn are mutually exclusive'
43
+ 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'
36
44
  );
37
45
  }
38
46
 
39
47
  const queryFn =
40
- options.queryFn ??
41
- (requestFn
42
- ? // @ts-expect-error - Not inferring the correct type for `queryFn`
43
- function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
44
- return requestFn(schema, {
45
- parameters: infinite
46
- ? (shelfMerge(2, queryParams, pageParam) as never)
47
- : queryParams,
48
- baseUrl,
49
- signal,
50
- meta,
51
- });
52
- }
53
- : undefined);
54
-
55
- if (parameters) {
48
+ queryFnOption ??
56
49
  // @ts-expect-error - Too complex union to type
57
- return queryClient[queryFilterMethod]({
58
- ...options,
59
- // Event if queryFn is undefined, it will override the default queryFn from `setQueryDefaults(...)`
60
- ...(queryFn ? { queryFn } : {}),
61
- queryKey: infinite
62
- ? composeInfiniteQueryKey(schema, parameters)
63
- : composeQueryKey(schema, parameters),
64
- });
65
- }
50
+ function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
51
+ return requestFn(schema, {
52
+ parameters: infinite
53
+ ? (shelfMerge(2, queryParams, pageParam) as never)
54
+ : queryParams,
55
+ baseUrl,
56
+ signal,
57
+ meta,
58
+ }).then(requestFnResponseResolver, requestFnResponseResolver);
59
+ };
66
60
 
67
61
  // @ts-expect-error - Too complex union to type
68
- return queryClient[queryFilterMethod]({ ...options, queryFn });
62
+ return queryClient[queryFilterMethod]({
63
+ ...options,
64
+ queryFn,
65
+ queryKey:
66
+ options.queryKey ??
67
+ (infinite
68
+ ? composeInfiniteQueryKey(schema, parameters)
69
+ : composeQueryKey(schema, parameters)),
70
+ });
69
71
  }
70
72
 
71
73
  type QueryClientMethodArgs<QMethod extends keyof QueryClientPrototype> = [
72
74
  options: Parameters<QueryClientPrototype[QMethod]>[0] & {
73
75
  parameters?: unknown;
74
76
  baseUrl?: string;
75
- requestFn?: RequestFn<unknown>;
77
+ requestFn?: RequestFn<unknown, unknown>;
76
78
  },
77
79
  queryClient: QueryClient,
78
80
  ];
@@ -1,4 +1,5 @@
1
1
  import type { QueryClient } from '@tanstack/query-core';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
2
3
  import type { OperationSchema } from './requestFn.js';
3
4
  import { composeMutationFilters } from './composeMutationFilters.js';
4
5
 
@@ -9,24 +10,19 @@ import { composeMutationFilters } from './composeMutationFilters.js';
9
10
  export function callQueryClientMethodWithMutationFilters<
10
11
  QFMethod extends QueryFilterMethods,
11
12
  >(
13
+ qraftOptions: CreateAPIQueryClientOptions,
12
14
  queryFilterMethod: QFMethod,
13
15
  schema: OperationSchema,
14
16
  args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]
15
17
  ): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {
16
- const filters = args.length > 1 ? args[0] : undefined;
17
- const queryClient = args[args.length - 1] as QueryClient | undefined;
18
-
19
- if (!queryClient) throw new Error('queryClient is required');
20
- if (!queryClient[queryFilterMethod])
21
- throw new Error(
22
- `queryClient is invalid, ${queryFilterMethod} method does not exist`
23
- );
18
+ const filters = args[0];
19
+ const queryClient = qraftOptions.queryClient;
24
20
 
25
21
  // @ts-expect-error - Too complex to type
26
22
  return queryClient[queryFilterMethod](
27
23
  composeMutationFilters(schema, filters as never),
28
24
  // @ts-expect-error - Argument types are too complex
29
- ...args.slice(1, -1)
25
+ ...args.slice(1, args.length)
30
26
  );
31
27
  }
32
28
 
@@ -1,4 +1,5 @@
1
1
  import type { QueryClient } from '@tanstack/query-core';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
2
3
  import type { OperationSchema } from './requestFn.js';
3
4
  import { composeQueryFilters } from './composeQueryFilters.js';
4
5
 
@@ -9,24 +10,19 @@ import { composeQueryFilters } from './composeQueryFilters.js';
9
10
  export function callQueryClientMethodWithQueryFilters<
10
11
  QFMethod extends QueryFilterMethods,
11
12
  >(
13
+ qraftOptions: CreateAPIQueryClientOptions,
12
14
  queryFilterMethod: QFMethod,
13
15
  schema: OperationSchema,
14
16
  args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]
15
17
  ): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {
16
- const filters = args.length > 1 ? args[0] : undefined;
17
- const queryClient = args[args.length - 1] as QueryClient | undefined;
18
-
19
- if (!queryClient) throw new Error('queryClient is required');
20
- if (!queryClient[queryFilterMethod])
21
- throw new Error(
22
- `queryClient is invalid, ${queryFilterMethod} method does not exist`
23
- );
18
+ const filters = args[0];
19
+ const queryClient = qraftOptions.queryClient;
24
20
 
25
21
  // @ts-expect-error - Too complex to type
26
22
  return queryClient[queryFilterMethod](
27
23
  composeQueryFilters(schema, filters as never),
28
24
  // @ts-expect-error - Argument types are too complex
29
- ...args.slice(1, -1)
25
+ ...args.slice(1, args.length)
30
26
  );
31
27
  }
32
28
 
@@ -1,4 +1,5 @@
1
1
  import type { QueryClient } from '@tanstack/query-core';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
2
3
  import type { OperationSchema } from './requestFn.js';
3
4
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
4
5
  import { composeQueryKey } from './composeQueryKey.js';
@@ -10,19 +11,13 @@ import { composeQueryKey } from './composeQueryKey.js';
10
11
  export function callQueryClientMethodWithQueryKey<
11
12
  QFMethod extends QueryKeyMethods,
12
13
  >(
13
- queryFilterMethod: QFMethod,
14
+ qraftOptions: CreateAPIQueryClientOptions,
15
+ queryClientMethod: QFMethod,
14
16
  schema: OperationSchema,
15
17
  infinite: boolean,
16
18
  args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]
17
19
  ): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {
18
- const parameters = args.length > 1 ? args[0] : undefined;
19
- const queryClient = args[args.length - 1] as QueryClient | undefined;
20
-
21
- if (!queryClient) throw new Error('queryClient is required');
22
- if (!queryClient[queryFilterMethod])
23
- throw new Error(
24
- `queryClient is invalid, ${queryFilterMethod} method does not exist`
25
- );
20
+ const parameters = args[0];
26
21
 
27
22
  const queryKey = Array.isArray(parameters)
28
23
  ? parameters
@@ -30,8 +25,13 @@ export function callQueryClientMethodWithQueryKey<
30
25
  ? composeInfiniteQueryKey(schema, parameters)
31
26
  : composeQueryKey(schema, parameters);
32
27
 
28
+ const queryClient = qraftOptions.queryClient;
29
+
33
30
  // @ts-expect-error - Too complex to type
34
- return queryClient[queryFilterMethod](queryKey, ...args.slice(1, -1));
31
+ return queryClient[queryClientMethod](
32
+ queryKey,
33
+ ...args.slice(1, args.length)
34
+ );
35
35
  }
36
36
 
37
37
  type QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =
@@ -11,12 +11,12 @@
11
11
  *
12
12
  * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.
13
13
  */
14
- export async function requestFn<T>(
14
+ export async function requestFn<TData, TError>(
15
15
  schema: OperationSchema,
16
16
  requestInfo: RequestFnInfo,
17
17
  options?: RequestFnOptions
18
- ): Promise<T> {
19
- return baseRequestFn(schema, requestInfo, {
18
+ ): Promise<RequestFnResponse<TData, TError>> {
19
+ return baseRequestFn<TData, TError>(schema, requestInfo, {
20
20
  urlSerializer,
21
21
  bodySerializer,
22
22
  ...options,
@@ -39,46 +39,36 @@ export async function requestFn<T>(
39
39
  *
40
40
  * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.
41
41
  */
42
- export async function baseRequestFn<T>(
42
+ export async function baseRequestFn<TData, TError>(
43
43
  requestSchema: OperationSchema,
44
44
  requestInfo: RequestFnInfo,
45
45
  options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>
46
- ): Promise<T> {
46
+ ): Promise<RequestFnResponse<TData, TError>> {
47
47
  const { parameters, headers, body, ...requestInfoRest } = requestInfo;
48
48
 
49
49
  const requestBody = options.bodySerializer(requestSchema, requestInfo);
50
50
 
51
51
  const baseFetch = options.fetch ?? fetch;
52
52
 
53
- const response = await baseFetch(
54
- options.urlSerializer(requestSchema, requestInfo),
55
- {
56
- method: requestSchema.method.toUpperCase(),
57
- body: requestBody,
58
- headers: mergeHeaders(
59
- {
60
- Accept: 'application/json',
61
- 'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
62
- },
63
- headers,
64
- parameters?.header,
65
- requestBody instanceof FormData
66
- ? // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
67
- { 'Content-Type': null }
68
- : undefined
69
- ),
70
- ...requestInfoRest,
71
- }
72
- );
73
-
74
- // clone response to allow multiple reads
75
- const clonedResponse = response.clone();
76
-
77
- if (!response.ok) {
78
- throw await getResponseBody(clonedResponse);
79
- }
80
-
81
- return (await getResponseBody(clonedResponse)) as T;
53
+ return baseFetch(options.urlSerializer(requestSchema, requestInfo), {
54
+ method: requestSchema.method.toUpperCase(),
55
+ body: requestBody,
56
+ headers: mergeHeaders(
57
+ {
58
+ Accept: 'application/json',
59
+ 'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
60
+ },
61
+ headers,
62
+ parameters?.header,
63
+ requestBody instanceof FormData
64
+ ? // remove `Content-Type` if the serialized body is FormData; the browser will correctly set Content-Type & boundary expression
65
+ { 'Content-Type': null }
66
+ : undefined
67
+ ),
68
+ ...requestInfoRest,
69
+ })
70
+ .then(processResponse as typeof processResponse<TData, TError>)
71
+ .catch(resolveResponse as typeof resolveResponse<TData, TError>);
82
72
  }
83
73
 
84
74
  /**
@@ -257,32 +247,72 @@ function getBodyContentType(body: RequestFnPayload['body']) {
257
247
  if (!(body instanceof FormData)) return 'application/json';
258
248
  }
259
249
 
260
- async function getResponseBody<T>(response: Response): Promise<T | undefined> {
250
+ async function processResponse<TData, TError>(
251
+ response: Response
252
+ ): Promise<RequestFnResponse<TData, TError>> {
261
253
  if (response.status === 204 || response.headers.get('Content-Length') === '0')
262
- return undefined;
263
-
264
- const contentType = response.headers.get('Content-Type')?.toLowerCase();
265
- const isJSON =
266
- contentType?.includes('/json') || contentType?.includes('+json');
254
+ return (
255
+ response.ok ? { data: {}, response } : { error: {}, response }
256
+ ) as RequestFnResponse<TData, TError>;
257
+
258
+ if (isJsonResponse(response)) {
259
+ // clone response before parsing every time to allow multiple reads
260
+ const jsonResponse = response.clone().json();
261
+ return resolveResponse(
262
+ response,
263
+ response.ok ? jsonResponse : Promise.reject(await jsonResponse)
264
+ );
265
+ }
267
266
 
268
- if (isJSON) {
267
+ const jsonResponse = new Promise<TData>((resolve, reject) =>
269
268
  // attempt to parse JSON for successful responses, otherwise fail
270
- if (response.ok) return response.json();
269
+ response.clone().text().then(JSON.parse).then(resolve, reject)
270
+ );
271
271
 
272
- const errorFallbackResponse = response.clone(); // clone to allow multiple reads
272
+ return resolveResponse(
273
+ response,
274
+ response.ok ? jsonResponse : Promise.reject(await jsonResponse)
275
+ );
276
+ }
273
277
 
274
- return response.json().catch(() => {
275
- if (process.env.NODE_ENV === 'development') {
276
- console.warn(
277
- 'Failed to parse response body as JSON. Falling back to .text()'
278
- );
279
- }
280
- // falling back to .text() when necessary for error messages
281
- return errorFallbackResponse.text();
278
+ function isJsonResponse(response: Response) {
279
+ const contentType = response.headers.get('Content-Type')?.toLowerCase();
280
+ return contentType?.includes('/json') || contentType?.includes('+json');
281
+ }
282
+
283
+ function resolveResponse<TData, TError>(
284
+ error: Error
285
+ ): Promise<RequestFnResponse<TData, TError>>;
286
+ function resolveResponse<TData, TError>(
287
+ responseToReturn: Response,
288
+ responsePromise: Promise<TData>
289
+ ): Promise<RequestFnResponse<TData, TError>>;
290
+ function resolveResponse<TData, TError>(
291
+ responseToReturn: Response | Error,
292
+ responsePromise?: Promise<TData>
293
+ ): Promise<RequestFnResponse<TData, TError>> {
294
+ if (!responsePromise)
295
+ return Promise.reject({
296
+ error: responseToReturn,
297
+ response: undefined,
298
+ data: undefined,
282
299
  });
283
- }
284
300
 
285
- return response.text() as Promise<T>;
301
+ return responsePromise
302
+ .then(
303
+ (data) =>
304
+ ({ data, response: responseToReturn }) as RequestFnResponse<
305
+ TData,
306
+ TError
307
+ >
308
+ )
309
+ .catch(
310
+ (error) =>
311
+ ({ error, response: responseToReturn }) as RequestFnResponse<
312
+ TData,
313
+ TError
314
+ >
315
+ );
286
316
  }
287
317
 
288
318
  // To have definitely typed headers without a conversion to stings
@@ -324,7 +354,7 @@ export interface RequestFnPayload {
324
354
  * Base URL to use for the request
325
355
  * @example 'https://api.example.com'
326
356
  */
327
- baseUrl: string | undefined;
357
+ baseUrl?: string;
328
358
 
329
359
  /**
330
360
  * OpenAPI parameters
@@ -370,7 +400,26 @@ export interface RequestFnOptions {
370
400
  fetch?: typeof fetch;
371
401
  }
372
402
 
373
- export type RequestFn<T> = typeof requestFn<T>;
403
+ export type RequestFn<TData, TError> = typeof requestFn<TData, TError>;
404
+
405
+ export type RequestFnResponse<TData, TError> =
406
+ | {
407
+ data?: TData;
408
+ response: Response;
409
+ error?: never;
410
+ }
411
+ | {
412
+ // server error
413
+ error?: TError | Error;
414
+ response: Response;
415
+ data?: never;
416
+ }
417
+ | {
418
+ // network error
419
+ error?: Error;
420
+ data?: never;
421
+ response?: never;
422
+ };
374
423
 
375
424
  type WithRequired<T, K extends keyof T> = T & {
376
425
  [_ in K]: {};
@@ -0,0 +1,8 @@
1
+ import { RequestFnResponse } from './requestFn.js';
2
+
3
+ export function requestFnResponseResolver<TData, TError>(
4
+ requestFnResponse: RequestFnResponse<TData, TError>
5
+ ): TData | undefined {
6
+ if ('error' in requestFnResponse) throw requestFnResponse.error;
7
+ return requestFnResponse.data;
8
+ }
@@ -45,7 +45,6 @@ describe('urlSerializer', () => {
45
45
  expect(
46
46
  urlSerializer(
47
47
  { url: '/users/{userId}/posts', method: 'get' },
48
- // @ts-expect-error - Missing baseUrl fallback
49
48
  {
50
49
  parameters: { path: { userId: '123' } },
51
50
  }
@@ -2,46 +2,41 @@
2
2
 
3
3
  import type { QueryClient } from '@tanstack/query-core';
4
4
  import type { UseQueryOptions } from '@tanstack/react-query';
5
- import type { QraftClientOptions } from '../qraftAPIClient.js';
5
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
6
6
  import type { ServiceOperationQueryKey } from '../service-operation/ServiceOperationKey.js';
7
7
  import type { OperationSchema } from './requestFn.js';
8
- import { useContext } from 'react';
9
- import { QraftContext } from '../QraftContext.js';
10
8
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
11
9
  import { composeQueryKey } from './composeQueryKey.js';
10
+ import { requestFnResponseResolver } from './requestFnResponseResolver.js';
12
11
  import { shelfMerge } from './shelfMerge.js';
13
- import { useQueryClient } from './useQueryClient.js';
14
12
 
15
13
  /**
16
14
  * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
17
15
  * @internal
18
16
  */
19
17
  export function useComposeUseQueryOptions(
20
- qraftOptions: QraftClientOptions | undefined,
18
+ qraftOptions: CreateAPIQueryClientOptions,
21
19
  schema: OperationSchema,
22
20
  args: UseQueryOptionsArgs,
23
21
  infinite: boolean
24
22
  ): never {
25
- const [parameters, options, queryClient] = args;
26
-
27
- const contextValue = useContext(qraftOptions?.context ?? QraftContext);
23
+ const [parameters, options] = args;
28
24
 
29
25
  const queryFn =
30
26
  options?.queryFn ??
31
27
  // @ts-expect-error - Too complex to type
32
28
  function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
33
- if (!contextValue?.requestFn)
34
- throw new Error(`QraftContext.requestFn not found`);
35
-
36
- return contextValue.requestFn(schema, {
37
- // @ts-expect-error - Too complex to type
38
- parameters: infinite
39
- ? (shelfMerge(2, queryParams, pageParam) as never)
40
- : queryParams,
41
- baseUrl: contextValue.baseUrl,
42
- signal,
43
- meta,
44
- });
29
+ return qraftOptions
30
+ .requestFn(schema, {
31
+ // @ts-expect-error - Too complex to type
32
+ parameters: infinite
33
+ ? (shelfMerge(2, queryParams, pageParam) as never)
34
+ : queryParams,
35
+ baseUrl: qraftOptions.baseUrl,
36
+ signal,
37
+ meta,
38
+ })
39
+ .then(requestFnResponseResolver, requestFnResponseResolver);
45
40
  };
46
41
 
47
42
  const queryKey = Array.isArray(parameters)
@@ -50,10 +45,7 @@ export function useComposeUseQueryOptions(
50
45
  ? composeInfiniteQueryKey(schema, parameters)
51
46
  : composeQueryKey(schema, parameters);
52
47
 
53
- return [
54
- { ...options, queryFn, queryKey },
55
- useQueryClient(qraftOptions, queryClient),
56
- ] as never;
48
+ return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;
57
49
  }
58
50
 
59
51
  type UseQueryOptionsArgs = [