@gravity-ui/data-source 0.6.1 → 0.8.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 (278) hide show
  1. package/README.md +752 -15
  2. package/build/cjs/core/index.d.ts +3 -1
  3. package/build/cjs/core/index.js +7 -0
  4. package/build/cjs/core/index.js.map +1 -1
  5. package/build/cjs/core/types/DataManager.d.ts +5 -0
  6. package/build/cjs/core/types/DataManager.js.map +1 -1
  7. package/build/cjs/core/types/DataSource.d.ts +15 -19
  8. package/build/cjs/core/types/DataSource.js.map +1 -1
  9. package/build/cjs/core/types/Normalizer.d.ts +29 -0
  10. package/build/cjs/core/types/Normalizer.js +6 -0
  11. package/build/cjs/core/types/Normalizer.js.map +1 -0
  12. package/build/cjs/core/utils/__tests__/composeFullKey.test.js +34 -0
  13. package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +1 -0
  14. package/build/cjs/core/utils/__tests__/composeKey.test.js +32 -0
  15. package/build/cjs/core/utils/__tests__/composeKey.test.js.map +1 -0
  16. package/build/cjs/core/utils/__tests__/getError.test.js +31 -0
  17. package/build/cjs/core/utils/__tests__/getError.test.js.map +1 -0
  18. package/build/cjs/core/utils/__tests__/getStatus.test.js +49 -0
  19. package/build/cjs/core/utils/__tests__/getStatus.test.js.map +1 -0
  20. package/build/cjs/core/utils/__tests__/hasTag.test.js +31 -0
  21. package/build/cjs/core/utils/__tests__/hasTag.test.js.map +1 -0
  22. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +25 -0
  23. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
  24. package/build/cjs/core/utils/__tests__/skipContext.test.js +70 -0
  25. package/build/cjs/core/utils/__tests__/skipContext.test.js.map +1 -0
  26. package/build/cjs/core/utils/__tests__/withCancellation.test.js +106 -0
  27. package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +1 -0
  28. package/build/cjs/core/utils/__tests__/withCatch.test.js +208 -0
  29. package/build/cjs/core/utils/__tests__/withCatch.test.js.map +1 -0
  30. package/build/cjs/core/utils/withCatch.d.ts +26 -0
  31. package/build/cjs/core/utils/withCatch.js +37 -0
  32. package/build/cjs/core/utils/withCatch.js.map +1 -0
  33. package/build/cjs/react/DataManagerProvider.d.ts +7 -0
  34. package/build/cjs/react/DataManagerProvider.js +19 -0
  35. package/build/cjs/react/DataManagerProvider.js.map +1 -0
  36. package/build/cjs/react/__tests__/DataManagerContext.test.js +47 -0
  37. package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -0
  38. package/build/cjs/react/__tests__/withDataManager.test.js +61 -0
  39. package/build/cjs/react/__tests__/withDataManager.test.js.map +1 -0
  40. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +187 -0
  41. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
  42. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +119 -0
  43. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
  44. package/build/cjs/react/index.d.ts +2 -0
  45. package/build/cjs/react/index.js +8 -0
  46. package/build/cjs/react/index.js.map +1 -1
  47. package/build/cjs/react/withDataManager.d.ts +1 -1
  48. package/build/cjs/react/withDataManager.js +3 -3
  49. package/build/cjs/react/withDataManager.js.map +1 -1
  50. package/build/cjs/react-query/ClientDataManager.d.ts +11 -2
  51. package/build/cjs/react-query/ClientDataManager.js +76 -9
  52. package/build/cjs/react-query/ClientDataManager.js.map +1 -1
  53. package/build/cjs/react-query/DataSourceProvider.d.ts +7 -0
  54. package/build/cjs/react-query/DataSourceProvider.js +35 -0
  55. package/build/cjs/react-query/DataSourceProvider.js.map +1 -0
  56. package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js +177 -0
  57. package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
  58. package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js +100 -0
  59. package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
  60. package/build/cjs/react-query/__tests__/subscriptions.test.js +1180 -0
  61. package/build/cjs/react-query/__tests__/subscriptions.test.js.map +1 -0
  62. package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js +514 -0
  63. package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
  64. package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js +229 -0
  65. package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
  66. package/build/cjs/react-query/constants.d.ts +2 -0
  67. package/build/cjs/react-query/constants.js +9 -0
  68. package/build/cjs/react-query/constants.js.map +1 -0
  69. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +55 -0
  70. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
  71. package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js +195 -0
  72. package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
  73. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +97 -0
  74. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
  75. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +77 -0
  76. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
  77. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +79 -0
  78. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
  79. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +117 -0
  80. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
  81. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +156 -0
  82. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
  83. package/build/cjs/react-query/hooks/useRefetchInterval.d.ts +1 -1
  84. package/build/cjs/react-query/impl/infinite/factory.d.ts +1 -1
  85. package/build/cjs/react-query/impl/infinite/factory.js.map +1 -1
  86. package/build/cjs/react-query/impl/infinite/hooks.js +4 -1
  87. package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
  88. package/build/cjs/react-query/impl/infinite/types.d.ts +9 -9
  89. package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
  90. package/build/cjs/react-query/impl/infinite/utils.js +11 -22
  91. package/build/cjs/react-query/impl/infinite/utils.js.map +1 -1
  92. package/build/cjs/react-query/impl/plain/factory.d.ts +1 -1
  93. package/build/cjs/react-query/impl/plain/factory.js.map +1 -1
  94. package/build/cjs/react-query/impl/plain/hooks.js +4 -1
  95. package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
  96. package/build/cjs/react-query/impl/plain/types.d.ts +6 -6
  97. package/build/cjs/react-query/impl/plain/types.js.map +1 -1
  98. package/build/cjs/react-query/impl/plain/utils.js +12 -23
  99. package/build/cjs/react-query/impl/plain/utils.js.map +1 -1
  100. package/build/cjs/react-query/index.d.ts +2 -0
  101. package/build/cjs/react-query/index.js +7 -0
  102. package/build/cjs/react-query/index.js.map +1 -1
  103. package/build/cjs/react-query/types/normalizer.d.ts +21 -0
  104. package/build/cjs/react-query/types/normalizer.js +6 -0
  105. package/build/cjs/react-query/types/normalizer.js.map +1 -0
  106. package/build/cjs/react-query/types/options.d.ts +12 -0
  107. package/build/cjs/react-query/types/options.js.map +1 -1
  108. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +27 -0
  109. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
  110. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +76 -0
  111. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
  112. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +30 -0
  113. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
  114. package/build/cjs/react-query/utils/__tests__/notReachable.test.js +35 -0
  115. package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +1 -0
  116. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +27 -0
  117. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
  118. package/build/cjs/react-query/utils/formatNullableValue.d.ts +2 -0
  119. package/build/cjs/react-query/utils/formatNullableValue.js +17 -0
  120. package/build/cjs/react-query/utils/formatNullableValue.js.map +1 -0
  121. package/build/cjs/react-query/utils/getProgressiveRefetch.d.ts +2 -2
  122. package/build/cjs/react-query/utils/normalize.d.ts +22 -0
  123. package/build/cjs/react-query/utils/normalize.js +150 -0
  124. package/build/cjs/react-query/utils/normalize.js.map +1 -0
  125. package/build/cjs/react-query/utils/parseNullableValue.d.ts +2 -0
  126. package/build/cjs/react-query/utils/parseNullableValue.js +17 -0
  127. package/build/cjs/react-query/utils/parseNullableValue.js.map +1 -0
  128. package/build/cjs/react-query/utils/warn.d.ts +1 -0
  129. package/build/cjs/react-query/utils/warn.js +15 -0
  130. package/build/cjs/react-query/utils/warn.js.map +1 -0
  131. package/build/cjs/react-query/utils/warnDisabledRefetch.d.ts +1 -0
  132. package/build/cjs/react-query/utils/warnDisabledRefetch.js +11 -0
  133. package/build/cjs/react-query/utils/warnDisabledRefetch.js.map +1 -0
  134. package/build/cjs/setupTests.d.ts +1 -0
  135. package/build/cjs/setupTests.js +4 -0
  136. package/build/cjs/setupTests.js.map +1 -0
  137. package/build/esm/core/index.d.ts +3 -1
  138. package/build/esm/core/index.js +1 -0
  139. package/build/esm/core/index.js.map +1 -1
  140. package/build/esm/core/types/DataManager.d.ts +5 -0
  141. package/build/esm/core/types/DataManager.js.map +1 -1
  142. package/build/esm/core/types/DataSource.d.ts +15 -19
  143. package/build/esm/core/types/DataSource.js.map +1 -1
  144. package/build/esm/core/types/Normalizer.d.ts +29 -0
  145. package/build/esm/core/types/Normalizer.js +2 -0
  146. package/build/esm/core/types/Normalizer.js.map +1 -0
  147. package/build/esm/core/utils/__tests__/composeFullKey.test.js +32 -0
  148. package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +1 -0
  149. package/build/esm/core/utils/__tests__/composeKey.test.js +30 -0
  150. package/build/esm/core/utils/__tests__/composeKey.test.js.map +1 -0
  151. package/build/esm/core/utils/__tests__/getError.test.js +29 -0
  152. package/build/esm/core/utils/__tests__/getError.test.js.map +1 -0
  153. package/build/esm/core/utils/__tests__/getStatus.test.js +47 -0
  154. package/build/esm/core/utils/__tests__/getStatus.test.js.map +1 -0
  155. package/build/esm/core/utils/__tests__/hasTag.test.js +29 -0
  156. package/build/esm/core/utils/__tests__/hasTag.test.js.map +1 -0
  157. package/build/esm/core/utils/__tests__/mergeStatuses.test.js +23 -0
  158. package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
  159. package/build/esm/core/utils/__tests__/skipContext.test.js +67 -0
  160. package/build/esm/core/utils/__tests__/skipContext.test.js.map +1 -0
  161. package/build/esm/core/utils/__tests__/withCancellation.test.js +104 -0
  162. package/build/esm/core/utils/__tests__/withCancellation.test.js.map +1 -0
  163. package/build/esm/core/utils/__tests__/withCatch.test.js +205 -0
  164. package/build/esm/core/utils/__tests__/withCatch.test.js.map +1 -0
  165. package/build/esm/core/utils/withCatch.d.ts +26 -0
  166. package/build/esm/core/utils/withCatch.js +31 -0
  167. package/build/esm/core/utils/withCatch.js.map +1 -0
  168. package/build/esm/react/DataManagerProvider.d.ts +7 -0
  169. package/build/esm/react/DataManagerProvider.js +12 -0
  170. package/build/esm/react/DataManagerProvider.js.map +1 -0
  171. package/build/esm/react/__tests__/DataManagerContext.test.js +44 -0
  172. package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -0
  173. package/build/esm/react/__tests__/withDataManager.test.js +58 -0
  174. package/build/esm/react/__tests__/withDataManager.test.js.map +1 -0
  175. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +184 -0
  176. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
  177. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +116 -0
  178. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
  179. package/build/esm/react/index.d.ts +2 -0
  180. package/build/esm/react/index.js +1 -0
  181. package/build/esm/react/index.js.map +1 -1
  182. package/build/esm/react/withDataManager.d.ts +1 -1
  183. package/build/esm/react/withDataManager.js +3 -3
  184. package/build/esm/react/withDataManager.js.map +1 -1
  185. package/build/esm/react-query/ClientDataManager.d.ts +11 -2
  186. package/build/esm/react-query/ClientDataManager.js +70 -3
  187. package/build/esm/react-query/ClientDataManager.js.map +1 -1
  188. package/build/esm/react-query/DataSourceProvider.d.ts +7 -0
  189. package/build/esm/react-query/DataSourceProvider.js +28 -0
  190. package/build/esm/react-query/DataSourceProvider.js.map +1 -0
  191. package/build/esm/react-query/__tests__/createQueryNormalizer.test.js +174 -0
  192. package/build/esm/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
  193. package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js +98 -0
  194. package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
  195. package/build/esm/react-query/__tests__/subscriptions.test.js +1176 -0
  196. package/build/esm/react-query/__tests__/subscriptions.test.js.map +1 -0
  197. package/build/esm/react-query/__tests__/threeLevelIntegration.test.js +511 -0
  198. package/build/esm/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
  199. package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js +227 -0
  200. package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
  201. package/build/esm/react-query/constants.d.ts +2 -0
  202. package/build/esm/react-query/constants.js +3 -0
  203. package/build/esm/react-query/constants.js.map +1 -0
  204. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +52 -0
  205. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
  206. package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js +192 -0
  207. package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
  208. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +95 -0
  209. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
  210. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +74 -0
  211. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
  212. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +77 -0
  213. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
  214. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +115 -0
  215. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
  216. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +154 -0
  217. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
  218. package/build/esm/react-query/hooks/useRefetchInterval.d.ts +1 -1
  219. package/build/esm/react-query/impl/infinite/factory.d.ts +1 -1
  220. package/build/esm/react-query/impl/infinite/factory.js.map +1 -1
  221. package/build/esm/react-query/impl/infinite/hooks.js +5 -2
  222. package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
  223. package/build/esm/react-query/impl/infinite/types.d.ts +9 -9
  224. package/build/esm/react-query/impl/infinite/types.js.map +1 -1
  225. package/build/esm/react-query/impl/infinite/utils.js +9 -20
  226. package/build/esm/react-query/impl/infinite/utils.js.map +1 -1
  227. package/build/esm/react-query/impl/plain/factory.d.ts +1 -1
  228. package/build/esm/react-query/impl/plain/factory.js.map +1 -1
  229. package/build/esm/react-query/impl/plain/hooks.js +5 -2
  230. package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
  231. package/build/esm/react-query/impl/plain/types.d.ts +6 -6
  232. package/build/esm/react-query/impl/plain/types.js.map +1 -1
  233. package/build/esm/react-query/impl/plain/utils.js +10 -21
  234. package/build/esm/react-query/impl/plain/utils.js.map +1 -1
  235. package/build/esm/react-query/index.d.ts +2 -0
  236. package/build/esm/react-query/index.js +1 -0
  237. package/build/esm/react-query/index.js.map +1 -1
  238. package/build/esm/react-query/types/normalizer.d.ts +21 -0
  239. package/build/esm/react-query/types/normalizer.js +2 -0
  240. package/build/esm/react-query/types/normalizer.js.map +1 -0
  241. package/build/esm/react-query/types/options.d.ts +12 -0
  242. package/build/esm/react-query/types/options.js.map +1 -1
  243. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +25 -0
  244. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
  245. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +74 -0
  246. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
  247. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +28 -0
  248. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
  249. package/build/esm/react-query/utils/__tests__/notReachable.test.js +33 -0
  250. package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +1 -0
  251. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +25 -0
  252. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
  253. package/build/esm/react-query/utils/formatNullableValue.d.ts +2 -0
  254. package/build/esm/react-query/utils/formatNullableValue.js +11 -0
  255. package/build/esm/react-query/utils/formatNullableValue.js.map +1 -0
  256. package/build/esm/react-query/utils/getProgressiveRefetch.d.ts +2 -2
  257. package/build/esm/react-query/utils/normalize.d.ts +22 -0
  258. package/build/esm/react-query/utils/normalize.js +143 -0
  259. package/build/esm/react-query/utils/normalize.js.map +1 -0
  260. package/build/esm/react-query/utils/parseNullableValue.d.ts +2 -0
  261. package/build/esm/react-query/utils/parseNullableValue.js +11 -0
  262. package/build/esm/react-query/utils/parseNullableValue.js.map +1 -0
  263. package/build/esm/react-query/utils/warn.d.ts +1 -0
  264. package/build/esm/react-query/utils/warn.js +9 -0
  265. package/build/esm/react-query/utils/warn.js.map +1 -0
  266. package/build/esm/react-query/utils/warnDisabledRefetch.d.ts +1 -0
  267. package/build/esm/react-query/utils/warnDisabledRefetch.js +5 -0
  268. package/build/esm/react-query/utils/warnDisabledRefetch.js.map +1 -0
  269. package/build/esm/setupTests.d.ts +1 -0
  270. package/build/esm/setupTests.js +2 -0
  271. package/build/esm/setupTests.js.map +1 -0
  272. package/package.json +18 -13
  273. package/build/cjs/react-query/impl/utils.d.ts +0 -4
  274. package/build/cjs/react-query/impl/utils.js +0 -27
  275. package/build/cjs/react-query/impl/utils.js.map +0 -1
  276. package/build/esm/react-query/impl/utils.d.ts +0 -4
  277. package/build/esm/react-query/impl/utils.js +0 -21
  278. package/build/esm/react-query/impl/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useInfiniteQuery","useRefetchInterval","normalizeStatus","composeOptions","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","useInfiniteQueryData","context","dataSource","params","options","extendedOptions","state","transformedData","_state$data$pages$fla","_state$data","data","pages","flat","status","fetchStatus","originalStatus","originalData"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,gBAAgB,QAAO,uBAAuB;AActD,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAG3D,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC7BC,eAOC,EAQA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCZ,kBAAkB,CAACO,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC7BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,2BAA2B,CAACgB,eAAe,CAAC;EACpE,IAAMC,KAAK,GAAGrB,gBAAgB,CAACK,eAAe,CAAC;EAE/C,IAAMiB,eAAe,GAAGvB,OAAO,CAC3B;IAAA,IAAAwB,qBAAA,EAAAC,WAAA;IAAA,QAAAD,qBAAA,IAAAC,WAAA,GAAMH,KAAK,CAACI,IAAI,cAAAD,WAAA,uBAAVA,WAAA,CAAYE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACrC,CAACF,KAAK,CAACI,IAAI,CACf,CAAC;EAED,OAAAX,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRO,MAAM,EAAE1B,eAAe,CAACmB,KAAK,CAACO,MAAM,EAAEP,KAAK,CAACQ,WAAW,CAAC;IACxDJ,IAAI,EAAEH,eAAe;IACrBQ,cAAc,EAAET,KAAK,CAACO,MAAM;IAC5BG,YAAY,EAAEV,KAAK,CAACI;EAAI;AAEhC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","skipToken","useInfiniteQuery","useRefetchInterval","normalizeStatus","warnDisabledRefetch","composeOptions","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","useInfiniteQueryData","context","dataSource","params","options","extendedOptions","state","transformedData","_state$data$pages$fla","_state$data","data","pages","flat","isDisabled","enabled","status","fetchStatus","originalStatus","originalData","refetch"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {skipToken, useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n refetch: isDisabled ? warnDisabledRefetch : state.refetch,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,SAAS,EAAEC,gBAAgB,QAAO,uBAAuB;AAcjE,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAC3D,SAAQC,mBAAmB,QAAO,iCAAiC;AAGnE,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC7BC,eAOC,EAQA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCb,kBAAkB,CAACQ,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC7BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,2BAA2B,CAACgB,eAAe,CAAC;EACpE,IAAMC,KAAK,GAAGtB,gBAAgB,CAACM,eAAe,CAAC;EAE/C,IAAMiB,eAAe,GAAGzB,OAAO,CAC3B;IAAA,IAAA0B,qBAAA,EAAAC,WAAA;IAAA,QAAAD,qBAAA,IAAAC,WAAA,GAAMH,KAAK,CAACI,IAAI,cAAAD,WAAA,uBAAVA,WAAA,CAAYE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACrC,CAACF,KAAK,CAACI,IAAI,CACf,CAAC;EAED,IAAMG,UAAU,GAAGvB,eAAe,CAACwB,OAAO,KAAK,KAAK,IAAIxB,eAAe,CAACE,OAAO,KAAKT,SAAS;EAE7F,OAAAgB,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRS,MAAM,EAAE7B,eAAe,CAACoB,KAAK,CAACS,MAAM,EAAET,KAAK,CAACU,WAAW,CAAC;IACxDN,IAAI,EAAEH,eAAe;IACrBU,cAAc,EAAEX,KAAK,CAACS,MAAM;IAC5BG,YAAY,EAAEZ,KAAK,CAACI,IAAI;IACxBS,OAAO,EAAEN,UAAU,GAAG1B,mBAAmB,GAAGmB,KAAK,CAACa;EAAO;AAEjE,CAAC","ignoreList":[]}
@@ -1,19 +1,19 @@
1
1
  import type { DefaultError, InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryFunctionContext, QueryKey } from '@tanstack/react-query';
2
- import type { Overwrite } from 'utility-types';
3
- import type { ActualData, ActualResponse, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
2
+ import type { Assign, Overwrite } from 'utility-types';
3
+ import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
4
  import type { QueryDataSourceContext } from '../../types/base';
5
5
  import type { QueryDataAdditionalOptions } from '../../types/options';
6
- export type InfiniteQueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = Overwrite<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, InfiniteData<TQueryData, TPageParam>, TQueryKey>>;
7
- export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, TErrorResponse, InfiniteQueryObserverExtendedOptions<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, NoInfer<TError>, InfiniteData<ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>, Partial<NoInfer<TRequest>>>, ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, DataSourceKey, Partial<NoInfer<TRequest>>>, ResultWrapper<InfiniteQueryObserverResult<InfiniteData<ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>, Partial<NoInfer<TRequest>>>, NoInfer<TError>>, NoInfer<TRequest>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>, NoInfer<TErrorResponse>>, QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>> & {
6
+ export type InfiniteQueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = Assign<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, InfiniteData<TQueryData, TPageParam>, TQueryKey>>;
7
+ export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, InfiniteQueryObserverExtendedOptions<NoInfer<TResponse>, NoInfer<TError>, InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>, NoInfer<TResponse>, DataSourceKey, Partial<NoInfer<TRequest>>>, ResultWrapper<InfiniteQueryObserverResult<InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>, NoInfer<TError>>, NoInfer<TRequest>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>>, QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>> & {
8
8
  type: 'infinite';
9
- next: (lastPage: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, allPages: Array<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>>) => Partial<NoInfer<TRequest>> | undefined | null;
10
- prev?: (firstPage: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, allPages: Array<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>>) => Partial<NoInfer<TRequest>> | undefined | null;
9
+ next: (lastPage: NoInfer<TResponse>, allPages: NoInfer<TResponse>[]) => Partial<NoInfer<TRequest>> | null | undefined;
10
+ prev?: (firstPage: NoInfer<TResponse>, allPages: NoInfer<TResponse>[]) => Partial<NoInfer<TRequest>> | null | undefined;
11
11
  };
12
- export type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any, any>;
12
+ export type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;
13
13
  export type AnyPageParam = Partial<any>;
14
- type ResultWrapper<TResult, TRequest, TResponse, TData, TError, TErrorResponse> = TResult extends InfiniteQueryObserverResult<InfiniteData<ActualData<TResponse, TData, TErrorResponse>, Partial<TRequest>>, TError> ? Overwrite<TResult, {
14
+ type ResultWrapper<TResult, TRequest, TResponse, TData, TError> = TResult extends InfiniteQueryObserverResult<InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TError> ? Overwrite<TResult, {
15
15
  status: DataLoaderStatus;
16
- data: Array<FlatArray<Array<ActualData<TResponse, TData, TErrorResponse>>, 1>>;
16
+ data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;
17
17
  }> & {
18
18
  originalStatus: TResult['status'];
19
19
  originalData: TResult['data'];
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {\n ActualData,\n ActualResponse,\n DataLoaderStatus,\n DataSource,\n DataSourceKey,\n} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Overwrite<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse> =\n DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n TErrorResponse,\n InfiniteQueryObserverExtendedOptions<\n ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n NoInfer<TError>,\n InfiniteData<\n ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>,\n Partial<NoInfer<TRequest>>\n >,\n ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<\n ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>,\n Partial<NoInfer<TRequest>>\n >,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>,\n NoInfer<TErrorResponse>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n > & {\n type: 'infinite';\n next: (\n lastPage: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n allPages: Array<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>>,\n ) => Partial<NoInfer<TRequest>> | undefined | null;\n prev?: (\n firstPage: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n allPages: Array<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>>,\n ) => Partial<NoInfer<TRequest>> | undefined | null;\n };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError, TErrorResponse> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TResponse, TData, TErrorResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TResponse, TData, TErrorResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Assign<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TResponse>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n> & {\n type: 'infinite';\n next: (\n lastPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n prev?: (\n firstPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -1,45 +1,34 @@
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
1
2
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import { skipToken } from '@tanstack/react-query';
5
5
  import { composeFullKey, idle } from '../../../core';
6
- import { formatNullableValue, parseNullableValue } from '../utils';
6
+ import { formatNullableValue } from '../../utils/formatNullableValue';
7
+ import { parseNullableValue } from '../../utils/parseNullableValue';
7
8
  var EMPTY_OBJECT = {};
8
9
  export var composeOptions = function composeOptions(context, dataSource, params, options) {
9
10
  var transformParams = dataSource.transformParams,
10
- transformError = dataSource.transformError,
11
11
  transformResponse = dataSource.transformResponse,
12
12
  next = dataSource.next,
13
13
  prev = dataSource.prev;
14
14
  var queryFn = /*#__PURE__*/function () {
15
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetchContext) {
15
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(fetchContext) {
16
16
  var request, paginatedRequest, response;
17
- return _regeneratorRuntime.wrap(function _callee$(_context) {
17
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
18
18
  while (1) switch (_context.prev = _context.next) {
19
19
  case 0:
20
20
  request = transformParams ? transformParams(params) : params;
21
21
  paginatedRequest = _objectSpread(_objectSpread({}, request), fetchContext.pageParam);
22
- _context.prev = 2;
23
- _context.next = 5;
22
+ _context.next = 4;
24
23
  return dataSource.fetch(context, fetchContext, paginatedRequest);
25
- case 5:
24
+ case 4:
26
25
  response = _context.sent;
27
26
  return _context.abrupt("return", formatNullableValue(response));
28
- case 9:
29
- _context.prev = 9;
30
- _context.t0 = _context["catch"](2);
31
- if (transformError) {
32
- _context.next = 13;
33
- break;
34
- }
35
- throw _context.t0;
36
- case 13:
37
- return _context.abrupt("return", formatNullableValue(transformError(_context.t0)));
38
- case 14:
27
+ case 6:
39
28
  case "end":
40
29
  return _context.stop();
41
30
  }
42
- }, _callee, null, [[2, 9]]);
31
+ }, _callee);
43
32
  }));
44
33
  return function queryFn(_x) {
45
34
  return _ref.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["skipToken","composeFullKey","idle","formatNullableValue","parseNullableValue","EMPTY_OBJECT","composeOptions","context","dataSource","params","options","transformParams","transformError","transformResponse","next","prev","queryFn","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetchContext","request","paginatedRequest","response","wrap","_callee$","_context","_objectSpread","pageParam","fetch","sent","abrupt","t0","stop","_x","apply","arguments","selectPage","actualResponse","queryKey","select","data","pages","map","initialPageParam","getNextPageParam","getPreviousPageParam"],"sources":["utils.ts"],"sourcesContent":["import {skipToken} from '@tanstack/react-query';\nimport type {InfiniteData, QueryFunctionContext} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\nimport type {nullSymbol, undefinedSymbol} from '../utils';\nimport {formatNullableValue, parseNullableValue} from '../utils';\n\nimport type {\n AnyInfiniteQueryDataSource,\n AnyPageParam,\n InfiniteQueryObserverExtendedOptions,\n} from './types';\n\nconst EMPTY_OBJECT = {};\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> => {\n const {transformParams, transformError, transformResponse, next, prev} = dataSource;\n\n const queryFn = async (\n fetchContext: QueryFunctionContext<DataSourceKey, AnyPageParam>,\n ): Promise<DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol> => {\n const request = transformParams ? transformParams(params) : params;\n const paginatedRequest = {...request, ...fetchContext.pageParam};\n\n try {\n const response = await dataSource.fetch(context, fetchContext, paginatedRequest);\n\n return formatNullableValue(response);\n } catch (error) {\n if (!transformError) {\n throw error;\n }\n\n return formatNullableValue(transformError(error));\n }\n };\n\n const selectPage = (\n response: DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol,\n ): DataSourceData<TDataSource> => {\n const actualResponse = parseNullableValue(response);\n\n return transformResponse ? transformResponse(actualResponse) : actualResponse;\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: (data) => ({...data, pages: data.pages.map(selectPage)}),\n initialPageParam: EMPTY_OBJECT,\n getNextPageParam: next,\n getPreviousPageParam: prev,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;AAAA,SAAQA,SAAS,QAAO,uBAAuB;AAG/C,SAAQC,cAAc,EAAEC,IAAI,QAAO,eAAe;AAWlD,SAAQC,mBAAmB,EAAEC,kBAAkB,QAAO,UAAU;AAQhE,IAAMC,YAAY,GAAG,CAAC,CAAC;AAEvB,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAQhD;EACD,IAAOC,eAAe,GAAmDH,UAAU,CAA5EG,eAAe;IAAEC,cAAc,GAAmCJ,UAAU,CAA3DI,cAAc;IAAEC,iBAAiB,GAAgBL,UAAU,CAA3CK,iBAAiB;IAAEC,IAAI,GAAUN,UAAU,CAAxBM,IAAI;IAAEC,IAAI,GAAIP,UAAU,CAAlBO,IAAI;EAErE,IAAMC,OAAO;IAAA,IAAAC,IAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,QACZC,YAA+D;MAAA,IAAAC,OAAA,EAAAC,gBAAA,EAAAC,QAAA;MAAA,OAAAN,mBAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAb,IAAA,GAAAa,QAAA,CAAAd,IAAA;UAAA;YAEzDS,OAAO,GAAGZ,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAAM;YAC5De,gBAAgB,GAAAK,aAAA,CAAAA,aAAA,KAAON,OAAO,GAAKD,YAAY,CAACQ,SAAS;YAAAF,QAAA,CAAAb,IAAA;YAAAa,QAAA,CAAAd,IAAA;YAAA,OAGpCN,UAAU,CAACuB,KAAK,CAACxB,OAAO,EAAEe,YAAY,EAAEE,gBAAgB,CAAC;UAAA;YAA1EC,QAAQ,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAEP9B,mBAAmB,CAACsB,QAAQ,CAAC;UAAA;YAAAG,QAAA,CAAAb,IAAA;YAAAa,QAAA,CAAAM,EAAA,GAAAN,QAAA;YAAA,IAE/BhB,cAAc;cAAAgB,QAAA,CAAAd,IAAA;cAAA;YAAA;YAAA,MAAAc,QAAA,CAAAM,EAAA;UAAA;YAAA,OAAAN,QAAA,CAAAK,MAAA,WAIZ9B,mBAAmB,CAACS,cAAc,CAAAgB,QAAA,CAAAM,EAAM,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAd,OAAA;IAAA,CAExD;IAAA,gBAjBKL,OAAOA,CAAAoB,EAAA;MAAA,OAAAnB,IAAA,CAAAoB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAiBZ;EAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CACZd,QAAsF,EACxD;IAC9B,IAAMe,cAAc,GAAGpC,kBAAkB,CAACqB,QAAQ,CAAC;IAEnD,OAAOZ,iBAAiB,GAAGA,iBAAiB,CAAC2B,cAAc,CAAC,GAAGA,cAAc;EACjF,CAAC;EAED,OAAAX,aAAA,CAAAA,aAAA;IACIY,QAAQ,EAAExC,cAAc,CAACO,UAAU,EAAEC,MAAM,CAAC;IAC5CO,OAAO,EAAEP,MAAM,KAAKP,IAAI,GAAGF,SAAS,GAAGgB,OAAO;IAC9C0B,MAAM,EAAE,SAARA,MAAMA,CAAGC,IAAI;MAAA,OAAAd,aAAA,CAAAA,aAAA,KAAUc,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACN,UAAU;MAAC;IAAA,CAAE;IAChEO,gBAAgB,EAAEzC,YAAY;IAC9B0C,gBAAgB,EAAEjC,IAAI;IACtBkC,oBAAoB,EAAEjC;EAAI,GACvBP,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["skipToken","composeFullKey","idle","formatNullableValue","parseNullableValue","EMPTY_OBJECT","composeOptions","context","dataSource","params","options","transformParams","transformResponse","next","prev","queryFn","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetchContext","request","paginatedRequest","response","wrap","_callee$","_context","_objectSpread","pageParam","fetch","sent","abrupt","stop","_x","apply","arguments","selectPage","actualResponse","queryKey","select","data","pages","map","initialPageParam","getNextPageParam","getPreviousPageParam"],"sources":["utils.ts"],"sourcesContent":["import {skipToken} from '@tanstack/react-query';\nimport type {InfiniteData, QueryFunctionContext} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\nimport type {nullSymbol, undefinedSymbol} from '../../constants';\nimport {formatNullableValue} from '../../utils/formatNullableValue';\nimport {parseNullableValue} from '../../utils/parseNullableValue';\n\nimport type {\n AnyInfiniteQueryDataSource,\n AnyPageParam,\n InfiniteQueryObserverExtendedOptions,\n} from './types';\n\nconst EMPTY_OBJECT = {};\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> => {\n const {transformParams, transformResponse, next, prev} = dataSource;\n\n const queryFn = async (\n fetchContext: QueryFunctionContext<DataSourceKey, AnyPageParam>,\n ): Promise<DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol> => {\n const request = transformParams ? transformParams(params) : params;\n const paginatedRequest = {...request, ...fetchContext.pageParam};\n\n const response = await dataSource.fetch(context, fetchContext, paginatedRequest);\n\n return formatNullableValue(response);\n };\n\n const selectPage = (\n response: DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol,\n ): DataSourceData<TDataSource> => {\n const actualResponse = parseNullableValue(response) as DataSourceData<TDataSource>;\n\n return transformResponse ? transformResponse(actualResponse) : actualResponse;\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: (data) => ({...data, pages: data.pages.map(selectPage)}),\n initialPageParam: EMPTY_OBJECT,\n getNextPageParam: next,\n getPreviousPageParam: prev,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;AAAA,SAAQA,SAAS,QAAO,uBAAuB;AAG/C,SAAQC,cAAc,EAAEC,IAAI,QAAO,eAAe;AAWlD,SAAQC,mBAAmB,QAAO,iCAAiC;AACnE,SAAQC,kBAAkB,QAAO,gCAAgC;AAQjE,IAAMC,YAAY,GAAG,CAAC,CAAC;AAEvB,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAQhD;EACD,IAAOC,eAAe,GAAmCH,UAAU,CAA5DG,eAAe;IAAEC,iBAAiB,GAAgBJ,UAAU,CAA3CI,iBAAiB;IAAEC,IAAI,GAAUL,UAAU,CAAxBK,IAAI;IAAEC,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAErD,IAAMC,OAAO;IAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACZC,YAA+D;MAAA,IAAAC,OAAA,EAAAC,gBAAA,EAAAC,QAAA;MAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAb,IAAA,GAAAa,QAAA,CAAAd,IAAA;UAAA;YAEzDS,OAAO,GAAGX,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAAM;YAC5Dc,gBAAgB,GAAAK,aAAA,CAAAA,aAAA,KAAON,OAAO,GAAKD,YAAY,CAACQ,SAAS;YAAAF,QAAA,CAAAd,IAAA;YAAA,OAExCL,UAAU,CAACsB,KAAK,CAACvB,OAAO,EAAEc,YAAY,EAAEE,gBAAgB,CAAC;UAAA;YAA1EC,QAAQ,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAEP7B,mBAAmB,CAACqB,QAAQ,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAb,OAAA;IAAA,CACvC;IAAA,gBATKL,OAAOA,CAAAmB,EAAA;MAAA,OAAAlB,IAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;EAAA,GASZ;EAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CACZb,QAAsF,EACxD;IAC9B,IAAMc,cAAc,GAAGlC,kBAAkB,CAACoB,QAAQ,CAAgC;IAElF,OAAOZ,iBAAiB,GAAGA,iBAAiB,CAAC0B,cAAc,CAAC,GAAGA,cAAc;EACjF,CAAC;EAED,OAAAV,aAAA,CAAAA,aAAA;IACIW,QAAQ,EAAEtC,cAAc,CAACO,UAAU,EAAEC,MAAM,CAAC;IAC5CM,OAAO,EAAEN,MAAM,KAAKP,IAAI,GAAGF,SAAS,GAAGe,OAAO;IAC9CyB,MAAM,EAAE,SAARA,MAAMA,CAAGC,IAAI;MAAA,OAAAb,aAAA,CAAAA,aAAA,KAAUa,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACN,UAAU;MAAC;IAAA,CAAE;IAChEO,gBAAgB,EAAEvC,YAAY;IAC9BwC,gBAAgB,EAAEhC,IAAI;IACtBiC,oBAAoB,EAAEhC;EAAI,GACvBN,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import type { PlainQueryDataSource } from './types';
2
- export declare const makePlainQueryDataSource: <TParams, TRequest, TResponse, TData, TError, TErrorResponse>(config: Omit<PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse>, "type">) => PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse>;
2
+ export declare const makePlainQueryDataSource: <TParams, TRequest, TResponse, TData, TError>(config: Omit<PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>, "type">) => PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>;
@@ -1 +1 @@
1
- {"version":3,"names":["makePlainQueryDataSource","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {PlainQueryDataSource} from './types';\n\nexport const makePlainQueryDataSource = <\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n TErrorResponse,\n>(\n config: Omit<\n PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse>,\n 'type'\n >,\n): PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse> => ({\n ...config,\n type: 'plain',\n});\n"],"mappings":";AAEA,OAAO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAQjCC,MAGC;EAAA,OAAAC,aAAA,CAAAA,aAAA,KAEED,MAAM;IACTE,IAAI,EAAE;EAAO;AAAA,CACf","ignoreList":[]}
1
+ {"version":3,"names":["makePlainQueryDataSource","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {PlainQueryDataSource} from './types';\n\nexport const makePlainQueryDataSource = <TParams, TRequest, TResponse, TData, TError>(\n config: Omit<PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>, 'type'>,\n): PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> => ({\n ...config,\n type: 'plain',\n});\n"],"mappings":";AAEA,OAAO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CACjCC,MAAuF;EAAA,OAAAC,aAAA,CAAAA,aAAA,KAEpFD,MAAM;IACTE,IAAI,EAAE;EAAO;AAAA,CACf","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["queryFn", "refetchInterval"];
4
- import { useQuery } from '@tanstack/react-query';
4
+ import { skipToken, useQuery } from '@tanstack/react-query';
5
5
  import { useRefetchInterval } from '../../hooks/useRefetchInterval';
6
6
  import { normalizeStatus } from '../../utils/normalizeStatus';
7
+ import { warnDisabledRefetch } from '../../utils/warnDisabledRefetch';
7
8
  import { composeOptions } from './utils';
8
9
  var usePlainQueryDataOptions = function usePlainQueryDataOptions(composedOptions) {
9
10
  var queryFnOption = composedOptions.queryFn,
@@ -21,9 +22,11 @@ export var usePlainQueryData = function usePlainQueryData(context, dataSource, p
21
22
  var extendedOptions = composeOptions(context, dataSource, params, options);
22
23
  var composedOptions = usePlainQueryDataOptions(extendedOptions);
23
24
  var state = useQuery(composedOptions);
25
+ var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;
24
26
  return _objectSpread(_objectSpread({}, state), {}, {
25
27
  status: normalizeStatus(state.status, state.fetchStatus),
26
- originalStatus: state.status
28
+ originalStatus: state.status,
29
+ refetch: isDisabled ? warnDisabledRefetch : state.refetch
27
30
  });
28
31
  };
29
32
  // #sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useQuery","useRefetchInterval","normalizeStatus","composeOptions","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","usePlainQueryData","context","dataSource","params","options","extendedOptions","state","status","fetchStatus","originalStatus"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAmCA,QAAQ,QAAO,uBAAuB;AAYzE,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAG3D,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAC1BC,eAMC,EAOA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCZ,kBAAkB,CAACO,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,wBAAwB,CAACgB,eAAe,CAAC;EACjE,IAAMC,KAAK,GAAGrB,QAAQ,CAACK,eAAe,CAAC;EAEvC,OAAAS,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRC,MAAM,EAAEpB,eAAe,CAACmB,KAAK,CAACC,MAAM,EAAED,KAAK,CAACE,WAAW,CAAC;IACxDC,cAAc,EAAEH,KAAK,CAACC;EAAM;AAEpC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["skipToken","useQuery","useRefetchInterval","normalizeStatus","warnDisabledRefetch","composeOptions","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","usePlainQueryData","context","dataSource","params","options","extendedOptions","state","isDisabled","enabled","status","fetchStatus","originalStatus","refetch"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, skipToken, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n refetch: isDisabled ? warnDisabledRefetch : state.refetch,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAmCA,SAAS,EAAEC,QAAQ,QAAO,uBAAuB;AAYpF,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAC3D,SAAQC,mBAAmB,QAAO,iCAAiC;AAGnE,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAC1BC,eAMC,EAOA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCb,kBAAkB,CAACQ,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,wBAAwB,CAACgB,eAAe,CAAC;EACjE,IAAMC,KAAK,GAAGtB,QAAQ,CAACM,eAAe,CAAC;EAEvC,IAAMiB,UAAU,GAAGjB,eAAe,CAACkB,OAAO,KAAK,KAAK,IAAIlB,eAAe,CAACE,OAAO,KAAKT,SAAS;EAE7F,OAAAgB,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRG,MAAM,EAAEvB,eAAe,CAACoB,KAAK,CAACG,MAAM,EAAEH,KAAK,CAACI,WAAW,CAAC;IACxDC,cAAc,EAAEL,KAAK,CAACG,MAAM;IAC5BG,OAAO,EAAEL,UAAU,GAAGpB,mBAAmB,GAAGmB,KAAK,CAACM;EAAO;AAEjE,CAAC","ignoreList":[]}
@@ -1,14 +1,14 @@
1
1
  import type { DefaultError, QueryFunctionContext, QueryKey, QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
2
- import type { Overwrite } from 'utility-types';
3
- import type { ActualData, ActualResponse, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
2
+ import type { Assign, Overwrite } from 'utility-types';
3
+ import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
4
  import type { QueryDataSourceContext } from '../../types/base';
5
5
  import type { QueryDataAdditionalOptions } from '../../types/options';
6
- export type QueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = Overwrite<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>>;
7
- export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, TErrorResponse, QueryObserverExtendedOptions<ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, NoInfer<TError>, ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>, ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>, DataSourceKey>, ResultWrapper<QueryObserverResult<ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>, NoInfer<TError>>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>, NoInfer<TErrorResponse>>, QueryFunctionContext<DataSourceKey>> & {
6
+ export type QueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = Assign<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>>;
7
+ export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, QueryObserverExtendedOptions<NoInfer<TResponse>, NoInfer<TError>, ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TResponse>, DataSourceKey>, ResultWrapper<QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>>, QueryFunctionContext<DataSourceKey>> & {
8
8
  type: 'plain';
9
9
  };
10
- export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any, any>;
11
- type ResultWrapper<TResult, TResponse, TData, TError, TErrorResponse> = TResult extends QueryObserverResult<ActualData<TResponse, TData, TErrorResponse>, TError> ? Overwrite<TResult, {
10
+ export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
11
+ type ResultWrapper<TResult, TResponse, TData, TError> = TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError> ? Overwrite<TResult, {
12
12
  status: DataLoaderStatus;
13
13
  }> & {
14
14
  originalStatus: TResult['status'];
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {\n ActualData,\n ActualResponse,\n DataLoaderStatus,\n DataSource,\n DataSourceKey,\n} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Overwrite<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError, TErrorResponse> =\n DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n TErrorResponse,\n QueryObserverExtendedOptions<\n ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n NoInfer<TError>,\n ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>,\n ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<\n ActualData<NoInfer<TResponse>, NoInfer<TData>, NoInfer<TErrorResponse>>,\n NoInfer<TError>\n >,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>,\n NoInfer<TErrorResponse>\n >,\n QueryFunctionContext<DataSourceKey>\n > & {\n type: 'plain';\n };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError, TErrorResponse> =\n TResult extends QueryObserverResult<ActualData<TResponse, TData, TErrorResponse>, TError>\n ? Overwrite<TResult, {status: DataLoaderStatus}> & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Assign<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n ActualData<NoInfer<TData>, NoInfer<TResponse>>,\n NoInfer<TResponse>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite<TResult, {status: DataLoaderStatus}> & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -1,40 +1,29 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
2
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import { skipToken } from '@tanstack/react-query';
5
5
  import { composeFullKey, idle } from '../../../core';
6
- import { formatNullableValue, parseNullableValue } from '../utils';
6
+ import { formatNullableValue } from '../../utils/formatNullableValue';
7
+ import { parseNullableValue } from '../../utils/parseNullableValue';
7
8
  export var composeOptions = function composeOptions(context, dataSource, params, options) {
8
9
  var transformParams = dataSource.transformParams,
9
- transformResponse = dataSource.transformResponse,
10
- transformError = dataSource.transformError;
10
+ transformResponse = dataSource.transformResponse;
11
11
  var queryFn = /*#__PURE__*/function () {
12
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetchContext) {
12
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(fetchContext) {
13
13
  var response;
14
- return _regeneratorRuntime.wrap(function _callee$(_context) {
14
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
15
15
  while (1) switch (_context.prev = _context.next) {
16
16
  case 0:
17
- _context.prev = 0;
18
- _context.next = 3;
17
+ _context.next = 2;
19
18
  return dataSource.fetch(context, fetchContext, transformParams ? transformParams(params) : params);
20
- case 3:
19
+ case 2:
21
20
  response = _context.sent;
22
21
  return _context.abrupt("return", formatNullableValue(response));
23
- case 7:
24
- _context.prev = 7;
25
- _context.t0 = _context["catch"](0);
26
- if (transformError) {
27
- _context.next = 11;
28
- break;
29
- }
30
- throw _context.t0;
31
- case 11:
32
- return _context.abrupt("return", formatNullableValue(transformError(_context.t0)));
33
- case 12:
22
+ case 4:
34
23
  case "end":
35
24
  return _context.stop();
36
25
  }
37
- }, _callee, null, [[0, 7]]);
26
+ }, _callee);
38
27
  }));
39
28
  return function queryFn(_x) {
40
29
  return _ref.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["skipToken","composeFullKey","idle","formatNullableValue","parseNullableValue","composeOptions","context","dataSource","params","options","transformParams","transformResponse","transformError","queryFn","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetchContext","response","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","t0","stop","_x","apply","arguments","select","actualResponse","_objectSpread","queryKey"],"sources":["utils.ts"],"sourcesContent":["import {type QueryFunctionContext, skipToken} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\nimport type {nullSymbol, undefinedSymbol} from '../utils';\nimport {formatNullableValue, parseNullableValue} from '../utils';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\n\nexport const composeOptions = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {transformParams, transformResponse, transformError} = dataSource;\n\n const queryFn = async (\n fetchContext: QueryFunctionContext<DataSourceKey>,\n ): Promise<DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol> => {\n try {\n const response = await dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(params) : params,\n );\n\n return formatNullableValue(response);\n } catch (error) {\n if (!transformError) {\n throw error;\n }\n\n return formatNullableValue(transformError(error));\n }\n };\n\n const select = (\n response: DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol,\n ): DataSourceData<TDataSource> => {\n const actualResponse = parseNullableValue(response);\n\n return transformResponse ? transformResponse(actualResponse) : actualResponse;\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;AAAA,SAAmCA,SAAS,QAAO,uBAAuB;AAE1E,SAAQC,cAAc,EAAEC,IAAI,QAAO,eAAe;AAWlD,SAAQC,mBAAmB,EAAEC,kBAAkB,QAAO,UAAU;AAIhE,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAOhD;EACD,IAAOC,eAAe,GAAuCH,UAAU,CAAhEG,eAAe;IAAEC,iBAAiB,GAAoBJ,UAAU,CAA/CI,iBAAiB;IAAEC,cAAc,GAAIL,UAAU,CAA5BK,cAAc;EAEzD,IAAMC,OAAO;IAAA,IAAAC,IAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,QACZC,YAAiD;MAAA,IAAAC,QAAA;MAAA,OAAAJ,mBAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAE,IAAA;YAAA,OAGtBlB,UAAU,CAACmB,KAAK,CACnCpB,OAAO,EACPa,YAAY,EACZT,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAChD,CAAC;UAAA;YAJKY,QAAQ,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAMPzB,mBAAmB,CAACiB,QAAQ,CAAC;UAAA;YAAAG,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAM,EAAA,GAAAN,QAAA;YAAA,IAE/BX,cAAc;cAAAW,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,MAAAF,QAAA,CAAAM,EAAA;UAAA;YAAA,OAAAN,QAAA,CAAAK,MAAA,WAIZzB,mBAAmB,CAACS,cAAc,CAAAW,QAAA,CAAAM,EAAM,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAZ,OAAA;IAAA,CAExD;IAAA,gBAlBKL,OAAOA,CAAAkB,EAAA;MAAA,OAAAjB,IAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAkBZ;EAED,IAAMC,MAAM,GAAG,SAATA,MAAMA,CACRd,QAAsF,EACxD;IAC9B,IAAMe,cAAc,GAAG/B,kBAAkB,CAACgB,QAAQ,CAAC;IAEnD,OAAOT,iBAAiB,GAAGA,iBAAiB,CAACwB,cAAc,CAAC,GAAGA,cAAc;EACjF,CAAC;EAED,OAAAC,aAAA,CAAAA,aAAA;IACIC,QAAQ,EAAEpC,cAAc,CAACM,UAAU,EAAEC,MAAM,CAAC;IAC5CK,OAAO,EAAEL,MAAM,KAAKN,IAAI,GAAGF,SAAS,GAAGa,OAAO;IAC9CqB,MAAM,EAANA;EAAM,GACH3B,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["skipToken","composeFullKey","idle","formatNullableValue","parseNullableValue","composeOptions","context","dataSource","params","options","transformParams","transformResponse","queryFn","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetchContext","response","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","stop","_x","apply","arguments","select","actualResponse","_objectSpread","queryKey"],"sources":["utils.ts"],"sourcesContent":["import {type QueryFunctionContext, skipToken} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\nimport type {nullSymbol, undefinedSymbol} from '../../constants';\nimport {formatNullableValue} from '../../utils/formatNullableValue';\nimport {parseNullableValue} from '../../utils/parseNullableValue';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\n\nexport const composeOptions = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {transformParams, transformResponse} = dataSource;\n\n const queryFn = async (\n fetchContext: QueryFunctionContext<DataSourceKey>,\n ): Promise<DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol> => {\n const response = await dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(params) : params,\n );\n\n return formatNullableValue(response);\n };\n\n const select = (\n response: DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol,\n ): DataSourceData<TDataSource> => {\n const actualResponse = parseNullableValue(response) as DataSourceData<TDataSource>;\n\n return transformResponse ? transformResponse(actualResponse) : actualResponse;\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;AAAA,SAAmCA,SAAS,QAAO,uBAAuB;AAE1E,SAAQC,cAAc,EAAEC,IAAI,QAAO,eAAe;AAWlD,SAAQC,mBAAmB,QAAO,iCAAiC;AACnE,SAAQC,kBAAkB,QAAO,gCAAgC;AAIjE,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAOhD;EACD,IAAOC,eAAe,GAAuBH,UAAU,CAAhDG,eAAe;IAAEC,iBAAiB,GAAIJ,UAAU,CAA/BI,iBAAiB;EAEzC,IAAMC,OAAO;IAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACZC,YAAiD;MAAA,IAAAC,QAAA;MAAA,OAAAJ,mBAAA,GAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAE1BjB,UAAU,CAACkB,KAAK,CACnCnB,OAAO,EACPY,YAAY,EACZR,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAChD,CAAC;UAAA;YAJKW,QAAQ,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAMPxB,mBAAmB,CAACgB,QAAQ,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA,CACvC;IAAA,gBAVKL,OAAOA,CAAAiB,EAAA;MAAA,OAAAhB,IAAA,CAAAiB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAUZ;EAED,IAAMC,MAAM,GAAG,SAATA,MAAMA,CACRb,QAAsF,EACxD;IAC9B,IAAMc,cAAc,GAAG7B,kBAAkB,CAACe,QAAQ,CAAgC;IAElF,OAAOR,iBAAiB,GAAGA,iBAAiB,CAACsB,cAAc,CAAC,GAAGA,cAAc;EACjF,CAAC;EAED,OAAAC,aAAA,CAAAA,aAAA;IACIC,QAAQ,EAAElC,cAAc,CAACM,UAAU,EAAEC,MAAM,CAAC;IAC5CI,OAAO,EAAEJ,MAAM,KAAKN,IAAI,GAAGF,SAAS,GAAGY,OAAO;IAC9CoB,MAAM,EAANA;EAAM,GACHzB,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
@@ -16,3 +16,5 @@ export type { ProgressiveRefetchOptions } from './utils/getProgressiveRefetch';
16
16
  export { getProgressiveRefetch } from './utils/getProgressiveRefetch';
17
17
  export type { ClientDataManagerConfig } from './ClientDataManager';
18
18
  export { ClientDataManager } from './ClientDataManager';
19
+ export { DataSourceProvider } from './DataSourceProvider';
20
+ export type { QueryNormalizer } from './types/normalizer';
@@ -10,4 +10,5 @@ export { composeOptions as composePlainQueryOptions } from './impl/plain/utils';
10
10
  export { normalizeStatus } from './utils/normalizeStatus';
11
11
  export { getProgressiveRefetch } from './utils/getProgressiveRefetch';
12
12
  export { ClientDataManager } from './ClientDataManager';
13
+ export { DataSourceProvider } from './DataSourceProvider';
13
14
  // #sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useQueryContext","useQueryData","useQueryResponses","useRefetchAll","useRefetchErrored","makeInfiniteQueryDataSource","composeOptions","composeInfiniteQueryOptions","makePlainQueryDataSource","composePlainQueryOptions","normalizeStatus","getProgressiveRefetch","ClientDataManager"],"sources":["index.ts"],"sourcesContent":["export type {QueryDataSourceContext, AnyQueryDataSource} from './types/base';\nexport type {RefetchIntervalFunction, RefetchInterval} from './types/refetch-interval';\n\nexport {useQueryContext} from './hooks/useQueryContext';\nexport {useQueryData} from './hooks/useQueryData';\nexport {useQueryResponses} from './hooks/useQueryResponses';\nexport {useRefetchAll} from './hooks/useRefetchAll';\nexport {useRefetchErrored} from './hooks/useRefetchErrored';\n\nexport type {InfiniteQueryDataSource, AnyInfiniteQueryDataSource} from './impl/infinite/types';\nexport {makeInfiniteQueryDataSource} from './impl/infinite/factory';\nexport {composeOptions as composeInfiniteQueryOptions} from './impl/infinite/utils';\n\nexport type {PlainQueryDataSource, AnyPlainQueryDataSource} from './impl/plain/types';\nexport {makePlainQueryDataSource} from './impl/plain/factory';\nexport {composeOptions as composePlainQueryOptions} from './impl/plain/utils';\n\nexport {normalizeStatus} from './utils/normalizeStatus';\nexport type {ProgressiveRefetchOptions} from './utils/getProgressiveRefetch';\nexport {getProgressiveRefetch} from './utils/getProgressiveRefetch';\n\nexport type {ClientDataManagerConfig} from './ClientDataManager';\nexport {ClientDataManager} from './ClientDataManager';\n"],"mappings":"AAGA,SAAQA,eAAe,QAAO,yBAAyB;AACvD,SAAQC,YAAY,QAAO,sBAAsB;AACjD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAG3D,SAAQC,2BAA2B,QAAO,yBAAyB;AACnE,SAAQC,cAAc,IAAIC,2BAA2B,QAAO,uBAAuB;AAGnF,SAAQC,wBAAwB,QAAO,sBAAsB;AAC7D,SAAQF,cAAc,IAAIG,wBAAwB,QAAO,oBAAoB;AAE7E,SAAQC,eAAe,QAAO,yBAAyB;AAEvD,SAAQC,qBAAqB,QAAO,+BAA+B;AAGnE,SAAQC,iBAAiB,QAAO,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["useQueryContext","useQueryData","useQueryResponses","useRefetchAll","useRefetchErrored","makeInfiniteQueryDataSource","composeOptions","composeInfiniteQueryOptions","makePlainQueryDataSource","composePlainQueryOptions","normalizeStatus","getProgressiveRefetch","ClientDataManager","DataSourceProvider"],"sources":["index.ts"],"sourcesContent":["export type {QueryDataSourceContext, AnyQueryDataSource} from './types/base';\nexport type {RefetchIntervalFunction, RefetchInterval} from './types/refetch-interval';\n\nexport {useQueryContext} from './hooks/useQueryContext';\nexport {useQueryData} from './hooks/useQueryData';\nexport {useQueryResponses} from './hooks/useQueryResponses';\nexport {useRefetchAll} from './hooks/useRefetchAll';\nexport {useRefetchErrored} from './hooks/useRefetchErrored';\n\nexport type {InfiniteQueryDataSource, AnyInfiniteQueryDataSource} from './impl/infinite/types';\nexport {makeInfiniteQueryDataSource} from './impl/infinite/factory';\nexport {composeOptions as composeInfiniteQueryOptions} from './impl/infinite/utils';\n\nexport type {PlainQueryDataSource, AnyPlainQueryDataSource} from './impl/plain/types';\nexport {makePlainQueryDataSource} from './impl/plain/factory';\nexport {composeOptions as composePlainQueryOptions} from './impl/plain/utils';\n\nexport {normalizeStatus} from './utils/normalizeStatus';\nexport type {ProgressiveRefetchOptions} from './utils/getProgressiveRefetch';\nexport {getProgressiveRefetch} from './utils/getProgressiveRefetch';\n\nexport type {ClientDataManagerConfig} from './ClientDataManager';\nexport {ClientDataManager} from './ClientDataManager';\n\nexport {DataSourceProvider} from './DataSourceProvider';\n\nexport type {QueryNormalizer} from './types/normalizer';\n"],"mappings":"AAGA,SAAQA,eAAe,QAAO,yBAAyB;AACvD,SAAQC,YAAY,QAAO,sBAAsB;AACjD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAG3D,SAAQC,2BAA2B,QAAO,yBAAyB;AACnE,SAAQC,cAAc,IAAIC,2BAA2B,QAAO,uBAAuB;AAGnF,SAAQC,wBAAwB,QAAO,sBAAsB;AAC7D,SAAQF,cAAc,IAAIG,wBAAwB,QAAO,oBAAoB;AAE7E,SAAQC,eAAe,QAAO,yBAAyB;AAEvD,SAAQC,qBAAqB,QAAO,+BAA+B;AAGnE,SAAQC,iBAAiB,QAAO,qBAAqB;AAErD,SAAQC,kBAAkB,QAAO,sBAAsB","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import type { Data, NormalizedData } from '@normy/core/types/types';
2
+ export interface QueryNormalizer {
3
+ /** Get normalized data */
4
+ getNormalizedData: () => NormalizedData;
5
+ /** Set normalized data (for manual updates, WebSocket, etc.) */
6
+ setNormalizedData: (data: Data) => void;
7
+ /** Clear all normalized data */
8
+ clear: () => void;
9
+ /** Get object by ID */
10
+ getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;
11
+ /** Get query fragment */
12
+ getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;
13
+ /** Get dependent queries by data */
14
+ getDependentQueries: (mutationData: Data) => ReadonlyArray<readonly unknown[]>;
15
+ /** Get dependent queries by IDs */
16
+ getDependentQueriesByIds: (ids: ReadonlyArray<string>) => ReadonlyArray<readonly unknown[]>;
17
+ /** Subscribe to QueryCache changes */
18
+ subscribe: () => void;
19
+ /** Unsubscribe from QueryCache changes */
20
+ unsubscribe: () => void;
21
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ // #sourceMappingURL=normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["normalizer.ts"],"sourcesContent":["import type {Data, NormalizedData} from '@normy/core/types/types';\n\nexport interface QueryNormalizer {\n /** Get normalized data */\n getNormalizedData: () => NormalizedData;\n /** Set normalized data (for manual updates, WebSocket, etc.) */\n setNormalizedData: (data: Data) => void;\n /** Clear all normalized data */\n clear: () => void;\n /** Get object by ID */\n getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;\n /** Get query fragment */\n getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;\n /** Get dependent queries by data */\n getDependentQueries: (mutationData: Data) => ReadonlyArray<readonly unknown[]>;\n /** Get dependent queries by IDs */\n getDependentQueriesByIds: (ids: ReadonlyArray<string>) => ReadonlyArray<readonly unknown[]>;\n /** Subscribe to QueryCache changes */\n subscribe: () => void;\n /** Unsubscribe from QueryCache changes */\n unsubscribe: () => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,17 @@
1
1
  import type { DefaultError, QueryKey } from '@tanstack/react-query';
2
+ import type { OptimisticConfig } from '../../core/types/Normalizer';
2
3
  import type { RefetchInterval } from './refetch-interval';
3
4
  export interface QueryDataAdditionalOptions<TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
4
5
  refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;
6
+ /**
7
+ * @deprecated The use of the enabled option is deprecated.
8
+ * It is recommended to use idle as query parameters to control query state.
9
+ */
10
+ enabled?: boolean;
11
+ /** Normalization configuration (enable/disable) */
12
+ normalize?: boolean;
13
+ /** Optimistic data update configuration */
14
+ optimistic?: boolean | OptimisticConfig;
15
+ /** Invalidate data configuration */
16
+ invalidate?: boolean;
5
17
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {OptimisticConfig} from '../../core/types/Normalizer';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n /**\n * @deprecated The use of the enabled option is deprecated.\n * It is recommended to use idle as query parameters to control query state.\n */\n enabled?: boolean;\n /** Normalization configuration (enable/disable) */\n normalize?: boolean;\n /** Optimistic data update configuration */\n optimistic?: boolean | OptimisticConfig;\n /** Invalidate data configuration */\n invalidate?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { nullSymbol, undefinedSymbol } from '../../constants';
2
+ import { formatNullableValue } from '../formatNullableValue';
3
+ describe('formatNullableValue', function () {
4
+ it('should return undefinedSymbol for undefined', function () {
5
+ expect(formatNullableValue(undefined)).toBe(undefinedSymbol);
6
+ });
7
+ it('should return nullSymbol for null', function () {
8
+ expect(formatNullableValue(null)).toBe(nullSymbol);
9
+ });
10
+ it('should return the value for non-nullable values', function () {
11
+ expect(formatNullableValue(42)).toBe(42);
12
+ expect(formatNullableValue(0)).toBe(0);
13
+ expect(formatNullableValue('test')).toBe('test');
14
+ expect(formatNullableValue('')).toBe('');
15
+ expect(formatNullableValue(true)).toBe(true);
16
+ expect(formatNullableValue(false)).toBe(false);
17
+ var obj = {
18
+ a: 1
19
+ };
20
+ expect(formatNullableValue(obj)).toBe(obj);
21
+ var arr = [1, 2, 3];
22
+ expect(formatNullableValue(arr)).toBe(arr);
23
+ });
24
+ });
25
+ // #sourceMappingURL=formatNullableValue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nullSymbol","undefinedSymbol","formatNullableValue","describe","it","expect","undefined","toBe","obj","a","arr"],"sources":["formatNullableValue.test.ts"],"sourcesContent":["import {nullSymbol, undefinedSymbol} from '../../constants';\nimport {formatNullableValue} from '../formatNullableValue';\n\ndescribe('formatNullableValue', () => {\n it('should return undefinedSymbol for undefined', () => {\n expect(formatNullableValue(undefined)).toBe(undefinedSymbol);\n });\n\n it('should return nullSymbol for null', () => {\n expect(formatNullableValue(null)).toBe(nullSymbol);\n });\n\n it('should return the value for non-nullable values', () => {\n expect(formatNullableValue(42)).toBe(42);\n expect(formatNullableValue(0)).toBe(0);\n expect(formatNullableValue('test')).toBe('test');\n expect(formatNullableValue('')).toBe('');\n expect(formatNullableValue(true)).toBe(true);\n expect(formatNullableValue(false)).toBe(false);\n\n const obj = {a: 1};\n expect(formatNullableValue(obj)).toBe(obj);\n\n const arr = [1, 2, 3];\n expect(formatNullableValue(arr)).toBe(arr);\n });\n});\n"],"mappings":"AAAA,SAAQA,UAAU,EAAEC,eAAe,QAAO,iBAAiB;AAC3D,SAAQC,mBAAmB,QAAO,wBAAwB;AAE1DC,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EAClCC,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACpDC,MAAM,CAACH,mBAAmB,CAACI,SAAS,CAAC,CAAC,CAACC,IAAI,CAACN,eAAe,CAAC;EAChE,CAAC,CAAC;EAEFG,EAAE,CAAC,mCAAmC,EAAE,YAAM;IAC1CC,MAAM,CAACH,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAACK,IAAI,CAACP,UAAU,CAAC;EACtD,CAAC,CAAC;EAEFI,EAAE,CAAC,iDAAiD,EAAE,YAAM;IACxDC,MAAM,CAACH,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC;IACxCF,MAAM,CAACH,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IACtCF,MAAM,CAACH,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAACK,IAAI,CAAC,MAAM,CAAC;IAChDF,MAAM,CAACH,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC;IACxCF,MAAM,CAACH,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAACK,IAAI,CAAC,IAAI,CAAC;IAC5CF,MAAM,CAACH,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAACK,IAAI,CAAC,KAAK,CAAC;IAE9C,IAAMC,GAAG,GAAG;MAACC,CAAC,EAAE;IAAC,CAAC;IAClBJ,MAAM,CAACH,mBAAmB,CAACM,GAAG,CAAC,CAAC,CAACD,IAAI,CAACC,GAAG,CAAC;IAE1C,IAAME,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrBL,MAAM,CAACH,mBAAmB,CAACQ,GAAG,CAAC,CAAC,CAACH,IAAI,CAACG,GAAG,CAAC;EAC9C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ import { getProgressiveRefetch } from '../getProgressiveRefetch';
2
+ describe('getProgressiveRefetch', function () {
3
+ it('should return a function', function () {
4
+ var refetchFn = getProgressiveRefetch({
5
+ minInterval: 1000,
6
+ maxInterval: 10000
7
+ });
8
+ expect(refetchFn).toEqual(expect.any(Function));
9
+ });
10
+ it('should return minInterval for the first call (count = 0)', function () {
11
+ var minInterval = 1000;
12
+ var maxInterval = 10000;
13
+ var refetchFn = getProgressiveRefetch({
14
+ minInterval: minInterval,
15
+ maxInterval: maxInterval
16
+ });
17
+ var result = refetchFn({}, 0);
18
+ expect(result).toBe(minInterval);
19
+ });
20
+ it('should increase interval by multiplier for each count', function () {
21
+ var minInterval = 1000;
22
+ var maxInterval = 10000;
23
+ var multiplier = 2;
24
+ var refetchFn = getProgressiveRefetch({
25
+ minInterval: minInterval,
26
+ maxInterval: maxInterval,
27
+ multiplier: multiplier
28
+ });
29
+ expect(refetchFn({}, 0)).toBe(1000);
30
+ expect(refetchFn({}, 1)).toBe(2000);
31
+ expect(refetchFn({}, 2)).toBe(4000);
32
+ expect(refetchFn({}, 3)).toBe(8000);
33
+ });
34
+ it('should not exceed maxInterval', function () {
35
+ var minInterval = 1000;
36
+ var maxInterval = 5000;
37
+ var multiplier = 2;
38
+ var refetchFn = getProgressiveRefetch({
39
+ minInterval: minInterval,
40
+ maxInterval: maxInterval,
41
+ multiplier: multiplier
42
+ });
43
+ expect(refetchFn({}, 0)).toBe(1000);
44
+ expect(refetchFn({}, 1)).toBe(2000);
45
+ expect(refetchFn({}, 2)).toBe(4000);
46
+ expect(refetchFn({}, 3)).toBe(5000);
47
+ expect(refetchFn({}, 4)).toBe(5000);
48
+ });
49
+ it('should use default multiplier (2) if not provided', function () {
50
+ var minInterval = 1000;
51
+ var maxInterval = 10000;
52
+ var refetchFn = getProgressiveRefetch({
53
+ minInterval: minInterval,
54
+ maxInterval: maxInterval
55
+ });
56
+ expect(refetchFn({}, 0)).toBe(1000);
57
+ expect(refetchFn({}, 1)).toBe(2000);
58
+ expect(refetchFn({}, 2)).toBe(4000);
59
+ });
60
+ it('should work with custom multiplier', function () {
61
+ var minInterval = 1000;
62
+ var maxInterval = 10000;
63
+ var multiplier = 1.5;
64
+ var refetchFn = getProgressiveRefetch({
65
+ minInterval: minInterval,
66
+ maxInterval: maxInterval,
67
+ multiplier: multiplier
68
+ });
69
+ expect(refetchFn({}, 0)).toBe(1000);
70
+ expect(refetchFn({}, 1)).toBe(1500);
71
+ expect(refetchFn({}, 2)).toBe(2250);
72
+ });
73
+ });
74
+ // #sourceMappingURL=getProgressiveRefetch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getProgressiveRefetch","describe","it","refetchFn","minInterval","maxInterval","expect","toEqual","any","Function","result","toBe","multiplier"],"sources":["getProgressiveRefetch.test.ts"],"sourcesContent":["import type {Query} from '@tanstack/react-query';\n\nimport {getProgressiveRefetch} from '../getProgressiveRefetch';\n\ndescribe('getProgressiveRefetch', () => {\n it('should return a function', () => {\n const refetchFn = getProgressiveRefetch({\n minInterval: 1000,\n maxInterval: 10000,\n });\n\n expect(refetchFn).toEqual(expect.any(Function));\n });\n\n it('should return minInterval for the first call (count = 0)', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n });\n\n const result = refetchFn({} as Query, 0);\n\n expect(result).toBe(minInterval);\n });\n\n it('should increase interval by multiplier for each count', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const multiplier = 2;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n expect(refetchFn({} as Query, 3)).toBe(8000);\n });\n\n it('should not exceed maxInterval', () => {\n const minInterval = 1000;\n const maxInterval = 5000;\n const multiplier = 2;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n expect(refetchFn({} as Query, 3)).toBe(5000);\n expect(refetchFn({} as Query, 4)).toBe(5000);\n });\n\n it('should use default multiplier (2) if not provided', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n });\n\n it('should work with custom multiplier', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const multiplier = 1.5;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(1500);\n expect(refetchFn({} as Query, 2)).toBe(2250);\n });\n});\n"],"mappings":"AAEA,SAAQA,qBAAqB,QAAO,0BAA0B;AAE9DC,QAAQ,CAAC,uBAAuB,EAAE,YAAM;EACpCC,EAAE,CAAC,0BAA0B,EAAE,YAAM;IACjC,IAAMC,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAE,IAAI;MACjBC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFC,MAAM,CAACH,SAAS,CAAC,CAACI,OAAO,CAACD,MAAM,CAACE,GAAG,CAACC,QAAQ,CAAC,CAAC;EACnD,CAAC,CAAC;EAEFP,EAAE,CAAC,0DAA0D,EAAE,YAAM;IACjE,IAAME,WAAW,GAAG,IAAI;IACxB,IAAMC,WAAW,GAAG,KAAK;IACzB,IAAMF,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA;IACJ,CAAC,CAAC;IAEF,IAAMK,MAAM,GAAGP,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC;IAExCG,MAAM,CAACI,MAAM,CAAC,CAACC,IAAI,CAACP,WAAW,CAAC;EACpC,CAAC,CAAC;EAEFF,EAAE,CAAC,uDAAuD,EAAE,YAAM;IAC9D,IAAME,WAAW,GAAG,IAAI;IACxB,IAAMC,WAAW,GAAG,KAAK;IACzB,IAAMO,UAAU,GAAG,CAAC;IACpB,IAAMT,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA,WAAW;MACXO,UAAU,EAAVA;IACJ,CAAC,CAAC;IAEFN,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAChD,CAAC,CAAC;EAEFT,EAAE,CAAC,+BAA+B,EAAE,YAAM;IACtC,IAAME,WAAW,GAAG,IAAI;IACxB,IAAMC,WAAW,GAAG,IAAI;IACxB,IAAMO,UAAU,GAAG,CAAC;IACpB,IAAMT,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA,WAAW;MACXO,UAAU,EAAVA;IACJ,CAAC,CAAC;IAEFN,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAChD,CAAC,CAAC;EAEFT,EAAE,CAAC,mDAAmD,EAAE,YAAM;IAC1D,IAAME,WAAW,GAAG,IAAI;IACxB,IAAMC,WAAW,GAAG,KAAK;IACzB,IAAMF,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA;IACJ,CAAC,CAAC;IAEFC,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAChD,CAAC,CAAC;EAEFT,EAAE,CAAC,oCAAoC,EAAE,YAAM;IAC3C,IAAME,WAAW,GAAG,IAAI;IACxB,IAAMC,WAAW,GAAG,KAAK;IACzB,IAAMO,UAAU,GAAG,GAAG;IACtB,IAAMT,SAAS,GAAGH,qBAAqB,CAAC;MACpCI,WAAW,EAAXA,WAAW;MACXC,WAAW,EAAXA,WAAW;MACXO,UAAU,EAAVA;IACJ,CAAC,CAAC;IAEFN,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC5CL,MAAM,CAACH,SAAS,CAAC,CAAC,CAAC,EAAW,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAChD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}