@gravity-ui/data-source 0.1.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 (255) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +82 -0
  3. package/build/cjs/core/constants.d.ts +1 -0
  4. package/build/cjs/core/constants.js +8 -0
  5. package/build/cjs/core/constants.js.map +1 -0
  6. package/build/cjs/core/index.d.ts +13 -0
  7. package/build/cjs/core/index.js +81 -0
  8. package/build/cjs/core/index.js.map +1 -0
  9. package/build/cjs/core/types/DataLoaderStatus.d.ts +1 -0
  10. package/build/cjs/core/types/DataLoaderStatus.js +6 -0
  11. package/build/cjs/core/types/DataLoaderStatus.js.map +1 -0
  12. package/build/cjs/core/types/DataManger.d.ts +10 -0
  13. package/build/cjs/core/types/DataManger.js +6 -0
  14. package/build/cjs/core/types/DataManger.js.map +1 -0
  15. package/build/cjs/core/types/DataSource.d.ts +28 -0
  16. package/build/cjs/core/types/DataSource.js +6 -0
  17. package/build/cjs/core/types/DataSource.js.map +1 -0
  18. package/build/cjs/core/types/utils.d.ts +1 -0
  19. package/build/cjs/core/types/utils.js +6 -0
  20. package/build/cjs/core/types/utils.js.map +1 -0
  21. package/build/cjs/core/utils/composeFullKey.d.ts +2 -0
  22. package/build/cjs/core/utils/composeFullKey.js +15 -0
  23. package/build/cjs/core/utils/composeFullKey.js.map +1 -0
  24. package/build/cjs/core/utils/composeKey.d.ts +2 -0
  25. package/build/cjs/core/utils/composeKey.js +14 -0
  26. package/build/cjs/core/utils/composeKey.js.map +1 -0
  27. package/build/cjs/core/utils/getError.d.ts +3 -0
  28. package/build/cjs/core/utils/getError.js +14 -0
  29. package/build/cjs/core/utils/getError.js.map +1 -0
  30. package/build/cjs/core/utils/getStatus.d.ts +4 -0
  31. package/build/cjs/core/utils/getStatus.js +14 -0
  32. package/build/cjs/core/utils/getStatus.js.map +1 -0
  33. package/build/cjs/core/utils/hasTag.d.ts +2 -0
  34. package/build/cjs/core/utils/hasTag.js +18 -0
  35. package/build/cjs/core/utils/hasTag.js.map +1 -0
  36. package/build/cjs/core/utils/mergeStatuses.d.ts +2 -0
  37. package/build/cjs/core/utils/mergeStatuses.js +20 -0
  38. package/build/cjs/core/utils/mergeStatuses.js.map +1 -0
  39. package/build/cjs/core/utils/skipContext.d.ts +2 -0
  40. package/build/cjs/core/utils/skipContext.js +15 -0
  41. package/build/cjs/core/utils/skipContext.js.map +1 -0
  42. package/build/cjs/core/utils/withCancellation.d.ts +9 -0
  43. package/build/cjs/core/utils/withCancellation.js +26 -0
  44. package/build/cjs/core/utils/withCancellation.js.map +1 -0
  45. package/build/cjs/index.d.ts +3 -0
  46. package/build/cjs/index.js +39 -0
  47. package/build/cjs/index.js.map +1 -0
  48. package/build/cjs/react/DataManagerContext.d.ts +3 -0
  49. package/build/cjs/react/DataManagerContext.js +16 -0
  50. package/build/cjs/react/DataManagerContext.js.map +1 -0
  51. package/build/cjs/react/components/DataInfiniteLoader/DataInfiniteLoader.d.ts +3 -0
  52. package/build/cjs/react/components/DataInfiniteLoader/DataInfiniteLoader.js +48 -0
  53. package/build/cjs/react/components/DataInfiniteLoader/DataInfiniteLoader.js.map +1 -0
  54. package/build/cjs/react/components/DataInfiniteLoader/index.d.ts +2 -0
  55. package/build/cjs/react/components/DataInfiniteLoader/index.js +13 -0
  56. package/build/cjs/react/components/DataInfiniteLoader/index.js.map +1 -0
  57. package/build/cjs/react/components/DataInfiniteLoader/types.d.ts +19 -0
  58. package/build/cjs/react/components/DataInfiniteLoader/types.js +6 -0
  59. package/build/cjs/react/components/DataInfiniteLoader/types.js.map +1 -0
  60. package/build/cjs/react/components/DataLoader/DataLoader.d.ts +3 -0
  61. package/build/cjs/react/components/DataLoader/DataLoader.js +35 -0
  62. package/build/cjs/react/components/DataLoader/DataLoader.js.map +1 -0
  63. package/build/cjs/react/components/DataLoader/index.d.ts +2 -0
  64. package/build/cjs/react/components/DataLoader/index.js +13 -0
  65. package/build/cjs/react/components/DataLoader/index.js.map +1 -0
  66. package/build/cjs/react/components/DataLoader/types.d.ts +11 -0
  67. package/build/cjs/react/components/DataLoader/types.js +6 -0
  68. package/build/cjs/react/components/DataLoader/types.js.map +1 -0
  69. package/build/cjs/react/components/types.d.ts +9 -0
  70. package/build/cjs/react/components/types.js +6 -0
  71. package/build/cjs/react/components/types.js.map +1 -0
  72. package/build/cjs/react/index.d.ts +5 -0
  73. package/build/cjs/react/index.js +55 -0
  74. package/build/cjs/react/index.js.map +1 -0
  75. package/build/cjs/react/withDataManager.d.ts +6 -0
  76. package/build/cjs/react/withDataManager.js +22 -0
  77. package/build/cjs/react/withDataManager.js.map +1 -0
  78. package/build/cjs/react-query/ClientDataManager.d.ts +15 -0
  79. package/build/cjs/react-query/ClientDataManager.js +94 -0
  80. package/build/cjs/react-query/ClientDataManager.js.map +1 -0
  81. package/build/cjs/react-query/hooks/useQueryContext.d.ts +2 -0
  82. package/build/cjs/react-query/hooks/useQueryContext.js +18 -0
  83. package/build/cjs/react-query/hooks/useQueryContext.js.map +1 -0
  84. package/build/cjs/react-query/hooks/useQueryData.d.ts +3 -0
  85. package/build/cjs/react-query/hooks/useQueryData.js +26 -0
  86. package/build/cjs/react-query/hooks/useQueryData.js.map +1 -0
  87. package/build/cjs/react-query/hooks/useQueryResponses.d.ts +11 -0
  88. package/build/cjs/react-query/hooks/useQueryResponses.js +18 -0
  89. package/build/cjs/react-query/hooks/useQueryResponses.js.map +1 -0
  90. package/build/cjs/react-query/hooks/useRefetchAll.d.ts +3 -0
  91. package/build/cjs/react-query/hooks/useRefetchAll.js +21 -0
  92. package/build/cjs/react-query/hooks/useRefetchAll.js.map +1 -0
  93. package/build/cjs/react-query/hooks/useRefetchErrored.d.ts +4 -0
  94. package/build/cjs/react-query/hooks/useRefetchErrored.js +25 -0
  95. package/build/cjs/react-query/hooks/useRefetchErrored.js.map +1 -0
  96. package/build/cjs/react-query/impl/infinite/factory.d.ts +2 -0
  97. package/build/cjs/react-query/impl/infinite/factory.js +14 -0
  98. package/build/cjs/react-query/impl/infinite/factory.js.map +1 -0
  99. package/build/cjs/react-query/impl/infinite/hooks.d.ts +3 -0
  100. package/build/cjs/react-query/impl/infinite/hooks.js +17 -0
  101. package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -0
  102. package/build/cjs/react-query/impl/infinite/types.d.ts +18 -0
  103. package/build/cjs/react-query/impl/infinite/types.js +6 -0
  104. package/build/cjs/react-query/impl/infinite/types.js.map +1 -0
  105. package/build/cjs/react-query/impl/infinite/utils.d.ts +5 -0
  106. package/build/cjs/react-query/impl/infinite/utils.js +49 -0
  107. package/build/cjs/react-query/impl/infinite/utils.js.map +1 -0
  108. package/build/cjs/react-query/impl/plain/factory.d.ts +2 -0
  109. package/build/cjs/react-query/impl/plain/factory.js +14 -0
  110. package/build/cjs/react-query/impl/plain/factory.js.map +1 -0
  111. package/build/cjs/react-query/impl/plain/hooks.d.ts +3 -0
  112. package/build/cjs/react-query/impl/plain/hooks.js +17 -0
  113. package/build/cjs/react-query/impl/plain/hooks.js.map +1 -0
  114. package/build/cjs/react-query/impl/plain/types.d.ts +14 -0
  115. package/build/cjs/react-query/impl/plain/types.js +6 -0
  116. package/build/cjs/react-query/impl/plain/types.js.map +1 -0
  117. package/build/cjs/react-query/impl/plain/utils.d.ts +5 -0
  118. package/build/cjs/react-query/impl/plain/utils.js +28 -0
  119. package/build/cjs/react-query/impl/plain/utils.js.map +1 -0
  120. package/build/cjs/react-query/index.d.ts +15 -0
  121. package/build/cjs/react-query/index.js +83 -0
  122. package/build/cjs/react-query/index.js.map +1 -0
  123. package/build/cjs/react-query/types.d.ts +7 -0
  124. package/build/cjs/react-query/types.js +6 -0
  125. package/build/cjs/react-query/types.js.map +1 -0
  126. package/build/cjs/react-query/utils/normalizeStatus.d.ts +3 -0
  127. package/build/cjs/react-query/utils/normalizeStatus.js +13 -0
  128. package/build/cjs/react-query/utils/normalizeStatus.js.map +1 -0
  129. package/build/esm/core/constants.d.ts +1 -0
  130. package/build/esm/core/constants.js +2 -0
  131. package/build/esm/core/constants.js.map +1 -0
  132. package/build/esm/core/index.d.ts +13 -0
  133. package/build/esm/core/index.js +10 -0
  134. package/build/esm/core/index.js.map +1 -0
  135. package/build/esm/core/types/DataLoaderStatus.d.ts +1 -0
  136. package/build/esm/core/types/DataLoaderStatus.js +2 -0
  137. package/build/esm/core/types/DataLoaderStatus.js.map +1 -0
  138. package/build/esm/core/types/DataManger.d.ts +10 -0
  139. package/build/esm/core/types/DataManger.js +2 -0
  140. package/build/esm/core/types/DataManger.js.map +1 -0
  141. package/build/esm/core/types/DataSource.d.ts +28 -0
  142. package/build/esm/core/types/DataSource.js +2 -0
  143. package/build/esm/core/types/DataSource.js.map +1 -0
  144. package/build/esm/core/types/utils.d.ts +1 -0
  145. package/build/esm/core/types/utils.js +2 -0
  146. package/build/esm/core/types/utils.js.map +1 -0
  147. package/build/esm/core/utils/composeFullKey.d.ts +2 -0
  148. package/build/esm/core/utils/composeFullKey.js +8 -0
  149. package/build/esm/core/utils/composeFullKey.js.map +1 -0
  150. package/build/esm/core/utils/composeKey.d.ts +2 -0
  151. package/build/esm/core/utils/composeKey.js +7 -0
  152. package/build/esm/core/utils/composeKey.js.map +1 -0
  153. package/build/esm/core/utils/getError.d.ts +3 -0
  154. package/build/esm/core/utils/getError.js +8 -0
  155. package/build/esm/core/utils/getError.js.map +1 -0
  156. package/build/esm/core/utils/getStatus.d.ts +4 -0
  157. package/build/esm/core/utils/getStatus.js +8 -0
  158. package/build/esm/core/utils/getStatus.js.map +1 -0
  159. package/build/esm/core/utils/hasTag.d.ts +2 -0
  160. package/build/esm/core/utils/hasTag.js +12 -0
  161. package/build/esm/core/utils/hasTag.js.map +1 -0
  162. package/build/esm/core/utils/mergeStatuses.d.ts +2 -0
  163. package/build/esm/core/utils/mergeStatuses.js +14 -0
  164. package/build/esm/core/utils/mergeStatuses.js.map +1 -0
  165. package/build/esm/core/utils/skipContext.d.ts +2 -0
  166. package/build/esm/core/utils/skipContext.js +9 -0
  167. package/build/esm/core/utils/skipContext.js.map +1 -0
  168. package/build/esm/core/utils/withCancellation.d.ts +9 -0
  169. package/build/esm/core/utils/withCancellation.js +19 -0
  170. package/build/esm/core/utils/withCancellation.js.map +1 -0
  171. package/build/esm/index.d.ts +3 -0
  172. package/build/esm/index.js +4 -0
  173. package/build/esm/index.js.map +1 -0
  174. package/build/esm/react/DataManagerContext.d.ts +3 -0
  175. package/build/esm/react/DataManagerContext.js +10 -0
  176. package/build/esm/react/DataManagerContext.js.map +1 -0
  177. package/build/esm/react/components/DataInfiniteLoader/DataInfiniteLoader.d.ts +3 -0
  178. package/build/esm/react/components/DataInfiniteLoader/DataInfiniteLoader.js +41 -0
  179. package/build/esm/react/components/DataInfiniteLoader/DataInfiniteLoader.js.map +1 -0
  180. package/build/esm/react/components/DataInfiniteLoader/index.d.ts +2 -0
  181. package/build/esm/react/components/DataInfiniteLoader/index.js +2 -0
  182. package/build/esm/react/components/DataInfiniteLoader/index.js.map +1 -0
  183. package/build/esm/react/components/DataInfiniteLoader/types.d.ts +19 -0
  184. package/build/esm/react/components/DataInfiniteLoader/types.js +2 -0
  185. package/build/esm/react/components/DataInfiniteLoader/types.js.map +1 -0
  186. package/build/esm/react/components/DataLoader/DataLoader.d.ts +3 -0
  187. package/build/esm/react/components/DataLoader/DataLoader.js +28 -0
  188. package/build/esm/react/components/DataLoader/DataLoader.js.map +1 -0
  189. package/build/esm/react/components/DataLoader/index.d.ts +2 -0
  190. package/build/esm/react/components/DataLoader/index.js +2 -0
  191. package/build/esm/react/components/DataLoader/index.js.map +1 -0
  192. package/build/esm/react/components/DataLoader/types.d.ts +11 -0
  193. package/build/esm/react/components/DataLoader/types.js +2 -0
  194. package/build/esm/react/components/DataLoader/types.js.map +1 -0
  195. package/build/esm/react/components/types.d.ts +9 -0
  196. package/build/esm/react/components/types.js +2 -0
  197. package/build/esm/react/components/types.js.map +1 -0
  198. package/build/esm/react/index.d.ts +5 -0
  199. package/build/esm/react/index.js +5 -0
  200. package/build/esm/react/index.js.map +1 -0
  201. package/build/esm/react/withDataManager.d.ts +6 -0
  202. package/build/esm/react/withDataManager.js +15 -0
  203. package/build/esm/react/withDataManager.js.map +1 -0
  204. package/build/esm/react-query/ClientDataManager.d.ts +15 -0
  205. package/build/esm/react-query/ClientDataManager.js +87 -0
  206. package/build/esm/react-query/ClientDataManager.js.map +1 -0
  207. package/build/esm/react-query/hooks/useQueryContext.d.ts +2 -0
  208. package/build/esm/react-query/hooks/useQueryContext.js +12 -0
  209. package/build/esm/react-query/hooks/useQueryContext.js.map +1 -0
  210. package/build/esm/react-query/hooks/useQueryData.d.ts +3 -0
  211. package/build/esm/react-query/hooks/useQueryData.js +20 -0
  212. package/build/esm/react-query/hooks/useQueryData.js.map +1 -0
  213. package/build/esm/react-query/hooks/useQueryResponses.d.ts +11 -0
  214. package/build/esm/react-query/hooks/useQueryResponses.js +12 -0
  215. package/build/esm/react-query/hooks/useQueryResponses.js.map +1 -0
  216. package/build/esm/react-query/hooks/useRefetchAll.d.ts +3 -0
  217. package/build/esm/react-query/hooks/useRefetchAll.js +15 -0
  218. package/build/esm/react-query/hooks/useRefetchAll.js.map +1 -0
  219. package/build/esm/react-query/hooks/useRefetchErrored.d.ts +4 -0
  220. package/build/esm/react-query/hooks/useRefetchErrored.js +18 -0
  221. package/build/esm/react-query/hooks/useRefetchErrored.js.map +1 -0
  222. package/build/esm/react-query/impl/infinite/factory.d.ts +2 -0
  223. package/build/esm/react-query/impl/infinite/factory.js +7 -0
  224. package/build/esm/react-query/impl/infinite/factory.js.map +1 -0
  225. package/build/esm/react-query/impl/infinite/hooks.d.ts +3 -0
  226. package/build/esm/react-query/impl/infinite/hooks.js +11 -0
  227. package/build/esm/react-query/impl/infinite/hooks.js.map +1 -0
  228. package/build/esm/react-query/impl/infinite/types.d.ts +18 -0
  229. package/build/esm/react-query/impl/infinite/types.js +2 -0
  230. package/build/esm/react-query/impl/infinite/types.js.map +1 -0
  231. package/build/esm/react-query/impl/infinite/utils.d.ts +5 -0
  232. package/build/esm/react-query/impl/infinite/utils.js +42 -0
  233. package/build/esm/react-query/impl/infinite/utils.js.map +1 -0
  234. package/build/esm/react-query/impl/plain/factory.d.ts +2 -0
  235. package/build/esm/react-query/impl/plain/factory.js +7 -0
  236. package/build/esm/react-query/impl/plain/factory.js.map +1 -0
  237. package/build/esm/react-query/impl/plain/hooks.d.ts +3 -0
  238. package/build/esm/react-query/impl/plain/hooks.js +11 -0
  239. package/build/esm/react-query/impl/plain/hooks.js.map +1 -0
  240. package/build/esm/react-query/impl/plain/types.d.ts +14 -0
  241. package/build/esm/react-query/impl/plain/types.js +2 -0
  242. package/build/esm/react-query/impl/plain/types.js.map +1 -0
  243. package/build/esm/react-query/impl/plain/utils.d.ts +5 -0
  244. package/build/esm/react-query/impl/plain/utils.js +21 -0
  245. package/build/esm/react-query/impl/plain/utils.js.map +1 -0
  246. package/build/esm/react-query/index.d.ts +15 -0
  247. package/build/esm/react-query/index.js +12 -0
  248. package/build/esm/react-query/index.js.map +1 -0
  249. package/build/esm/react-query/types.d.ts +7 -0
  250. package/build/esm/react-query/types.js +2 -0
  251. package/build/esm/react-query/types.js.map +1 -0
  252. package/build/esm/react-query/utils/normalizeStatus.d.ts +3 -0
  253. package/build/esm/react-query/utils/normalizeStatus.js +7 -0
  254. package/build/esm/react-query/utils/normalizeStatus.js.map +1 -0
  255. package/package.json +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["QueryClient","composeFullKey","hasTag","ClientDataManager","_conifg$defaultOption","_conifg$defaultOption2","conifg","arguments","length","undefined","_classCallCheck","queryClient","_objectSpread","defaultOptions","queries","networkMode","mutations","_createClass","key","value","invalidateTag","tag","invalidateQueries","predicate","_ref","queryKey","invalidateTags","tags","_ref2","every","invalidateSource","dataSource","name","resetSource","resetQueries","invalidateParams","params","exact","resetParams","invalidateSourceTags","slice"],"sources":["ClientDataManager.ts"],"sourcesContent":["import type {QueryClientConfig} from '@tanstack/react-query';\nimport {QueryClient} from '@tanstack/react-query';\n\nimport {\n type AnyDataSource,\n type DataManager,\n type DataSourceParams,\n type DataSourceTag,\n composeFullKey,\n hasTag,\n} from '../core';\n\nexport type ClientDataManagerConfig = QueryClientConfig;\n\nexport class ClientDataManager implements DataManager {\n readonly queryClient: QueryClient;\n\n constructor(conifg: ClientDataManagerConfig = {}) {\n this.queryClient = new QueryClient({\n ...conifg,\n defaultOptions: {\n ...conifg.defaultOptions,\n queries: {\n networkMode: 'always',\n ...conifg.defaultOptions?.queries,\n },\n mutations: {\n networkMode: 'always',\n ...conifg.defaultOptions?.mutations,\n },\n },\n });\n }\n\n invalidateTag(tag: DataSourceTag) {\n return this.queryClient.invalidateQueries({\n predicate: ({queryKey}) => hasTag(queryKey, tag),\n });\n }\n\n invalidateTags(tags: DataSourceTag[]) {\n return this.queryClient.invalidateQueries({\n predicate: ({queryKey}) => tags.every((tag) => hasTag(queryKey, tag)),\n });\n }\n\n invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource) {\n return this.queryClient.invalidateQueries({\n // First element is a data source name\n queryKey: [dataSource.name],\n });\n }\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource) {\n return this.queryClient.resetQueries({\n // First element is a data source name\n queryKey: [dataSource.name],\n });\n }\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ) {\n return this.queryClient.invalidateQueries({\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n });\n }\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ) {\n return this.queryClient.resetQueries({\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n });\n }\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ) {\n return this.queryClient.invalidateQueries({\n // Last element is a full key\n queryKey: composeFullKey(dataSource, params).slice(0, -1),\n });\n }\n}\n"],"mappings":";;;AACA,SAAQA,WAAW,QAAO,uBAAuB;AAEjD,SAKIC,cAAc,EACdC,MAAM,QACH,SAAS;AAIhB,WAAaC,iBAAiB;EAG1B,SAAAA,kBAAA,EAAkD;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,IAAtCC,MAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAAG,eAAA,OAAAP,iBAAA;IAAA,KAFvCQ,WAAW;IAGhB,IAAI,CAACA,WAAW,GAAG,IAAIX,WAAW,CAAAY,aAAA,CAAAA,aAAA,KAC3BN,MAAM;MACTO,cAAc,EAAAD,aAAA,CAAAA,aAAA,KACPN,MAAM,CAACO,cAAc;QACxBC,OAAO,EAAAF,aAAA;UACHG,WAAW,EAAE;QAAQ,IAAAX,qBAAA,GAClBE,MAAM,CAACO,cAAc,cAAAT,qBAAA,uBAArBA,qBAAA,CAAuBU,OAAO,CACpC;QACDE,SAAS,EAAAJ,aAAA;UACLG,WAAW,EAAE;QAAQ,IAAAV,sBAAA,GAClBC,MAAM,CAACO,cAAc,cAAAR,sBAAA,uBAArBA,sBAAA,CAAuBW,SAAS;MACtC;IACJ,EACJ,CAAC;EACN;EAAC,OAAAC,YAAA,CAAAd,iBAAA;IAAAe,GAAA;IAAAC,KAAA,EAED,SAAAC,aAAaA,CAACC,GAAkB,EAAE;MAC9B,OAAO,IAAI,CAACV,WAAW,CAACW,iBAAiB,CAAC;QACtCC,SAAS,EAAE,SAAXA,SAASA,CAAAC,IAAA;UAAA,IAAIC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;UAAA,OAAMvB,MAAM,CAACuB,QAAQ,EAAEJ,GAAG,CAAC;QAAA;MACpD,CAAC,CAAC;IACN;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAO,cAAcA,CAACC,IAAqB,EAAE;MAClC,OAAO,IAAI,CAAChB,WAAW,CAACW,iBAAiB,CAAC;QACtCC,SAAS,EAAE,SAAXA,SAASA,CAAAK,KAAA;UAAA,IAAIH,QAAQ,GAAAG,KAAA,CAARH,QAAQ;UAAA,OAAME,IAAI,CAACE,KAAK,CAAC,UAACR,GAAG;YAAA,OAAKnB,MAAM,CAACuB,QAAQ,EAAEJ,GAAG,CAAC;UAAA,EAAC;QAAA;MACzE,CAAC,CAAC;IACN;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAW,gBAAgBA,CAAoCC,UAAuB,EAAE;MACzE,OAAO,IAAI,CAACpB,WAAW,CAACW,iBAAiB,CAAC;QACtC;QACAG,QAAQ,EAAE,CAACM,UAAU,CAACC,IAAI;MAC9B,CAAC,CAAC;IACN;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAc,WAAWA,CAAoCF,UAAuB,EAAE;MACpE,OAAO,IAAI,CAACpB,WAAW,CAACuB,YAAY,CAAC;QACjC;QACAT,QAAQ,EAAE,CAACM,UAAU,CAACC,IAAI;MAC9B,CAAC,CAAC;IACN;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAgB,gBAAgBA,CACZJ,UAAuB,EACvBK,MAAqC,EACvC;MACE,OAAO,IAAI,CAACzB,WAAW,CAACW,iBAAiB,CAAC;QACtCG,QAAQ,EAAExB,cAAc,CAAC8B,UAAU,EAAEK,MAAM,CAAC;QAC5CC,KAAK,EAAE;MACX,CAAC,CAAC;IACN;EAAC;IAAAnB,GAAA;IAAAC,KAAA,EAED,SAAAmB,WAAWA,CACPP,UAAuB,EACvBK,MAAqC,EACvC;MACE,OAAO,IAAI,CAACzB,WAAW,CAACuB,YAAY,CAAC;QACjCT,QAAQ,EAAExB,cAAc,CAAC8B,UAAU,EAAEK,MAAM,CAAC;QAC5CC,KAAK,EAAE;MACX,CAAC,CAAC;IACN;EAAC;IAAAnB,GAAA;IAAAC,KAAA,EAED,SAAAoB,oBAAoBA,CAChBR,UAAuB,EACvBK,MAAqC,EACvC;MACE,OAAO,IAAI,CAACzB,WAAW,CAACW,iBAAiB,CAAC;QACtC;QACAG,QAAQ,EAAExB,cAAc,CAAC8B,UAAU,EAAEK,MAAM,CAAC,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAC5D,CAAC,CAAC;IACN;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { QueryDataSourceContext } from '../types';
2
+ export declare const useQueryContext: () => QueryDataSourceContext;
@@ -0,0 +1,12 @@
1
+ import { useMemo } from 'react';
2
+ import { useQueryClient } from '@tanstack/react-query';
3
+ export var useQueryContext = function useQueryContext() {
4
+ var queryClient = useQueryClient();
5
+ var queryContext = useMemo(function () {
6
+ return {
7
+ queryClient: queryClient
8
+ };
9
+ }, [queryClient]);
10
+ return queryContext;
11
+ };
12
+ // #sourceMappingURL=useQueryContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useQueryClient","useQueryContext","queryClient","queryContext"],"sources":["useQueryContext.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useQueryClient} from '@tanstack/react-query';\n\nimport type {QueryDataSourceContext} from '../types';\n\nexport const useQueryContext = (): QueryDataSourceContext => {\n const queryClient = useQueryClient();\n const queryContext = useMemo(() => ({queryClient}), [queryClient]);\n\n return queryContext;\n};\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,cAAc,QAAO,uBAAuB;AAIpD,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAiC;EACzD,IAAMC,WAAW,GAAGF,cAAc,CAAC,CAAC;EACpC,IAAMG,YAAY,GAAGJ,OAAO,CAAC;IAAA,OAAO;MAACG,WAAW,EAAXA;IAAW,CAAC;EAAA,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAElE,OAAOC,YAAY;AACvB,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { DataSourceOptions, DataSourceParams, DataSourceState } from '../../core';
2
+ import type { AnyQueryDataSource } from '../types';
3
+ export declare const useQueryData: <TDataSource extends AnyQueryDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: DataSourceOptions<TDataSource>) => DataSourceState<TDataSource>;
@@ -0,0 +1,20 @@
1
+ import { useInfiniteQueryData } from '../impl/infinite/hooks';
2
+ import { usePlainQueryData } from '../impl/plain/hooks';
3
+ import { useQueryContext } from './useQueryContext';
4
+ export var useQueryData = function useQueryData(dataSource, params, options) {
5
+ var context = useQueryContext();
6
+ var state;
7
+
8
+ // Do not change data source type in the same hook call
9
+ if (dataSource.type === 'plain') {
10
+ // eslint-disable-next-line react-hooks/rules-of-hooks
11
+ state = usePlainQueryData(context, dataSource, params, options);
12
+ } else if (dataSource.type === 'infinite') {
13
+ // eslint-disable-next-line react-hooks/rules-of-hooks
14
+ state = useInfiniteQueryData(context, dataSource, params, options);
15
+ } else {
16
+ throw new Error('Data Source type must be plain or infinite');
17
+ }
18
+ return state;
19
+ };
20
+ // #sourceMappingURL=useQueryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useInfiniteQueryData","usePlainQueryData","useQueryContext","useQueryData","dataSource","params","options","context","state","type","Error"],"sources":["useQueryData.ts"],"sourcesContent":["import type {DataSourceOptions, DataSourceParams, DataSourceState} from '../../core';\nimport {useInfiniteQueryData} from '../impl/infinite/hooks';\nimport {usePlainQueryData} from '../impl/plain/hooks';\nimport type {AnyQueryDataSource} from '../types';\n\nimport {useQueryContext} from './useQueryContext';\n\nexport const useQueryData = <TDataSource extends AnyQueryDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: DataSourceOptions<TDataSource>,\n): DataSourceState<TDataSource> => {\n const context = useQueryContext();\n\n let state: DataSourceState<AnyQueryDataSource> | undefined;\n\n // Do not change data source type in the same hook call\n if (dataSource.type === 'plain') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = usePlainQueryData(context, dataSource, params, options);\n } else if (dataSource.type === 'infinite') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = useInfiniteQueryData(context, dataSource, params, options);\n } else {\n throw new Error('Data Source type must be plain or infinite');\n }\n\n return state as DataSourceState<TDataSource>;\n};\n"],"mappings":"AACA,SAAQA,oBAAoB,QAAO,wBAAwB;AAC3D,SAAQC,iBAAiB,QAAO,qBAAqB;AAGrD,SAAQC,eAAe,QAAO,mBAAmB;AAEjD,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CACrBC,UAAuB,EACvBC,MAAqC,EACrCC,OAAwC,EACT;EAC/B,IAAMC,OAAO,GAAGL,eAAe,CAAC,CAAC;EAEjC,IAAIM,KAAsD;;EAE1D;EACA,IAAIJ,UAAU,CAACK,IAAI,KAAK,OAAO,EAAE;IAC7B;IACAD,KAAK,GAAGP,iBAAiB,CAACM,OAAO,EAAEH,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACnE,CAAC,MAAM,IAAIF,UAAU,CAACK,IAAI,KAAK,UAAU,EAAE;IACvC;IACAD,KAAK,GAAGR,oBAAoB,CAACO,OAAO,EAAEH,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACtE,CAAC,MAAM;IACH,MAAM,IAAII,KAAK,CAAC,4CAA4C,CAAC;EACjE;EAEA,OAAOF,KAAK;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { DataLoaderStatus } from '../../core';
2
+ export declare const useQueryResponses: <TError>(responses: {
3
+ status: DataLoaderStatus;
4
+ error: TError | null;
5
+ refetch: Function;
6
+ }[]) => {
7
+ status: DataLoaderStatus;
8
+ error: NonNullable<TError> | null;
9
+ refetch: () => void;
10
+ refetchErrored: () => void;
11
+ };
@@ -0,0 +1,12 @@
1
+ import { getError, getStatus } from '../../core';
2
+ import { useRefetchAll } from './useRefetchAll';
3
+ import { useRefetchErrored } from './useRefetchErrored';
4
+ export var useQueryResponses = function useQueryResponses(responses) {
5
+ return {
6
+ status: getStatus(responses),
7
+ error: getError(responses),
8
+ refetch: useRefetchAll(responses),
9
+ refetchErrored: useRefetchErrored(responses)
10
+ };
11
+ };
12
+ // #sourceMappingURL=useQueryResponses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getError","getStatus","useRefetchAll","useRefetchErrored","useQueryResponses","responses","status","error","refetch","refetchErrored"],"sources":["useQueryResponses.ts"],"sourcesContent":["import type {DataLoaderStatus} from '../../core';\nimport {getError, getStatus} from '../../core';\n\nimport {useRefetchAll} from './useRefetchAll';\nimport {useRefetchErrored} from './useRefetchErrored';\n\nexport const useQueryResponses = <TError>(\n responses: {\n status: DataLoaderStatus;\n error: TError | null;\n refetch: Function;\n }[],\n) => {\n return {\n status: getStatus(responses),\n error: getError(responses),\n refetch: useRefetchAll(responses),\n refetchErrored: useRefetchErrored(responses),\n };\n};\n"],"mappings":"AACA,SAAQA,QAAQ,EAAEC,SAAS,QAAO,YAAY;AAE9C,SAAQC,aAAa,QAAO,iBAAiB;AAC7C,SAAQC,iBAAiB,QAAO,qBAAqB;AAErD,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,SAIG,EACF;EACD,OAAO;IACHC,MAAM,EAAEL,SAAS,CAACI,SAAS,CAAC;IAC5BE,KAAK,EAAEP,QAAQ,CAACK,SAAS,CAAC;IAC1BG,OAAO,EAAEN,aAAa,CAACG,SAAS,CAAC;IACjCI,cAAc,EAAEN,iBAAiB,CAACE,SAAS;EAC/C,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare const useRefetchAll: (states: {
2
+ refetch: Function;
3
+ }[]) => () => void;
@@ -0,0 +1,15 @@
1
+ import { useCallback } from 'react';
2
+ export var useRefetchAll = function useRefetchAll(states) {
3
+ return useCallback(function () {
4
+ return states.forEach(function (_ref) {
5
+ var refetch = _ref.refetch;
6
+ return refetch();
7
+ });
8
+ },
9
+ // eslint-disable-next-line react-hooks/exhaustive-deps
10
+ states.map(function (_ref2) {
11
+ var refetch = _ref2.refetch;
12
+ return refetch;
13
+ }));
14
+ };
15
+ // #sourceMappingURL=useRefetchAll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useRefetchAll","states","forEach","_ref","refetch","map","_ref2"],"sources":["useRefetchAll.ts"],"sourcesContent":["import {useCallback} from 'react';\n\nexport const useRefetchAll = (states: {refetch: Function}[]) => {\n return useCallback(\n () => states.forEach(({refetch}) => refetch()),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n states.map(({refetch}) => refetch),\n );\n};\n"],"mappings":"AAAA,SAAQA,WAAW,QAAO,OAAO;AAEjC,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAA6B,EAAK;EAC5D,OAAOF,WAAW,CACd;IAAA,OAAME,MAAM,CAACC,OAAO,CAAC,UAAAC,IAAA;MAAA,IAAEC,OAAO,GAAAD,IAAA,CAAPC,OAAO;MAAA,OAAMA,OAAO,CAAC,CAAC;IAAA,EAAC;EAAA;EAC9C;EACAH,MAAM,CAACI,GAAG,CAAC,UAAAC,KAAA;IAAA,IAAEF,OAAO,GAAAE,KAAA,CAAPF,OAAO;IAAA,OAAMA,OAAO;EAAA,EACrC,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const useRefetchErrored: <TError>(states: {
2
+ error: TError | null;
3
+ refetch: Function;
4
+ }[]) => () => void;
@@ -0,0 +1,18 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { useCallback } from 'react';
3
+ export var useRefetchErrored = function useRefetchErrored(states) {
4
+ return useCallback(function () {
5
+ return states.forEach(function (_ref) {
6
+ var error = _ref.error,
7
+ refetch = _ref.refetch;
8
+ return error && refetch();
9
+ });
10
+ },
11
+ // eslint-disable-next-line react-hooks/exhaustive-deps
12
+ states.reduce(function (acc, _ref2) {
13
+ var error = _ref2.error,
14
+ refetch = _ref2.refetch;
15
+ return [].concat(_toConsumableArray(acc), [error, refetch]);
16
+ }, []));
17
+ };
18
+ // #sourceMappingURL=useRefetchErrored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useRefetchErrored","states","forEach","_ref","error","refetch","reduce","acc","_ref2","concat","_toConsumableArray"],"sources":["useRefetchErrored.ts"],"sourcesContent":["import type {DependencyList} from 'react';\nimport {useCallback} from 'react';\n\nexport const useRefetchErrored = <TError>(states: {error: TError | null; refetch: Function}[]) => {\n return useCallback(\n () => states.forEach(({error, refetch}) => error && refetch()),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n states.reduce<DependencyList>((acc, {error, refetch}) => [...acc, error, refetch], []),\n );\n};\n"],"mappings":";AACA,SAAQA,WAAW,QAAO,OAAO;AAEjC,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAYC,MAAmD,EAAK;EAC9F,OAAOF,WAAW,CACd;IAAA,OAAME,MAAM,CAACC,OAAO,CAAC,UAAAC,IAAA;MAAA,IAAEC,KAAK,GAAAD,IAAA,CAALC,KAAK;QAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;MAAA,OAAMD,KAAK,IAAIC,OAAO,CAAC,CAAC;IAAA,EAAC;EAAA;EAC9D;EACAJ,MAAM,CAACK,MAAM,CAAiB,UAACC,GAAG,EAAAC,KAAA;IAAA,IAAGJ,KAAK,GAAAI,KAAA,CAALJ,KAAK;MAAEC,OAAO,GAAAG,KAAA,CAAPH,OAAO;IAAA,UAAAI,MAAA,CAAAC,kBAAA,CAAUH,GAAG,IAAEH,KAAK,EAAEC,OAAO;EAAA,CAAC,EAAE,EAAE,CACzF,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { InfiniteQueryDataSource } from './types';
2
+ export declare const makeInfiniteQueryDataSource: <TParams, TRequest, TResponse, TData, TError>(config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, "type">) => InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>;
@@ -0,0 +1,7 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ export var makeInfiniteQueryDataSource = function makeInfiniteQueryDataSource(config) {
3
+ return _objectSpread(_objectSpread({}, config), {}, {
4
+ type: 'infinite'
5
+ });
6
+ };
7
+ // #sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["makeInfiniteQueryDataSource","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {InfiniteQueryDataSource} from './types';\n\nexport const makeInfiniteQueryDataSource = <TParams, TRequest, TResponse, TData, TError>(\n config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, 'type'>,\n): InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> => ({\n ...config,\n type: 'infinite',\n});\n"],"mappings":";AAEA,OAAO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CACpCC,MAA0F;EAAA,OAAAC,aAAA,CAAAA,aAAA,KAEvFD,MAAM;IACTE,IAAI,EAAE;EAAU;AAAA,CAClB","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { DataSourceContext, DataSourceOptions, DataSourceParams } from '../../../core';
2
+ import type { AnyInfiniteQueryDataSource } from './types';
3
+ export declare const useInfiniteQueryData: <TDataSource extends AnyInfiniteQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: DataSourceOptions<TDataSource>) => import("../../../core").DataSourceState<TDataSource>;
@@ -0,0 +1,11 @@
1
+ import { useMemo } from 'react';
2
+ import { useInfiniteQuery } from '@tanstack/react-query';
3
+ import { composeOptions, transformResult } from './utils';
4
+ export var useInfiniteQueryData = function useInfiniteQueryData(context, dataSource, params, options) {
5
+ var composedOptions = composeOptions(context, dataSource, params, options);
6
+ var result = useInfiniteQuery(composedOptions);
7
+ return useMemo(function () {
8
+ return transformResult(result);
9
+ }, [result]);
10
+ };
11
+ // #sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useInfiniteQuery","composeOptions","transformResult","useInfiniteQueryData","context","dataSource","params","options","composedOptions","result"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\n\nimport type {DataSourceContext, DataSourceOptions, DataSourceParams} from '../../../core';\n\nimport type {AnyInfiniteQueryDataSource} from './types';\nimport {composeOptions, transformResult} from './utils';\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: DataSourceOptions<TDataSource>,\n) => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n const result = useInfiniteQuery(composedOptions);\n\n return useMemo(() => transformResult(result), [result]);\n};\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,gBAAgB,QAAO,uBAAuB;AAKtD,SAAQC,cAAc,EAAEC,eAAe,QAAO,SAAS;AAEvD,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC7BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAwC,EACvC;EACD,IAAMC,eAAe,GAAGP,cAAc,CAACG,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAME,MAAM,GAAGT,gBAAgB,CAACQ,eAAe,CAAC;EAEhD,OAAOT,OAAO,CAAC;IAAA,OAAMG,eAAe,CAACO,MAAM,CAAC;EAAA,GAAE,CAACA,MAAM,CAAC,CAAC;AAC3D,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import type { InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryFunctionContext } from '@tanstack/react-query';
2
+ import type { Overwrite } from 'utility-types';
3
+ import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
+ import type { QueryDataSourceContext } from '../../types';
5
+ export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, InfiniteQueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>>, ResultWrapper<InfiniteQueryObserverResult<ActualData<TData, TResponse>, TError>>, QueryFunctionContext<DataSourceKey, TParams>> & {
6
+ type: 'infinite';
7
+ next: (lastPage: TResponse, allPages: TResponse[]) => Partial<TParams> | undefined;
8
+ prev?: (firstPage: TResponse, allPages: TResponse[]) => Partial<TParams> | undefined;
9
+ };
10
+ export type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;
11
+ type ResultWrapper<T> = T extends InfiniteQueryObserverResult<infer TData> ? Overwrite<T, {
12
+ status: DataLoaderStatus;
13
+ data: TData;
14
+ }> & {
15
+ originalStatus: T['status'];
16
+ originalData: T['data'];
17
+ } : never;
18
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ // #sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types';\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>>,\n ResultWrapper<InfiniteQueryObserverResult<ActualData<TData, TResponse>, TError>>,\n QueryFunctionContext<DataSourceKey, TParams>\n> & {\n type: 'infinite';\n next: (lastPage: TResponse, allPages: TResponse[]) => Partial<TParams> | undefined;\n prev?: (firstPage: TResponse, allPages: TResponse[]) => Partial<TParams> | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<T> =\n T extends InfiniteQueryObserverResult<infer TData>\n ? Overwrite<T, {status: DataLoaderStatus; data: TData}> & {\n originalStatus: T['status'];\n originalData: T['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { InfiniteQueryObserverOptions, InfiniteQueryObserverResult } from '@tanstack/react-query';
2
+ import { type DataSourceContext, type DataSourceData, type DataSourceError, type DataSourceOptions, type DataSourceParams, type DataSourceResponse, type DataSourceState } from '../../../core';
3
+ import type { AnyInfiniteQueryDataSource } from './types';
4
+ export declare const composeOptions: <TDataSource extends AnyInfiniteQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: DataSourceOptions<TDataSource>) => InfiniteQueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>>;
5
+ export declare const transformResult: <TDataSource extends AnyInfiniteQueryDataSource>(result: InfiniteQueryObserverResult<DataSourceData<TDataSource>, DataSourceError<TDataSource>>) => DataSourceState<TDataSource>;
@@ -0,0 +1,42 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import { composeFullKey, idle } from '../../../core';
3
+ import { normalizeStatus } from '../../utils/normalizeStatus';
4
+ var EMPTY_ARRAY = [];
5
+ export var composeOptions = function composeOptions(context, dataSource, params, options) {
6
+ var transformParams = dataSource.transformParams,
7
+ transformResponse = dataSource.transformResponse,
8
+ next = dataSource.next,
9
+ prev = dataSource.prev;
10
+ return _objectSpread(_objectSpread({}, dataSource.options), {}, {
11
+ enabled: params !== idle,
12
+ queryKey: composeFullKey(dataSource, params),
13
+ queryFn: function queryFn(fetchContext) {
14
+ var _fetchContext$pagePar;
15
+ var actualParams = (_fetchContext$pagePar = fetchContext.pageParam) !== null && _fetchContext$pagePar !== void 0 ? _fetchContext$pagePar : params;
16
+ return dataSource.fetch(context, fetchContext, transformParams ? transformParams(actualParams) : actualParams);
17
+ },
18
+ select: transformResponse ? function (data) {
19
+ return _objectSpread(_objectSpread({}, data), {}, {
20
+ pages: data.pages.map(transformResponse)
21
+ });
22
+ } : undefined,
23
+ getNextPageParam: function getNextPageParam(lastPage, allPages) {
24
+ var nextParamsPatch = next(lastPage, allPages);
25
+ return nextParamsPatch ? _objectSpread(_objectSpread({}, params), nextParamsPatch) : undefined;
26
+ },
27
+ getPreviousPageParam: prev ? function (firstPage, allPages) {
28
+ var prevParamsPatch = prev(firstPage, allPages);
29
+ return prevParamsPatch ? _objectSpread(_objectSpread({}, params), prevParamsPatch) : undefined;
30
+ } : undefined
31
+ }, options);
32
+ };
33
+ export var transformResult = function transformResult(result) {
34
+ var _result$data$pages$fl, _result$data;
35
+ return _objectSpread(_objectSpread({}, result), {}, {
36
+ status: normalizeStatus(result.status, result.fetchStatus),
37
+ data: (_result$data$pages$fl = (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.pages.flat()) !== null && _result$data$pages$fl !== void 0 ? _result$data$pages$fl : EMPTY_ARRAY,
38
+ originalStatus: result.status,
39
+ originalData: result.data
40
+ });
41
+ };
42
+ // #sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["composeFullKey","idle","normalizeStatus","EMPTY_ARRAY","composeOptions","context","dataSource","params","options","transformParams","transformResponse","next","prev","_objectSpread","enabled","queryKey","queryFn","fetchContext","_fetchContext$pagePar","actualParams","pageParam","fetch","select","data","pages","map","undefined","getNextPageParam","lastPage","allPages","nextParamsPatch","getPreviousPageParam","firstPage","prevParamsPatch","transformResult","result","_result$data$pages$fl","_result$data","status","fetchStatus","flat","originalStatus","originalData"],"sources":["utils.ts"],"sourcesContent":["import type {\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n} from '@tanstack/react-query';\n\nimport {\n type DataSourceContext,\n type DataSourceData,\n type DataSourceError,\n type DataSourceKey,\n type DataSourceOptions,\n type DataSourceParams,\n type DataSourceResponse,\n type DataSourceState,\n composeFullKey,\n idle,\n} from '../../../core';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyInfiniteQueryDataSource} from './types';\n\nconst EMPTY_ARRAY: unknown[] = [];\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: DataSourceOptions<TDataSource>,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>\n> => {\n const {transformParams, transformResponse, next, prev} = dataSource;\n\n return {\n ...dataSource.options,\n enabled: params !== idle,\n queryKey: composeFullKey(dataSource, params),\n queryFn: (\n fetchContext: QueryFunctionContext<DataSourceKey, DataSourceParams<TDataSource>>,\n ) => {\n const actualParams = fetchContext.pageParam ?? params;\n\n return dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(actualParams) : actualParams,\n );\n },\n select: transformResponse\n ? (data) => ({...data, pages: data.pages.map(transformResponse)})\n : undefined,\n getNextPageParam: (lastPage, allPages) => {\n const nextParamsPatch = next(lastPage, allPages);\n\n return nextParamsPatch ? {...params, ...nextParamsPatch} : undefined;\n },\n getPreviousPageParam: prev\n ? (firstPage, allPages) => {\n const prevParamsPatch = prev(firstPage, allPages);\n\n return prevParamsPatch ? {...params, ...prevParamsPatch} : undefined;\n }\n : undefined,\n ...options,\n };\n};\n\nexport const transformResult = <TDataSource extends AnyInfiniteQueryDataSource>(\n result: InfiniteQueryObserverResult<DataSourceData<TDataSource>, DataSourceError<TDataSource>>,\n) => {\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n data: result.data?.pages.flat() ?? EMPTY_ARRAY,\n originalStatus: result.status,\n originalData: result.data,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";AAMA,SASIA,cAAc,EACdC,IAAI,QACD,eAAe;AACtB,SAAQC,eAAe,QAAO,6BAA6B;AAI3D,IAAMC,WAAsB,GAAG,EAAE;AAEjC,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAwC,EAMvC;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,OAAAC,aAAA,CAAAA,aAAA,KACOP,UAAU,CAACE,OAAO;IACrBM,OAAO,EAAEP,MAAM,KAAKN,IAAI;IACxBc,QAAQ,EAAEf,cAAc,CAACM,UAAU,EAAEC,MAAM,CAAC;IAC5CS,OAAO,EAAE,SAATA,OAAOA,CACHC,YAAgF,EAC/E;MAAA,IAAAC,qBAAA;MACD,IAAMC,YAAY,IAAAD,qBAAA,GAAGD,YAAY,CAACG,SAAS,cAAAF,qBAAA,cAAAA,qBAAA,GAAIX,MAAM;MAErD,OAAOD,UAAU,CAACe,KAAK,CACnBhB,OAAO,EACPY,YAAY,EACZR,eAAe,GAAGA,eAAe,CAACU,YAAY,CAAC,GAAGA,YACtD,CAAC;IACL,CAAC;IACDG,MAAM,EAAEZ,iBAAiB,GACnB,UAACa,IAAI;MAAA,OAAAV,aAAA,CAAAA,aAAA,KAAUU,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACf,iBAAiB;MAAC;IAAA,CAAE,GAC/DgB,SAAS;IACfC,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAGC,QAAQ,EAAEC,QAAQ,EAAK;MACtC,IAAMC,eAAe,GAAGnB,IAAI,CAACiB,QAAQ,EAAEC,QAAQ,CAAC;MAEhD,OAAOC,eAAe,GAAAjB,aAAA,CAAAA,aAAA,KAAON,MAAM,GAAKuB,eAAe,IAAIJ,SAAS;IACxE,CAAC;IACDK,oBAAoB,EAAEnB,IAAI,GACpB,UAACoB,SAAS,EAAEH,QAAQ,EAAK;MACrB,IAAMI,eAAe,GAAGrB,IAAI,CAACoB,SAAS,EAAEH,QAAQ,CAAC;MAEjD,OAAOI,eAAe,GAAApB,aAAA,CAAAA,aAAA,KAAON,MAAM,GAAK0B,eAAe,IAAIP,SAAS;IACxE,CAAC,GACDA;EAAS,GACZlB,OAAO;AAElB,CAAC;AAED,OAAO,IAAM0B,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,MAA8F,EAC7F;EAAA,IAAAC,qBAAA,EAAAC,YAAA;EACD,OAAAxB,aAAA,CAAAA,aAAA,KACOsB,MAAM;IACTG,MAAM,EAAEpC,eAAe,CAACiC,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACI,WAAW,CAAC;IAC1DhB,IAAI,GAAAa,qBAAA,IAAAC,YAAA,GAAEF,MAAM,CAACZ,IAAI,cAAAc,YAAA,uBAAXA,YAAA,CAAab,KAAK,CAACgB,IAAI,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAIjC,WAAW;IAC9CsC,cAAc,EAAEN,MAAM,CAACG,MAAM;IAC7BI,YAAY,EAAEP,MAAM,CAACZ;EAAI;AAEjC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { PlainQueryDataSource } from './types';
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>;
@@ -0,0 +1,7 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ export var makePlainQueryDataSource = function makePlainQueryDataSource(config) {
3
+ return _objectSpread(_objectSpread({}, config), {}, {
4
+ type: 'plain'
5
+ });
6
+ };
7
+ // #sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,3 @@
1
+ import type { DataSourceContext, DataSourceOptions, DataSourceParams } from '../../../core';
2
+ import type { AnyPlainQueryDataSource } from './types';
3
+ export declare const usePlainQueryData: <TDataSource extends AnyPlainQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: DataSourceOptions<TDataSource>) => import("../../../core").DataSourceState<TDataSource>;
@@ -0,0 +1,11 @@
1
+ import { useMemo } from 'react';
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import { composeOptions, transformResult } from './utils';
4
+ export var usePlainQueryData = function usePlainQueryData(context, dataSource, params, options) {
5
+ var composedOptions = composeOptions(context, dataSource, params, options);
6
+ var result = useQuery(composedOptions);
7
+ return useMemo(function () {
8
+ return transformResult(result);
9
+ }, [result]);
10
+ };
11
+ // #sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useQuery","composeOptions","transformResult","usePlainQueryData","context","dataSource","params","options","composedOptions","result"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useQuery} from '@tanstack/react-query';\n\nimport type {DataSourceContext, DataSourceOptions, DataSourceParams} from '../../../core';\n\nimport type {AnyPlainQueryDataSource} from './types';\nimport {composeOptions, transformResult} from './utils';\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: DataSourceOptions<TDataSource>,\n) => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n const result = useQuery(composedOptions);\n\n return useMemo(() => transformResult(result), [result]);\n};\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,QAAQ,QAAO,uBAAuB;AAK9C,SAAQC,cAAc,EAAEC,eAAe,QAAO,SAAS;AAEvD,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAwC,EACvC;EACD,IAAMC,eAAe,GAAGP,cAAc,CAACG,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAME,MAAM,GAAGT,QAAQ,CAACQ,eAAe,CAAC;EAExC,OAAOT,OAAO,CAAC;IAAA,OAAMG,eAAe,CAACO,MAAM,CAAC;EAAA,GAAE,CAACA,MAAM,CAAC,CAAC;AAC3D,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import type { QueryFunctionContext, QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
2
+ import type { Overwrite } from 'utility-types';
3
+ import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
+ import type { QueryDataSourceContext } from '../../types';
5
+ export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, QueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>>, ResultWrapper<QueryObserverResult<ActualData<TData, TResponse>, TError>>, QueryFunctionContext<DataSourceKey, unknown>> & {
6
+ type: 'plain';
7
+ };
8
+ export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
9
+ type ResultWrapper<T> = T extends QueryObserverResult ? Overwrite<T, {
10
+ status: DataLoaderStatus;
11
+ }> & {
12
+ originalStatus: T['status'];
13
+ } : never;
14
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ // #sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n QueryFunctionContext,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types';\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>>,\n ResultWrapper<QueryObserverResult<ActualData<TData, TResponse>, TError>>,\n QueryFunctionContext<DataSourceKey, unknown>\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<T> = T extends QueryObserverResult\n ? Overwrite<T, {status: DataLoaderStatus}> & {originalStatus: T['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
2
+ import type { DataSourceContext, DataSourceData, DataSourceError, DataSourceOptions, DataSourceParams, DataSourceResponse, DataSourceState } from '../../../core';
3
+ import type { AnyPlainQueryDataSource } from './types';
4
+ export declare const composeOptions: <TDataSource extends AnyPlainQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: DataSourceOptions<TDataSource>) => QueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>>;
5
+ export declare const transformResult: <TDataSource extends AnyPlainQueryDataSource>(result: QueryObserverResult<DataSourceData<TDataSource>, DataSourceError<TDataSource>>) => DataSourceState<TDataSource>;
@@ -0,0 +1,21 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import { composeFullKey, idle } from '../../../core';
3
+ import { normalizeStatus } from '../../utils/normalizeStatus';
4
+ export var composeOptions = function composeOptions(context, dataSource, params, options) {
5
+ var transformParams = dataSource.transformParams;
6
+ return _objectSpread(_objectSpread({}, dataSource.options), {}, {
7
+ enabled: params !== idle,
8
+ queryKey: composeFullKey(dataSource, params),
9
+ queryFn: function queryFn(fetchContext) {
10
+ return dataSource.fetch(context, fetchContext, transformParams ? transformParams(params) : params);
11
+ },
12
+ select: dataSource.transformResponse
13
+ }, options);
14
+ };
15
+ export var transformResult = function transformResult(result) {
16
+ return _objectSpread(_objectSpread({}, result), {}, {
17
+ status: normalizeStatus(result.status, result.fetchStatus),
18
+ originalStatus: result.status
19
+ });
20
+ };
21
+ // #sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["composeFullKey","idle","normalizeStatus","composeOptions","context","dataSource","params","options","transformParams","_objectSpread","enabled","queryKey","queryFn","fetchContext","fetch","select","transformResponse","transformResult","result","status","fetchStatus","originalStatus"],"sources":["utils.ts"],"sourcesContent":["import type {\n QueryFunctionContext,\n QueryObserverOptions,\n QueryObserverResult,\n} 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 DataSourceState,\n} from '../../../core';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource} from './types';\n\nexport const composeOptions = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: DataSourceOptions<TDataSource>,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>\n> => {\n const {transformParams} = dataSource;\n\n return {\n ...dataSource.options,\n enabled: params !== idle,\n queryKey: composeFullKey(dataSource, params),\n queryFn: (fetchContext: QueryFunctionContext<DataSourceKey, unknown>) =>\n dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(params) : params,\n ),\n select: dataSource.transformResponse,\n ...options,\n };\n};\n\nexport const transformResult = <TDataSource extends AnyPlainQueryDataSource>(\n result: QueryObserverResult<DataSourceData<TDataSource>, DataSourceError<TDataSource>>,\n) => {\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n originalStatus: result.status,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";AAMA,SAAQA,cAAc,EAAEC,IAAI,QAAO,eAAe;AAWlD,SAAQC,eAAe,QAAO,6BAA6B;AAI3D,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAwC,EAMvC;EACD,IAAOC,eAAe,GAAIH,UAAU,CAA7BG,eAAe;EAEtB,OAAAC,aAAA,CAAAA,aAAA,KACOJ,UAAU,CAACE,OAAO;IACrBG,OAAO,EAAEJ,MAAM,KAAKL,IAAI;IACxBU,QAAQ,EAAEX,cAAc,CAACK,UAAU,EAAEC,MAAM,CAAC;IAC5CM,OAAO,EAAE,SAATA,OAAOA,CAAGC,YAA0D;MAAA,OAChER,UAAU,CAACS,KAAK,CACZV,OAAO,EACPS,YAAY,EACZL,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAChD,CAAC;IAAA;IACLS,MAAM,EAAEV,UAAU,CAACW;EAAiB,GACjCT,OAAO;AAElB,CAAC;AAED,OAAO,IAAMU,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,MAAsF,EACrF;EACD,OAAAT,aAAA,CAAAA,aAAA,KACOS,MAAM;IACTC,MAAM,EAAEjB,eAAe,CAACgB,MAAM,CAACC,MAAM,EAAED,MAAM,CAACE,WAAW,CAAC;IAC1DC,cAAc,EAAEH,MAAM,CAACC;EAAM;AAErC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ export type { QueryDataSourceContext, AnyQueryDataSource } from './types';
2
+ export { useQueryContext } from './hooks/useQueryContext';
3
+ export { useQueryData } from './hooks/useQueryData';
4
+ export { useQueryResponses } from './hooks/useQueryResponses';
5
+ export { useRefetchAll } from './hooks/useRefetchAll';
6
+ export { useRefetchErrored } from './hooks/useRefetchErrored';
7
+ export type { InfiniteQueryDataSource, AnyInfiniteQueryDataSource } from './impl/infinite/types';
8
+ export { makeInfiniteQueryDataSource } from './impl/infinite/factory';
9
+ export { composeOptions as composeInfiniteQueryOptions } from './impl/infinite/utils';
10
+ export type { PlainQueryDataSource, AnyPlainQueryDataSource } from './impl/plain/types';
11
+ export { makePlainQueryDataSource } from './impl/plain/factory';
12
+ export { composeOptions as composePlainQueryOptions } from './impl/plain/utils';
13
+ export { normalizeStatus } from './utils/normalizeStatus';
14
+ export type { ClientDataManagerConfig } from './ClientDataManager';
15
+ export { ClientDataManager } from './ClientDataManager';
@@ -0,0 +1,12 @@
1
+ export { useQueryContext } from './hooks/useQueryContext';
2
+ export { useQueryData } from './hooks/useQueryData';
3
+ export { useQueryResponses } from './hooks/useQueryResponses';
4
+ export { useRefetchAll } from './hooks/useRefetchAll';
5
+ export { useRefetchErrored } from './hooks/useRefetchErrored';
6
+ export { makeInfiniteQueryDataSource } from './impl/infinite/factory';
7
+ export { composeOptions as composeInfiniteQueryOptions } from './impl/infinite/utils';
8
+ export { makePlainQueryDataSource } from './impl/plain/factory';
9
+ export { composeOptions as composePlainQueryOptions } from './impl/plain/utils';
10
+ export { normalizeStatus } from './utils/normalizeStatus';
11
+ export { ClientDataManager } from './ClientDataManager';
12
+ // #sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useQueryContext","useQueryData","useQueryResponses","useRefetchAll","useRefetchErrored","makeInfiniteQueryDataSource","composeOptions","composeInfiniteQueryOptions","makePlainQueryDataSource","composePlainQueryOptions","normalizeStatus","ClientDataManager"],"sources":["index.ts"],"sourcesContent":["export type {QueryDataSourceContext, AnyQueryDataSource} from './types';\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';\n\nexport type {ClientDataManagerConfig} from './ClientDataManager';\nexport {ClientDataManager} from './ClientDataManager';\n"],"mappings":"AAEA,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;AAGvD,SAAQC,iBAAiB,QAAO,qBAAqB","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { QueryClient } from '@tanstack/react-query';
2
+ import type { AnyInfiniteQueryDataSource } from './impl/infinite/types';
3
+ import type { AnyPlainQueryDataSource } from './impl/plain/types';
4
+ export interface QueryDataSourceContext {
5
+ queryClient: QueryClient;
6
+ }
7
+ export type AnyQueryDataSource = AnyPlainQueryDataSource | AnyInfiniteQueryDataSource;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ // #sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {QueryClient} from '@tanstack/react-query';\n\nimport type {AnyInfiniteQueryDataSource} from './impl/infinite/types';\nimport type {AnyPlainQueryDataSource} from './impl/plain/types';\n\nexport interface QueryDataSourceContext {\n queryClient: QueryClient;\n}\n\nexport type AnyQueryDataSource = AnyPlainQueryDataSource | AnyInfiniteQueryDataSource;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { FetchStatus, QueryStatus } from '@tanstack/react-query';
2
+ import type { DataLoaderStatus } from '../../core';
3
+ export declare const normalizeStatus: (status: QueryStatus, fetchStatus: FetchStatus) => DataLoaderStatus;
@@ -0,0 +1,7 @@
1
+ export var normalizeStatus = function normalizeStatus(status, fetchStatus) {
2
+ if (status === 'loading' && fetchStatus === 'idle') {
3
+ return 'success';
4
+ }
5
+ return status;
6
+ };
7
+ // #sourceMappingURL=normalizeStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeStatus","status","fetchStatus"],"sources":["normalizeStatus.ts"],"sourcesContent":["import type {FetchStatus, QueryStatus} from '@tanstack/react-query';\n\nimport type {DataLoaderStatus} from '../../core';\n\nexport const normalizeStatus = (\n status: QueryStatus,\n fetchStatus: FetchStatus,\n): DataLoaderStatus => {\n if (status === 'loading' && fetchStatus === 'idle') {\n return 'success';\n }\n\n return status;\n};\n"],"mappings":"AAIA,OAAO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,MAAmB,EACnBC,WAAwB,EACL;EACnB,IAAID,MAAM,KAAK,SAAS,IAAIC,WAAW,KAAK,MAAM,EAAE;IAChD,OAAO,SAAS;EACpB;EAEA,OAAOD,MAAM;AACjB,CAAC","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@gravity-ui/data-source",
3
+ "version": "0.1.0",
4
+ "description": "A wrapper around data fetching",
5
+ "keywords": [
6
+ "data-fetching",
7
+ "react",
8
+ "react-query",
9
+ "gravity-ui"
10
+ ],
11
+ "author": "Mikhail Golbakh <golbah@yandex.ru>",
12
+ "license": "MIT",
13
+ "homepage": "https://github.com/gravity-ui/data-source#readme",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/gravity-ui/data-source.git"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/gravity-ui/data-source/issues"
20
+ },
21
+ "engines": {
22
+ "node": ">= 18",
23
+ "npm": ">= 9",
24
+ "yarn": "Please use npm instead of yarn to install dependencies",
25
+ "pnpm": "Please use npm instead of pnpm to install dependencies"
26
+ },
27
+ "main": "build/cjs/index.js",
28
+ "module": "build/esm/index.js",
29
+ "types": "build/esm/index.d.ts",
30
+ "files": [
31
+ "build"
32
+ ],
33
+ "sideEffects": false,
34
+ "scripts": {
35
+ "build": "NODE_ENV=production app-builder build",
36
+ "clean": "rm -rf build",
37
+ "deps:ci": "npm ci",
38
+ "lint": "eslint .",
39
+ "lint:fix": "npm run lint -- --fix",
40
+ "prepare": "husky install",
41
+ "prepublishOnly": "npm run build",
42
+ "test": "jest --passWithNoTests",
43
+ "typecheck": "tsc --noEmit"
44
+ },
45
+ "devDependencies": {
46
+ "@commitlint/cli": "^19.3.0",
47
+ "@commitlint/config-conventional": "^19.2.2",
48
+ "@gravity-ui/app-builder": "^0.11.1",
49
+ "@gravity-ui/eslint-config": "^3.2.0",
50
+ "@gravity-ui/prettier-config": "^1.1.0",
51
+ "@gravity-ui/tsconfig": "^1.0.0",
52
+ "@swc/jest": "^0.2.36",
53
+ "@tanstack/react-query": "^4.36.1",
54
+ "@types/jest": "^29.5.12",
55
+ "@types/react": "^18.3.3",
56
+ "eslint": "^8.57.0",
57
+ "husky": "^9.0.11",
58
+ "jest": "^29.7.0",
59
+ "nano-staged": "^0.8.0",
60
+ "react": "^18.3.1",
61
+ "utility-types": "^3.11.0"
62
+ },
63
+ "peerDependencies": {
64
+ "@tanstack/react-query": "^4.0.0",
65
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
66
+ }
67
+ }