@openapi-qraft/react 2.0.0-next.1 → 2.0.0-next.11

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 (349) hide show
  1. package/CHANGELOG.md +69 -1
  2. package/dist/cjs/callbacks/cancelQueries.cjs.map +1 -1
  3. package/dist/cjs/callbacks/fetchInfiniteQuery.cjs.map +1 -1
  4. package/dist/cjs/callbacks/fetchQuery.cjs.map +1 -1
  5. package/dist/cjs/callbacks/getInfiniteQueryData.cjs.map +1 -1
  6. package/dist/cjs/callbacks/getInfiniteQueryKey.cjs.map +1 -1
  7. package/dist/cjs/callbacks/getInfiniteQueryState.cjs.map +1 -1
  8. package/dist/cjs/callbacks/getMutationKey.cjs.map +1 -1
  9. package/dist/cjs/callbacks/getQueriesData.cjs.map +1 -1
  10. package/dist/cjs/callbacks/getQueryData.cjs.map +1 -1
  11. package/dist/cjs/callbacks/getQueryKey.cjs.map +1 -1
  12. package/dist/cjs/callbacks/getQueryState.cjs.map +1 -1
  13. package/dist/cjs/callbacks/invalidateQueries.cjs.map +1 -1
  14. package/dist/cjs/callbacks/isFetching.cjs.map +1 -1
  15. package/dist/cjs/callbacks/isMutating.cjs.map +1 -1
  16. package/dist/cjs/callbacks/operationInvokeFn.cjs.map +1 -1
  17. package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs.map +1 -1
  18. package/dist/cjs/callbacks/prefetchQuery.cjs.map +1 -1
  19. package/dist/cjs/callbacks/refetchQueries.cjs.map +1 -1
  20. package/dist/cjs/callbacks/removeQueries.cjs.map +1 -1
  21. package/dist/cjs/callbacks/resetQueries.cjs.map +1 -1
  22. package/dist/cjs/callbacks/setInfiniteQueryData.cjs.map +1 -1
  23. package/dist/cjs/callbacks/setQueriesData.cjs.map +1 -1
  24. package/dist/cjs/callbacks/setQueryData.cjs.map +1 -1
  25. package/dist/cjs/callbacks/useInfiniteQuery.cjs.map +1 -1
  26. package/dist/cjs/callbacks/useIsFetching.cjs.map +1 -1
  27. package/dist/cjs/callbacks/useIsMutating.cjs.map +1 -1
  28. package/dist/cjs/callbacks/useMutation.cjs.map +1 -1
  29. package/dist/cjs/callbacks/useMutationState.cjs.map +1 -1
  30. package/dist/cjs/callbacks/useQueries.cjs +1 -0
  31. package/dist/cjs/callbacks/useQueries.cjs.map +1 -1
  32. package/dist/cjs/callbacks/useQuery.cjs.map +1 -1
  33. package/dist/cjs/callbacks/useSuspenseInfiniteQuery.cjs.map +1 -1
  34. package/dist/cjs/callbacks/useSuspenseQueries.cjs +1 -0
  35. package/dist/cjs/callbacks/useSuspenseQueries.cjs.map +1 -1
  36. package/dist/cjs/callbacks/useSuspenseQuery.cjs.map +1 -1
  37. package/dist/cjs/lib/callQueryClientFetchMethod.cjs +2 -3
  38. package/dist/cjs/lib/callQueryClientFetchMethod.cjs.map +1 -1
  39. package/dist/cjs/lib/composeBaseQueryKey.cjs.map +1 -1
  40. package/dist/cjs/lib/composeInfiniteQueryKey.cjs.map +1 -1
  41. package/dist/cjs/lib/composeMutationKey.cjs.map +1 -1
  42. package/dist/cjs/lib/composeQueryKey.cjs.map +1 -1
  43. package/dist/cjs/lib/requestFn.cjs +67 -64
  44. package/dist/cjs/lib/requestFn.cjs.map +1 -1
  45. package/dist/cjs/lib/responseUtils.cjs +44 -0
  46. package/dist/cjs/lib/responseUtils.cjs.map +1 -0
  47. package/dist/cjs/lib/useComposeUseQueryOptions.cjs +1 -2
  48. package/dist/cjs/lib/useComposeUseQueryOptions.cjs.map +1 -1
  49. package/dist/cjs/qraftAPIClient.cjs +1 -1
  50. package/dist/cjs/qraftAPIClient.cjs.map +1 -1
  51. package/dist/cjs/qraftPredefinedParametersRequestFn.cjs +39 -0
  52. package/dist/cjs/qraftPredefinedParametersRequestFn.cjs.map +1 -0
  53. package/dist/cjs/unstable__responseUtils.cjs +9 -0
  54. package/dist/cjs/unstable__responseUtils.cjs.map +1 -0
  55. package/dist/esm/callbacks/cancelQueries.js.map +1 -1
  56. package/dist/esm/callbacks/fetchInfiniteQuery.js.map +1 -1
  57. package/dist/esm/callbacks/fetchQuery.js.map +1 -1
  58. package/dist/esm/callbacks/getInfiniteQueryData.js.map +1 -1
  59. package/dist/esm/callbacks/getInfiniteQueryKey.js.map +1 -1
  60. package/dist/esm/callbacks/getInfiniteQueryState.js.map +1 -1
  61. package/dist/esm/callbacks/getMutationKey.js.map +1 -1
  62. package/dist/esm/callbacks/getQueriesData.js.map +1 -1
  63. package/dist/esm/callbacks/getQueryData.js.map +1 -1
  64. package/dist/esm/callbacks/getQueryKey.js.map +1 -1
  65. package/dist/esm/callbacks/getQueryState.js.map +1 -1
  66. package/dist/esm/callbacks/invalidateQueries.js.map +1 -1
  67. package/dist/esm/callbacks/isFetching.js.map +1 -1
  68. package/dist/esm/callbacks/isMutating.js.map +1 -1
  69. package/dist/esm/callbacks/operationInvokeFn.js.map +1 -1
  70. package/dist/esm/callbacks/prefetchInfiniteQuery.js.map +1 -1
  71. package/dist/esm/callbacks/prefetchQuery.js.map +1 -1
  72. package/dist/esm/callbacks/refetchQueries.js.map +1 -1
  73. package/dist/esm/callbacks/removeQueries.js.map +1 -1
  74. package/dist/esm/callbacks/resetQueries.js.map +1 -1
  75. package/dist/esm/callbacks/setInfiniteQueryData.js.map +1 -1
  76. package/dist/esm/callbacks/setQueriesData.js.map +1 -1
  77. package/dist/esm/callbacks/setQueryData.js.map +1 -1
  78. package/dist/esm/callbacks/useInfiniteQuery.js.map +1 -1
  79. package/dist/esm/callbacks/useIsFetching.js.map +1 -1
  80. package/dist/esm/callbacks/useIsMutating.js.map +1 -1
  81. package/dist/esm/callbacks/useMutation.js.map +1 -1
  82. package/dist/esm/callbacks/useMutationState.js.map +1 -1
  83. package/dist/esm/callbacks/useQueries.js +1 -0
  84. package/dist/esm/callbacks/useQueries.js.map +1 -1
  85. package/dist/esm/callbacks/useQuery.js.map +1 -1
  86. package/dist/esm/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  87. package/dist/esm/callbacks/useSuspenseQueries.js +1 -0
  88. package/dist/esm/callbacks/useSuspenseQueries.js.map +1 -1
  89. package/dist/esm/callbacks/useSuspenseQuery.js.map +1 -1
  90. package/dist/esm/lib/callQueryClientFetchMethod.js +2 -3
  91. package/dist/esm/lib/callQueryClientFetchMethod.js.map +1 -1
  92. package/dist/esm/lib/composeBaseQueryKey.js.map +1 -1
  93. package/dist/esm/lib/composeInfiniteQueryKey.js.map +1 -1
  94. package/dist/esm/lib/composeMutationKey.js.map +1 -1
  95. package/dist/esm/lib/composeQueryKey.js.map +1 -1
  96. package/dist/esm/lib/requestFn.js +66 -63
  97. package/dist/esm/lib/requestFn.js.map +1 -1
  98. package/dist/esm/lib/responseUtils.js +41 -0
  99. package/dist/esm/lib/responseUtils.js.map +1 -0
  100. package/dist/esm/lib/useComposeUseQueryOptions.js +1 -2
  101. package/dist/esm/lib/useComposeUseQueryOptions.js.map +1 -1
  102. package/dist/esm/qraftAPIClient.js +1 -1
  103. package/dist/esm/qraftAPIClient.js.map +1 -1
  104. package/dist/esm/qraftPredefinedParametersRequestFn.js +37 -0
  105. package/dist/esm/qraftPredefinedParametersRequestFn.js.map +1 -0
  106. package/dist/esm/unstable__responseUtils.js +2 -0
  107. package/dist/esm/unstable__responseUtils.js.map +1 -0
  108. package/dist/types/callbacks/cancelQueries.d.ts +3 -3
  109. package/dist/types/callbacks/cancelQueries.d.ts.map +1 -1
  110. package/dist/types/callbacks/fetchInfiniteQuery.d.ts +3 -2
  111. package/dist/types/callbacks/fetchInfiniteQuery.d.ts.map +1 -1
  112. package/dist/types/callbacks/fetchQuery.d.ts +3 -2
  113. package/dist/types/callbacks/fetchQuery.d.ts.map +1 -1
  114. package/dist/types/callbacks/getInfiniteQueryData.d.ts +2 -3
  115. package/dist/types/callbacks/getInfiniteQueryData.d.ts.map +1 -1
  116. package/dist/types/callbacks/getInfiniteQueryKey.d.ts +4 -4
  117. package/dist/types/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  118. package/dist/types/callbacks/getInfiniteQueryState.d.ts +3 -3
  119. package/dist/types/callbacks/getInfiniteQueryState.d.ts.map +1 -1
  120. package/dist/types/callbacks/getMutationKey.d.ts +3 -3
  121. package/dist/types/callbacks/getMutationKey.d.ts.map +1 -1
  122. package/dist/types/callbacks/getQueriesData.d.ts +3 -3
  123. package/dist/types/callbacks/getQueriesData.d.ts.map +1 -1
  124. package/dist/types/callbacks/getQueryData.d.ts +2 -3
  125. package/dist/types/callbacks/getQueryData.d.ts.map +1 -1
  126. package/dist/types/callbacks/getQueryKey.d.ts +3 -3
  127. package/dist/types/callbacks/getQueryKey.d.ts.map +1 -1
  128. package/dist/types/callbacks/getQueryState.d.ts +3 -3
  129. package/dist/types/callbacks/getQueryState.d.ts.map +1 -1
  130. package/dist/types/callbacks/invalidateQueries.d.ts +3 -3
  131. package/dist/types/callbacks/invalidateQueries.d.ts.map +1 -1
  132. package/dist/types/callbacks/isFetching.d.ts +3 -3
  133. package/dist/types/callbacks/isFetching.d.ts.map +1 -1
  134. package/dist/types/callbacks/isMutating.d.ts +3 -3
  135. package/dist/types/callbacks/isMutating.d.ts.map +1 -1
  136. package/dist/types/callbacks/operationInvokeFn.d.ts +1 -3
  137. package/dist/types/callbacks/operationInvokeFn.d.ts.map +1 -1
  138. package/dist/types/callbacks/prefetchInfiniteQuery.d.ts +3 -2
  139. package/dist/types/callbacks/prefetchInfiniteQuery.d.ts.map +1 -1
  140. package/dist/types/callbacks/prefetchQuery.d.ts +3 -2
  141. package/dist/types/callbacks/prefetchQuery.d.ts.map +1 -1
  142. package/dist/types/callbacks/refetchQueries.d.ts +3 -3
  143. package/dist/types/callbacks/refetchQueries.d.ts.map +1 -1
  144. package/dist/types/callbacks/removeQueries.d.ts +3 -3
  145. package/dist/types/callbacks/removeQueries.d.ts.map +1 -1
  146. package/dist/types/callbacks/resetQueries.d.ts +3 -3
  147. package/dist/types/callbacks/resetQueries.d.ts.map +1 -1
  148. package/dist/types/callbacks/setInfiniteQueryData.d.ts +1 -2
  149. package/dist/types/callbacks/setInfiniteQueryData.d.ts.map +1 -1
  150. package/dist/types/callbacks/setQueriesData.d.ts +3 -3
  151. package/dist/types/callbacks/setQueriesData.d.ts.map +1 -1
  152. package/dist/types/callbacks/setQueryData.d.ts +1 -2
  153. package/dist/types/callbacks/setQueryData.d.ts.map +1 -1
  154. package/dist/types/callbacks/useInfiniteQuery.d.ts +2 -3
  155. package/dist/types/callbacks/useInfiniteQuery.d.ts.map +1 -1
  156. package/dist/types/callbacks/useIsFetching.d.ts +2 -3
  157. package/dist/types/callbacks/useIsFetching.d.ts.map +1 -1
  158. package/dist/types/callbacks/useIsMutating.d.ts +2 -3
  159. package/dist/types/callbacks/useIsMutating.d.ts.map +1 -1
  160. package/dist/types/callbacks/useMutation.d.ts +2 -3
  161. package/dist/types/callbacks/useMutation.d.ts.map +1 -1
  162. package/dist/types/callbacks/useMutationState.d.ts +2 -3
  163. package/dist/types/callbacks/useMutationState.d.ts.map +1 -1
  164. package/dist/types/callbacks/useQueries.d.ts +3 -3
  165. package/dist/types/callbacks/useQueries.d.ts.map +1 -1
  166. package/dist/types/callbacks/useQuery.d.ts +2 -3
  167. package/dist/types/callbacks/useQuery.d.ts.map +1 -1
  168. package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts +2 -3
  169. package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
  170. package/dist/types/callbacks/useSuspenseQueries.d.ts +3 -3
  171. package/dist/types/callbacks/useSuspenseQueries.d.ts.map +1 -1
  172. package/dist/types/callbacks/useSuspenseQuery.d.ts +2 -3
  173. package/dist/types/callbacks/useSuspenseQuery.d.ts.map +1 -1
  174. package/dist/types/index.d.ts +2 -4
  175. package/dist/types/index.d.ts.map +1 -1
  176. package/dist/types/lib/callQueryClientFetchMethod.d.ts.map +1 -1
  177. package/dist/types/lib/composeBaseQueryKey.d.ts +1 -1
  178. package/dist/types/lib/composeBaseQueryKey.d.ts.map +1 -1
  179. package/dist/types/lib/composeInfiniteQueryKey.d.ts +1 -1
  180. package/dist/types/lib/composeInfiniteQueryKey.d.ts.map +1 -1
  181. package/dist/types/lib/composeMutationKey.d.ts +1 -1
  182. package/dist/types/lib/composeMutationKey.d.ts.map +1 -1
  183. package/dist/types/lib/composeQueryKey.d.ts +1 -1
  184. package/dist/types/lib/composeQueryKey.d.ts.map +1 -1
  185. package/dist/types/lib/requestFn.d.ts +21 -75
  186. package/dist/types/lib/requestFn.d.ts.map +1 -1
  187. package/dist/types/lib/responseUtils.d.ts +13 -0
  188. package/dist/types/lib/responseUtils.d.ts.map +1 -0
  189. package/dist/types/lib/useComposeUseQueryOptions.d.ts.map +1 -1
  190. package/dist/types/migrate-to-v2-codemod.d.ts +3 -0
  191. package/dist/types/migrate-to-v2-codemod.d.ts.map +1 -0
  192. package/dist/types/qraftAPIClient.d.ts +10 -6
  193. package/dist/types/qraftAPIClient.d.ts.map +1 -1
  194. package/dist/types/qraftPredefinedParametersRequestFn.d.ts +1 -1
  195. package/dist/types/qraftPredefinedParametersRequestFn.d.ts.map +1 -1
  196. package/dist/types/unstable__responseUtils.d.ts +2 -0
  197. package/dist/types/unstable__responseUtils.d.ts.map +1 -0
  198. package/package.json +28 -16
  199. package/src/callbacks/cancelQueries.ts +7 -3
  200. package/src/callbacks/fetchInfiniteQuery.ts +4 -2
  201. package/src/callbacks/fetchQuery.ts +8 -2
  202. package/src/callbacks/getInfiniteQueryData.ts +5 -3
  203. package/src/callbacks/getInfiniteQueryKey.ts +9 -5
  204. package/src/callbacks/getInfiniteQueryState.ts +8 -4
  205. package/src/callbacks/getMutationKey.ts +8 -4
  206. package/src/callbacks/getQueriesData.ts +11 -3
  207. package/src/callbacks/getQueryData.ts +9 -3
  208. package/src/callbacks/getQueryKey.ts +11 -3
  209. package/src/callbacks/getQueryState.ts +11 -3
  210. package/src/callbacks/invalidateQueries.ts +7 -3
  211. package/src/callbacks/isFetching.ts +7 -3
  212. package/src/callbacks/isMutating.ts +8 -3
  213. package/src/callbacks/operationInvokeFn.ts +6 -3
  214. package/src/callbacks/prefetchInfiniteQuery.ts +4 -2
  215. package/src/callbacks/prefetchQuery.ts +8 -2
  216. package/src/callbacks/refetchQueries.ts +7 -3
  217. package/src/callbacks/removeQueries.ts +7 -3
  218. package/src/callbacks/resetQueries.ts +7 -3
  219. package/src/callbacks/setInfiniteQueryData.ts +4 -2
  220. package/src/callbacks/setQueriesData.ts +7 -3
  221. package/src/callbacks/setQueryData.ts +4 -2
  222. package/src/callbacks/useInfiniteQuery.ts +10 -3
  223. package/src/callbacks/useIsFetching.ts +5 -3
  224. package/src/callbacks/useIsMutating.ts +7 -4
  225. package/src/callbacks/useMutation.ts +8 -5
  226. package/src/callbacks/useMutationState.ts +7 -4
  227. package/src/callbacks/useQueries.ts +12 -3
  228. package/src/callbacks/useQuery.ts +10 -3
  229. package/src/callbacks/useSuspenseInfiniteQuery.ts +7 -4
  230. package/src/callbacks/useSuspenseQueries.ts +9 -4
  231. package/src/callbacks/useSuspenseQuery.ts +10 -3
  232. package/src/index.ts +9 -10
  233. package/src/lib/callQueryClientFetchMethod.ts +13 -11
  234. package/src/lib/composeBaseQueryKey.ts +1 -1
  235. package/src/lib/composeInfiniteQueryKey.ts +1 -1
  236. package/src/lib/composeMutationKey.ts +1 -1
  237. package/src/lib/composeQueryKey.ts +1 -1
  238. package/src/lib/requestFn.ts +112 -222
  239. package/src/lib/responseUtils.ts +77 -0
  240. package/src/lib/useComposeUseQueryOptions.ts +1 -2
  241. package/src/migrate-to-v2-codemod.ts +118 -0
  242. package/src/qraftAPIClient.ts +74 -11
  243. package/src/qraftPredefinedParametersRequestFn.ts +17 -8
  244. package/src/unstable__responseUtils.ts +1 -0
  245. package/dist/types/lib/AreAllOptional.d.ts +0 -4
  246. package/dist/types/lib/AreAllOptional.d.ts.map +0 -1
  247. package/dist/types/lib/PartialParameters.type.d.ts +0 -13
  248. package/dist/types/lib/PartialParameters.type.d.ts.map +0 -1
  249. package/dist/types/service-operation/OperationInfiniteData.d.ts +0 -4
  250. package/dist/types/service-operation/OperationInfiniteData.d.ts.map +0 -1
  251. package/dist/types/service-operation/QueryFilters.d.ts +0 -123
  252. package/dist/types/service-operation/QueryFilters.d.ts.map +0 -1
  253. package/dist/types/service-operation/ServiceOperation.d.ts +0 -53
  254. package/dist/types/service-operation/ServiceOperation.d.ts.map +0 -1
  255. package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts +0 -9
  256. package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts.map +0 -1
  257. package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts +0 -61
  258. package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts.map +0 -1
  259. package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts +0 -58
  260. package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts.map +0 -1
  261. package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts +0 -10
  262. package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts.map +0 -1
  263. package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts +0 -17
  264. package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts.map +0 -1
  265. package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts +0 -9
  266. package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts.map +0 -1
  267. package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts +0 -11
  268. package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts.map +0 -1
  269. package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts +0 -15
  270. package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts.map +0 -1
  271. package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts +0 -9
  272. package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts.map +0 -1
  273. package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts +0 -9
  274. package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts.map +0 -1
  275. package/dist/types/service-operation/ServiceOperationKey.d.ts +0 -16
  276. package/dist/types/service-operation/ServiceOperationKey.d.ts.map +0 -1
  277. package/dist/types/service-operation/ServiceOperationMutationFn.d.ts +0 -30
  278. package/dist/types/service-operation/ServiceOperationMutationFn.d.ts.map +0 -1
  279. package/dist/types/service-operation/ServiceOperationQueryFn.d.ts +0 -37
  280. package/dist/types/service-operation/ServiceOperationQueryFn.d.ts.map +0 -1
  281. package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts +0 -9
  282. package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts.map +0 -1
  283. package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts +0 -9
  284. package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts.map +0 -1
  285. package/dist/types/service-operation/ServiceOperationResetQueries.d.ts +0 -9
  286. package/dist/types/service-operation/ServiceOperationResetQueries.d.ts.map +0 -1
  287. package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts +0 -10
  288. package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts.map +0 -1
  289. package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts +0 -9
  290. package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts.map +0 -1
  291. package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts +0 -9
  292. package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts.map +0 -1
  293. package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts +0 -15
  294. package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts.map +0 -1
  295. package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts +0 -9
  296. package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts.map +0 -1
  297. package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts +0 -9
  298. package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts.map +0 -1
  299. package/dist/types/service-operation/ServiceOperationUseMutation.d.ts +0 -28
  300. package/dist/types/service-operation/ServiceOperationUseMutation.d.ts.map +0 -1
  301. package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts +0 -46
  302. package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts.map +0 -1
  303. package/dist/types/service-operation/ServiceOperationUseQueries.d.ts +0 -26
  304. package/dist/types/service-operation/ServiceOperationUseQueries.d.ts.map +0 -1
  305. package/dist/types/service-operation/ServiceOperationUseQuery.d.ts +0 -13
  306. package/dist/types/service-operation/ServiceOperationUseQuery.d.ts.map +0 -1
  307. package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts +0 -12
  308. package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts.map +0 -1
  309. package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts +0 -25
  310. package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts.map +0 -1
  311. package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts +0 -10
  312. package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts.map +0 -1
  313. package/dist/types/service-operation/index.d.ts +0 -2
  314. package/dist/types/service-operation/index.d.ts.map +0 -1
  315. package/src/lib/AreAllOptional.ts +0 -8
  316. package/src/lib/PartialParameters.type.ts +0 -12
  317. package/src/service-operation/OperationInfiniteData.ts +0 -7
  318. package/src/service-operation/QueryFilters.ts +0 -226
  319. package/src/service-operation/ServiceOperation.ts +0 -85
  320. package/src/service-operation/ServiceOperationCancelQueries.ts +0 -19
  321. package/src/service-operation/ServiceOperationFetchInfiniteQuery.ts +0 -156
  322. package/src/service-operation/ServiceOperationFetchQuery.ts +0 -111
  323. package/src/service-operation/ServiceOperationGetInfiniteQueryData.ts +0 -15
  324. package/src/service-operation/ServiceOperationGetQueriesData.ts +0 -35
  325. package/src/service-operation/ServiceOperationGetQueryData.ts +0 -14
  326. package/src/service-operation/ServiceOperationGetQueryState.ts +0 -21
  327. package/src/service-operation/ServiceOperationInvalidateQueries.ts +0 -37
  328. package/src/service-operation/ServiceOperationIsFetchingQueries.ts +0 -18
  329. package/src/service-operation/ServiceOperationIsMutatingQueries.ts +0 -26
  330. package/src/service-operation/ServiceOperationKey.ts +0 -20
  331. package/src/service-operation/ServiceOperationMutationFn.ts +0 -49
  332. package/src/service-operation/ServiceOperationQueryFn.ts +0 -71
  333. package/src/service-operation/ServiceOperationRefetchQueries.ts +0 -19
  334. package/src/service-operation/ServiceOperationRemoveQueries.ts +0 -18
  335. package/src/service-operation/ServiceOperationResetQueries.ts +0 -19
  336. package/src/service-operation/ServiceOperationSetInfiniteQueryData.ts +0 -18
  337. package/src/service-operation/ServiceOperationSetQueriesData.ts +0 -25
  338. package/src/service-operation/ServiceOperationSetQueryData.ts +0 -14
  339. package/src/service-operation/ServiceOperationUseInfiniteQuery.ts +0 -77
  340. package/src/service-operation/ServiceOperationUseIsFetchingQueries.ts +0 -18
  341. package/src/service-operation/ServiceOperationUseIsMutating.ts +0 -26
  342. package/src/service-operation/ServiceOperationUseMutation.ts +0 -74
  343. package/src/service-operation/ServiceOperationUseMutationState.ts +0 -107
  344. package/src/service-operation/ServiceOperationUseQueries.ts +0 -57
  345. package/src/service-operation/ServiceOperationUseQuery.ts +0 -50
  346. package/src/service-operation/ServiceOperationUseSuspenseInfiniteQuery.ts +0 -43
  347. package/src/service-operation/ServiceOperationUseSuspenseQueries.ts +0 -55
  348. package/src/service-operation/ServiceOperationUseSuspenseQuery.ts +0 -26
  349. package/src/service-operation/index.ts +0 -4
@@ -1,3 +1,12 @@
1
+ import type {
2
+ HeadersOptions,
3
+ OperationSchema,
4
+ RequestFnInfo,
5
+ RequestFnOptions,
6
+ RequestFnResponse,
7
+ } from '@openapi-qraft/tanstack-query-react-types';
8
+ import { processResponse, resolveResponse } from './responseUtils.js';
9
+
1
10
  /**
2
11
  * This function is used to make a request to a specified endpoint.
3
12
  *
@@ -25,7 +34,7 @@ export async function requestFn<TData, TError>(
25
34
 
26
35
  /**
27
36
  * This function is used to make a request to a specified endpoint.
28
- * It's needed to create a custom `requestFn` with a custom `urlSerializer`
37
+ * It's necessary to create a custom `requestFn` with a custom `urlSerializer`
29
38
  * and `bodySerializer`, with the tree-shaking of the default `requestFn`
30
39
  * and its serializers.
31
40
  *
@@ -46,24 +55,18 @@ export async function baseRequestFn<TData, TError>(
46
55
  ): Promise<RequestFnResponse<TData, TError>> {
47
56
  const { parameters, headers, body, ...requestInfoRest } = requestInfo;
48
57
 
49
- const requestBody = options.bodySerializer(requestSchema, requestInfo);
58
+ const requestPayload = options.bodySerializer(requestSchema, body);
50
59
 
51
60
  const baseFetch = options.fetch ?? fetch;
52
61
 
53
62
  return baseFetch(options.urlSerializer(requestSchema, requestInfo), {
54
63
  method: requestSchema.method.toUpperCase(),
55
- body: requestBody,
64
+ body: requestPayload?.body,
56
65
  headers: mergeHeaders(
57
- {
58
- Accept: 'application/json',
59
- 'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
60
- },
66
+ { Accept: 'application/json' },
67
+ requestPayload?.headers,
61
68
  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
69
+ parameters?.header
67
70
  ),
68
71
  ...requestInfoRest,
69
72
  })
@@ -88,7 +91,7 @@ export async function baseRequestFn<TData, TError>(
88
91
  */
89
92
  export function urlSerializer(
90
93
  schema: OperationSchema,
91
- info: RequestFnPayload
94
+ info: Pick<RequestFnInfo, 'baseUrl' | 'parameters'>
92
95
  ): string {
93
96
  const path = schema.url.replace(
94
97
  /{(.*?)}/g,
@@ -173,47 +176,101 @@ export function mergeHeaders(...allHeaders: (HeadersOptions | undefined)[]) {
173
176
 
174
177
  export function bodySerializer(
175
178
  schema: OperationSchema,
176
- info: RequestFnPayload
179
+ body: RequestFnInfo['body']
177
180
  ) {
178
- if (info.body === undefined) return;
179
-
180
181
  if (
181
182
  schema.method === 'get' ||
182
183
  schema.method === 'head' ||
183
184
  schema.method === 'options'
184
185
  )
185
- return;
186
+ return undefined;
187
+
188
+ if (body === undefined || body === null) return undefined;
189
+
190
+ if (typeof body === 'string') {
191
+ return {
192
+ body,
193
+ headers: {
194
+ 'Content-Type':
195
+ // prefer text/* media type
196
+ schema.mediaType?.find((mediaType) => mediaType.includes('text/')) ??
197
+ // prefer JSON media type, assume that body is serialized as JSON
198
+ schema.mediaType?.find((mediaType) => mediaType.includes('/json')) ??
199
+ 'text/plain',
200
+ },
201
+ };
202
+ }
186
203
 
187
- if (schema.mediaType?.includes('/form-data'))
188
- return getRequestBodyFormData(info);
204
+ if (body instanceof FormData) {
205
+ return {
206
+ body,
207
+ headers: {
208
+ // remove `Content-Type` if the serialized body is FormData;
209
+ // the browser will correctly set Content-Type & boundary expression
210
+ 'Content-Type': null,
211
+ },
212
+ };
213
+ }
189
214
 
190
- if (
191
- !schema.mediaType?.includes('/json') &&
192
- (typeof info.body === 'string' ||
193
- info.body instanceof Blob ||
194
- info.body instanceof FormData)
195
- ) {
196
- return info.body;
215
+ if (body instanceof Blob) {
216
+ return {
217
+ body,
218
+ headers: {
219
+ 'Content-Type':
220
+ body.type ||
221
+ schema.mediaType?.find(
222
+ (mediaType) =>
223
+ !(
224
+ mediaType.includes('text/') &&
225
+ mediaType.includes('/form-data') &&
226
+ mediaType.includes('/json')
227
+ )
228
+ ) ||
229
+ 'application/octet-stream',
230
+ },
231
+ };
197
232
  }
198
233
 
199
- return JSON.stringify(info.body);
234
+ let jsonMediaType: string | null = null;
235
+ let formDataMediaType: string | null = null;
236
+
237
+ if (schema.mediaType) {
238
+ for (let i = 0; i < schema.mediaType.length; i++) {
239
+ const mediaType = schema.mediaType[i];
240
+ if (mediaType.includes('/json')) jsonMediaType = mediaType;
241
+ else if (mediaType.includes('/form-data')) formDataMediaType = mediaType;
242
+ }
243
+ }
244
+
245
+ if (formDataMediaType) {
246
+ if (
247
+ !jsonMediaType ||
248
+ // Prefer FormData serialization if one of the fields is a Blob
249
+ Object.values(body).some((value) => value instanceof Blob)
250
+ ) {
251
+ return {
252
+ body: getRequestBodyFormData(body),
253
+ headers: {
254
+ // remove `Content-Type` if the serialized body is FormData;
255
+ // the browser will correctly set Content-Type & boundary expression
256
+ 'Content-Type': null,
257
+ },
258
+ };
259
+ }
260
+ }
261
+
262
+ return {
263
+ body: JSON.stringify(body),
264
+ headers: {
265
+ 'Content-Type': jsonMediaType ?? 'application/json',
266
+ },
267
+ };
200
268
  }
201
269
 
202
- function getRequestBodyFormData({
203
- body,
204
- }: Pick<RequestFnPayload, 'body'>): FormData | undefined {
270
+ function getRequestBodyFormData(
271
+ body: NonNullable<RequestFnInfo['body']>
272
+ ): FormData {
205
273
  if (body instanceof FormData) return body;
206
- if (body === null) return;
207
-
208
- if (body instanceof Blob) throw new Error('Blob not supported in form-data');
209
- if (body instanceof ArrayBuffer)
210
- throw new Error('ArrayBuffer not supported in form-data');
211
- if (body instanceof URLSearchParams)
212
- throw new Error('URLSearchParams not supported in form-data');
213
- if (body instanceof ReadableStream)
214
- throw new Error('ReadableStream not supported in form-data');
215
- if (typeof body === 'string')
216
- throw new Error('String not supported in form-data');
217
274
  if (typeof body !== 'object')
218
275
  throw new Error(`Unsupported body type ${typeof body} in form-data.`);
219
276
 
@@ -240,187 +297,20 @@ function getRequestBodyFormData({
240
297
  return formData;
241
298
  }
242
299
 
243
- function getBodyContentType(body: RequestFnPayload['body']) {
244
- if (!body) return;
245
- if (body instanceof Blob) return body.type || 'application/octet-stream';
246
- if (typeof body === 'string') return 'text/plain';
247
- if (!(body instanceof FormData)) return 'application/json';
248
- }
249
-
250
- async function processResponse<TData, TError>(
251
- response: Response
252
- ): Promise<RequestFnResponse<TData, TError>> {
253
- if (response.status === 204 || response.headers.get('Content-Length') === '0')
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
- }
266
-
267
- const jsonResponse = new Promise<TData>((resolve, reject) =>
268
- // attempt to parse JSON for successful responses, otherwise fail
269
- response.clone().text().then(JSON.parse).then(resolve, reject)
270
- );
271
-
272
- return resolveResponse(
273
- response,
274
- response.ok ? jsonResponse : Promise.reject(await jsonResponse)
275
- );
276
- }
277
-
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,
299
- });
300
-
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
- );
316
- }
317
-
318
- // To have definitely typed headers without a conversion to stings
319
- export type HeadersOptions =
320
- | HeadersInit
321
- | Record<string, string | number | boolean | null | undefined>;
322
-
323
- export interface OperationSchema {
324
- /**
325
- * Operation path
326
- * @example /user/{id}
327
- */
328
- readonly url: string; //todo::rename to `path`
329
-
330
- /**
331
- * Operation method
332
- */
333
- readonly method:
334
- | 'get'
335
- | 'put'
336
- | 'post'
337
- | 'patch'
338
- | 'delete'
339
- | 'options'
340
- | 'head'
341
- | 'trace';
342
-
343
- /**
344
- * Media type of the request body
345
- * @example application/json
346
- */
347
- readonly mediaType?: string;
348
-
349
- readonly security?: string[];
350
- }
351
-
352
- export interface RequestFnPayload {
353
- /**
354
- * Base URL to use for the request
355
- * @example 'https://api.example.com'
356
- */
357
- baseUrl?: string;
358
-
359
- /**
360
- * OpenAPI parameters
361
- * @example
362
- * ```ts
363
- * { path: {id: 1}, query: {search: 'hello'} }
364
- * ```
365
- */
366
- readonly parameters?: {
367
- readonly path?: Record<string, any>;
368
- readonly header?: Record<string, any>;
369
- readonly query?: Record<string, any>;
370
- };
371
-
372
- /**
373
- * Request body
374
- * @example { name: 'John' }
375
- */
376
- readonly body?: BodyInit | Record<string, unknown> | null;
377
-
378
- /**
379
- * Tanstack Query Meta
380
- */
381
- meta?: Record<string, unknown>;
382
-
383
- /** An AbortSignal to set request's signal. */
384
- signal?: AbortSignal | null;
385
- }
386
-
387
- export interface RequestFnInfo
388
- extends RequestFnPayload,
389
- Omit<RequestInit, 'headers' | 'method' | 'body' | 'signal'> {
390
- /**
391
- * Request headers
392
- * @example { 'X-Auth': '123' }
393
- */
394
- readonly headers?: HeadersOptions;
395
- }
396
-
397
- export interface RequestFnOptions {
398
- urlSerializer?: typeof urlSerializer;
399
- bodySerializer?: typeof bodySerializer;
400
- fetch?: typeof fetch;
401
- }
402
-
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
- };
423
-
424
300
  type WithRequired<T, K extends keyof T> = T & {
425
301
  [_ in K]: {};
426
302
  };
303
+
304
+ export type {
305
+ RequestFn,
306
+ RequestFnResponse,
307
+ HeadersOptions,
308
+ RequestFnOptions,
309
+ RequestFnInfo,
310
+ OperationSchema,
311
+ } from '@openapi-qraft/tanstack-query-react-types';
312
+
313
+ /**
314
+ * @deprecated use `RequestFnInfo` instead
315
+ */
316
+ export type RequestFnPayload = RequestFnInfo;
@@ -0,0 +1,77 @@
1
+ import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';
2
+
3
+ /**
4
+ * Processes the response from the server.
5
+ * @beta
6
+ */
7
+ export async function processResponse<TData, TError>(
8
+ response: Response
9
+ ): Promise<RequestFnResponse<TData, TError>> {
10
+ if (response.status === 204 || response.headers.get('Content-Length') === '0')
11
+ return (
12
+ response.ok ? { data: {}, response } : { error: {}, response }
13
+ ) as RequestFnResponse<TData, TError>;
14
+
15
+ if (isJsonResponse(response)) {
16
+ // clone response before parsing every time to allow multiple reads
17
+ const jsonResponse = response.clone().json();
18
+ return resolveResponse(
19
+ response,
20
+ response.ok ? jsonResponse : Promise.reject(await jsonResponse)
21
+ );
22
+ }
23
+
24
+ const jsonResponse = new Promise<TData>((resolve, reject) =>
25
+ // attempt to parse JSON for successful responses, otherwise fail
26
+ response.clone().text().then(JSON.parse).then(resolve, reject)
27
+ );
28
+
29
+ return resolveResponse(
30
+ response,
31
+ response.ok ? jsonResponse : Promise.reject(await jsonResponse)
32
+ );
33
+ }
34
+
35
+ /**
36
+ * Resolves the response from the server.
37
+ * @beta
38
+ */
39
+ export function resolveResponse<TData, TError>(
40
+ error: Error
41
+ ): Promise<RequestFnResponse<TData, TError>>;
42
+ export function resolveResponse<TData, TError>(
43
+ responseToReturn: Response,
44
+ responsePromise: Promise<TData>
45
+ ): Promise<RequestFnResponse<TData, TError>>;
46
+ export function resolveResponse<TData, TError>(
47
+ responseToReturn: Response | Error,
48
+ responsePromise?: Promise<TData>
49
+ ): Promise<RequestFnResponse<TData, TError>> {
50
+ if (!responsePromise)
51
+ return Promise.reject({
52
+ error: responseToReturn,
53
+ response: undefined,
54
+ data: undefined,
55
+ });
56
+
57
+ return responsePromise
58
+ .then(
59
+ (data) =>
60
+ ({ data, response: responseToReturn }) as RequestFnResponse<
61
+ TData,
62
+ TError
63
+ >
64
+ )
65
+ .catch(
66
+ (error) =>
67
+ ({ error, response: responseToReturn }) as RequestFnResponse<
68
+ TData,
69
+ TError
70
+ >
71
+ );
72
+ }
73
+
74
+ function isJsonResponse(response: Response) {
75
+ const contentType = response.headers.get('Content-Type')?.toLowerCase();
76
+ return contentType?.includes('/json') || contentType?.includes('+json');
77
+ }
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
+ import type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';
3
4
  import type { QueryClient } from '@tanstack/query-core';
4
5
  import type { UseQueryOptions } from '@tanstack/react-query';
5
6
  import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
6
- import type { ServiceOperationQueryKey } from '../service-operation/ServiceOperationKey.js';
7
7
  import type { OperationSchema } from './requestFn.js';
8
8
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
9
9
  import { composeQueryKey } from './composeQueryKey.js';
@@ -24,7 +24,6 @@ export function useComposeUseQueryOptions(
24
24
 
25
25
  const queryFn =
26
26
  options?.queryFn ??
27
- // @ts-expect-error - Too complex to type
28
27
  function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
29
28
  return qraftOptions
30
29
  .requestFn(schema, {
@@ -0,0 +1,118 @@
1
+ import {
2
+ API,
3
+ ASTPath,
4
+ CallExpression,
5
+ FileInfo,
6
+ MemberExpression,
7
+ Options,
8
+ } from 'jscodeshift';
9
+
10
+ export default function transformer(
11
+ file: FileInfo,
12
+ api: API,
13
+ options: Options
14
+ ) {
15
+ const j = api.jscodeshift;
16
+ const root = j(file.source);
17
+
18
+ const methodNames = [
19
+ 'fetchQuery',
20
+ 'fetchInfiniteQuery',
21
+ 'prefetchQuery',
22
+ 'prefetchInfiniteQuery',
23
+ 'getQueryData',
24
+ 'getQueriesData',
25
+ 'setQueryData',
26
+ 'getQueryState',
27
+ 'setQueriesData',
28
+ 'invalidateQueries',
29
+ 'refetchQueries',
30
+ 'cancelQueries',
31
+ 'removeQueries',
32
+ 'resetQueries',
33
+ 'isFetching',
34
+ 'isMutating',
35
+ 'setInfiniteQueryData',
36
+ 'getInfiniteQueryData',
37
+ 'getInfiniteQueryState',
38
+ ];
39
+
40
+ const hooksWithTwoArgs = [
41
+ 'useSuspenseQueries',
42
+ 'useIsFetching',
43
+ 'useMutationState',
44
+ 'useIsMutating',
45
+ ];
46
+
47
+ const hooksWithThreeArgs = [
48
+ 'useQuery',
49
+ 'useMutation',
50
+ 'useInfiniteQuery',
51
+ 'useQueries',
52
+ 'useSuspenseQuery',
53
+ 'useSuspenseInfiniteQuery',
54
+ ];
55
+
56
+ const apiClientVariableNames = getAPIClientVariableNames(options);
57
+
58
+ return root
59
+ .find(j.CallExpression)
60
+ .forEach((path: ASTPath<CallExpression>) => {
61
+ const callee = path.node.callee;
62
+ if (callee.type === 'MemberExpression') {
63
+ const apiClientCallMethodName = getAPIClientCallMethodName(
64
+ callee,
65
+ apiClientVariableNames
66
+ );
67
+ if (apiClientCallMethodName) {
68
+ if (methodNames.includes(apiClientCallMethodName)) {
69
+ // Remove the last argument `queryClient`
70
+ path.node.arguments = path.node.arguments.slice(0, -1);
71
+ } else if (
72
+ hooksWithTwoArgs.includes(apiClientCallMethodName) &&
73
+ path.node.arguments.length === 2
74
+ ) {
75
+ // Remove the second argument for specific hooks if there are exactly two arguments
76
+ path.node.arguments = path.node.arguments.slice(0, 1);
77
+ } else if (
78
+ hooksWithThreeArgs.includes(apiClientCallMethodName) &&
79
+ path.node.arguments.length === 3
80
+ ) {
81
+ // Remove the third argument for specific hooks if there are exactly three arguments
82
+ path.node.arguments = path.node.arguments.slice(0, 2);
83
+ }
84
+ }
85
+ }
86
+ })
87
+ .toSource();
88
+ }
89
+
90
+ function getAPIClientCallMethodName(
91
+ node: MemberExpression,
92
+ apiClientNames: string[]
93
+ ): string | undefined {
94
+ if (
95
+ node.object.type === 'MemberExpression' &&
96
+ node.object.object.type === 'MemberExpression' &&
97
+ node.object.object.object.type === 'Identifier' &&
98
+ node.object.object.property.type === 'Identifier' &&
99
+ node.object.property.type === 'Identifier' &&
100
+ node.property.type === 'Identifier'
101
+ ) {
102
+ const apiClientVariableName = node.object.object.object.name;
103
+
104
+ if (apiClientNames.includes(apiClientVariableName))
105
+ return node.property.name;
106
+ }
107
+ }
108
+
109
+ function getAPIClientVariableNames(options: Options) {
110
+ const apiClientVariableNameOption = options['api-client-variable-name'];
111
+
112
+ if (!apiClientVariableNameOption) return ['api', 'qraft'];
113
+
114
+ return String(apiClientVariableNameOption)
115
+ .split(',')
116
+ .map((name) => name.trim())
117
+ .filter(Boolean);
118
+ }