@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,7 +1,8 @@
1
- export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourceContext, DataSourceParams, DataSourceRequest, DataSourceResponse, DataSourceErrorResponse, DataSourceData, DataSourceError, DataSourceOptions, DataSourceState, DataSourceFetchContext, ActualParams, ActualData, ActualResponse, } from './types/DataSource';
1
+ export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourceContext, DataSourceParams, DataSourceRequest, DataSourceResponse, DataSourceData, DataSourceError, DataSourceOptions, DataSourceState, DataSourceFetchContext, ActualParams, ActualData, } from './types/DataSource';
2
2
  export type { DataManager } from './types/DataManager';
3
3
  export type { DataLoaderStatus } from './types/DataLoaderStatus';
4
4
  export type { InvalidateRepeatOptions, InvalidateOptions } from './types/DataManagerOptions';
5
+ export type { Normalizer, NormalizerConfig, OptimisticConfig } from './types/Normalizer';
5
6
  export { idle } from './constants';
6
7
  export { composeKey } from './utils/composeKey';
7
8
  export { composeFullKey } from './utils/composeFullKey';
@@ -10,5 +11,6 @@ export { getStatus } from './utils/getStatus';
10
11
  export { hasTag } from './utils/hasTag';
11
12
  export { mergeStatuses } from './utils/mergeStatuses';
12
13
  export { skipContext } from './utils/skipContext';
14
+ export { withCatch } from './utils/withCatch';
13
15
  export type { Cancellable } from './utils/withCancellation';
14
16
  export { isCancellable, isAbortable, withCancellation } from './utils/withCancellation';
@@ -69,6 +69,12 @@ Object.defineProperty(exports, "withCancellation", {
69
69
  return _withCancellation.withCancellation;
70
70
  }
71
71
  });
72
+ Object.defineProperty(exports, "withCatch", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _withCatch.withCatch;
76
+ }
77
+ });
72
78
  var _constants = require("./constants");
73
79
  var _composeKey = require("./utils/composeKey");
74
80
  var _composeFullKey = require("./utils/composeFullKey");
@@ -77,5 +83,6 @@ var _getStatus = require("./utils/getStatus");
77
83
  var _hasTag = require("./utils/hasTag");
78
84
  var _mergeStatuses = require("./utils/mergeStatuses");
79
85
  var _skipContext = require("./utils/skipContext");
86
+ var _withCatch = require("./utils/withCatch");
80
87
  var _withCancellation = require("./utils/withCancellation");
81
88
  // #sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceErrorResponse,\n DataSourceData,\n DataSourceError,\n DataSourceOptions,\n DataSourceState,\n DataSourceFetchContext,\n ActualParams,\n ActualData,\n ActualResponse,\n} from './types/DataSource';\nexport type {DataManager} from './types/DataManager';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\nexport type {InvalidateRepeatOptions, InvalidateOptions} from './types/DataManagerOptions';\n\nexport {idle} from './constants';\n\nexport {composeKey} from './utils/composeKey';\nexport {composeFullKey} from './utils/composeFullKey';\nexport {getError} from './utils/getError';\nexport {getStatus} from './utils/getStatus';\nexport {hasTag} from './utils/hasTag';\nexport {mergeStatuses} from './utils/mergeStatuses';\nexport {skipContext} from './utils/skipContext';\nexport type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAEA,IAAAQ,iBAAA,GAAAR,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_withCatch","_withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceData,\n DataSourceError,\n DataSourceOptions,\n DataSourceState,\n DataSourceFetchContext,\n ActualParams,\n ActualData,\n} from './types/DataSource';\nexport type {DataManager} from './types/DataManager';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\nexport type {InvalidateRepeatOptions, InvalidateOptions} from './types/DataManagerOptions';\nexport type {Normalizer, NormalizerConfig, OptimisticConfig} from './types/Normalizer';\n\nexport {idle} from './constants';\n\nexport {composeKey} from './utils/composeKey';\nexport {composeFullKey} from './utils/composeFullKey';\nexport {getError} from './utils/getError';\nexport {getStatus} from './utils/getStatus';\nexport {hasTag} from './utils/hasTag';\nexport {mergeStatuses} from './utils/mergeStatuses';\nexport {skipContext} from './utils/skipContext';\nexport {withCatch} from './utils/withCatch';\nexport type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAEA,IAAAS,iBAAA,GAAAT,OAAA","ignoreList":[]}
@@ -1,6 +1,11 @@
1
+ import type { Data } from '@normy/core';
1
2
  import type { InvalidateOptions } from './DataManagerOptions';
2
3
  import type { AnyDataSource, DataSourceParams, DataSourceTag } from './DataSource';
4
+ import type { Normalizer } from './Normalizer';
3
5
  export interface DataManager {
6
+ normalizer?: Normalizer;
7
+ optimisticUpdate(mutationData: Data): void;
8
+ invalidateData(data: Data): void;
4
9
  invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
5
10
  invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
6
11
  invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\n\nexport interface DataManager {\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\nimport type {Normalizer} from './Normalizer';\n\nexport interface DataManager {\n normalizer?: Normalizer;\n\n optimisticUpdate(mutationData: Data): void;\n\n invalidateData(data: Data): void;\n\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,32 +1,28 @@
1
1
  import type { idle } from '../constants';
2
2
  export type DataSourceKey = ReadonlyArray<unknown>;
3
3
  export type DataSourceTag = string;
4
+ declare const errorHintSymbol: unique symbol;
4
5
  declare const stateHintSymbol: unique symbol;
5
- export interface DataSource<TContext, TParams, TRequest, TResponse, TData, TError, TErrorResponse, TOptions, TState, TFetchContext> {
6
+ export interface DataSource<TContext, TParams, TRequest, TResponse, TData, TError, TOptions, TState, TFetchContext> {
6
7
  readonly name: string;
7
8
  fetch: (context: TContext, fetchContext: TFetchContext, request: TRequest) => Promise<TResponse> | TResponse;
8
9
  tags?: (params: ActualParams<NoInfer<TParams>, NoInfer<TRequest>>) => DataSourceTag[];
9
10
  transformParams?: (params: TParams) => NoInfer<TRequest>;
10
- transformResponse?: (response: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>) => TData;
11
- /**
12
- * When set, the `fetch` errors will be transformed into data without changing the state to error.
13
- */
14
- transformError?: (error: TError) => TErrorResponse;
11
+ transformResponse?: (response: TResponse) => TData;
15
12
  options?: Partial<TOptions>;
16
13
  [stateHintSymbol]?: TState;
14
+ [errorHintSymbol]?: TError;
17
15
  }
18
- export type AnyDataSource = DataSource<any, any, any, any, any, any, any, any, any, any>;
19
- export type DataSourceContext<TDataSource> = TDataSource extends DataSource<infer TContext, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? TContext : never;
20
- export type DataSourceParams<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer TParams, infer TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? ActualParams<TParams, TRequest> : never;
21
- export type DataSourceRequest<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? TRequest : never;
22
- export type DataSourceResponse<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer TResponse, infer _TData, infer _TError, infer TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? ActualResponse<TResponse, TErrorResponse> : never;
23
- export type DataSourceData<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer TResponse, infer TData, infer _TError, infer TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? ActualData<TResponse, TData, TErrorResponse> : never;
24
- export type DataSourceError<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer TError, infer _TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? TError : never;
25
- export type DataSourceErrorResponse<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer TErrorResponse, infer _TOptions, infer _TState, infer _TFetchContext> ? TErrorResponse : never;
26
- export type DataSourceOptions<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer TOptions, infer _TState, infer _TFetchContext> ? TOptions : never;
27
- export type DataSourceState<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer _TOptions, infer TState, infer _TFetchContext> ? TState : never;
28
- export type DataSourceFetchContext<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TErrorResponse, infer _TOptions, infer _TState, infer TFetchContext> ? TFetchContext : never;
16
+ export type AnyDataSource = DataSource<any, any, any, any, any, any, any, any, any>;
17
+ export type DataSourceContext<TDataSource> = TDataSource extends DataSource<infer TContext, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TOptions, infer _TState, infer _TFetchContext> ? TContext : never;
18
+ export type DataSourceParams<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer TParams, infer TRequest, infer _TResponse, infer _TData, infer _TError, infer _TOptions, infer _TState, infer _TFetchContext> ? ActualParams<TParams, TRequest> : never;
19
+ export type DataSourceRequest<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer TRequest, infer _TResponse, infer _TData, infer _TError, infer _TOptions, infer _TState, infer _TFetchContext> ? TRequest : never;
20
+ export type DataSourceResponse<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer TResponse, infer _TData, infer _TError, infer _TOptions, infer _TState, infer _TFetchContext> ? TResponse : never;
21
+ export type DataSourceData<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer TResponse, infer TData, infer _TError, infer _TOptions, infer _TState, infer _TFetchContext> ? ActualData<TData, TResponse> : never;
22
+ export type DataSourceError<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer TError, infer _TOptions, infer _TState, infer _TFetchContext> ? TError : never;
23
+ export type DataSourceOptions<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer TOptions, infer _TState, infer _TFetchContext> ? TOptions : never;
24
+ export type DataSourceState<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TOptions, infer TState, infer _TFetchContext> ? TState : never;
25
+ export type DataSourceFetchContext<TDataSource> = TDataSource extends DataSource<infer _TContenxt, infer _TParams, infer _TRequest, infer _TResponse, infer _TData, infer _TError, infer _TOptions, infer _TState, infer TFetchContext> ? TFetchContext : never;
29
26
  export type ActualParams<TParams, TRequest> = (unknown extends TParams ? TRequest : TParams) | typeof idle;
30
- export type ActualResponse<TResponse, TErrorResponse> = unknown extends TErrorResponse ? TResponse : TResponse | TErrorResponse;
31
- export type ActualData<TResponse, TData, TErrorResponse> = unknown extends TData ? ActualResponse<TResponse, TErrorResponse> : TData;
27
+ export type ActualData<TData, TResponse> = unknown extends TData ? TResponse : TData;
32
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["DataSource.ts"],"sourcesContent":["import type {idle} from '../constants';\n\nexport type DataSourceKey = ReadonlyArray<unknown>;\nexport type DataSourceTag = string;\n\ndeclare const stateHintSymbol: unique symbol;\n\nexport interface DataSource<\n TContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n TErrorResponse,\n TOptions,\n TState,\n TFetchContext,\n> {\n readonly name: string;\n\n fetch: (\n context: TContext,\n fetchContext: TFetchContext,\n request: TRequest,\n ) => Promise<TResponse> | TResponse;\n tags?: (params: ActualParams<NoInfer<TParams>, NoInfer<TRequest>>) => DataSourceTag[];\n\n transformParams?: (params: TParams) => NoInfer<TRequest>;\n transformResponse?: (\n response: ActualResponse<NoInfer<TResponse>, NoInfer<TErrorResponse>>,\n ) => TData;\n\n /**\n * When set, the `fetch` errors will be transformed into data without changing the state to error.\n */\n transformError?: (error: TError) => TErrorResponse;\n\n options?: Partial<TOptions>;\n [stateHintSymbol]?: TState;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyDataSource = DataSource<any, any, any, any, any, any, any, any, any, any>;\n\nexport type DataSourceContext<TDataSource> =\n TDataSource extends DataSource<\n infer TContext,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TContext\n : never;\n\nexport type DataSourceParams<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer TParams,\n infer TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? ActualParams<TParams, TRequest>\n : never;\n\nexport type DataSourceRequest<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TRequest\n : never;\n\nexport type DataSourceResponse<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer TResponse,\n infer _TData,\n infer _TError,\n infer TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? ActualResponse<TResponse, TErrorResponse>\n : never;\n\nexport type DataSourceData<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer TResponse,\n infer TData,\n infer _TError,\n infer TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? ActualData<TResponse, TData, TErrorResponse>\n : never;\n\nexport type DataSourceError<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TError\n : never;\n\nexport type DataSourceErrorResponse<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TErrorResponse\n : never;\n\nexport type DataSourceOptions<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TOptions\n : never;\n\nexport type DataSourceState<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer TState,\n infer _TFetchContext\n >\n ? TState\n : never;\n\nexport type DataSourceFetchContext<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TErrorResponse,\n infer _TOptions,\n infer _TState,\n infer TFetchContext\n >\n ? TFetchContext\n : never;\n\nexport type ActualParams<TParams, TRequest> =\n | (unknown extends TParams ? TRequest : TParams)\n | typeof idle;\n\nexport type ActualResponse<TResponse, TErrorResponse> = unknown extends TErrorResponse\n ? TResponse\n : TResponse | TErrorResponse;\n\nexport type ActualData<TResponse, TData, TErrorResponse> = unknown extends TData\n ? ActualResponse<TResponse, TErrorResponse>\n : TData;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["DataSource.ts"],"sourcesContent":["import type {idle} from '../constants';\n\nexport type DataSourceKey = ReadonlyArray<unknown>;\nexport type DataSourceTag = string;\n\ndeclare const errorHintSymbol: unique symbol;\ndeclare const stateHintSymbol: unique symbol;\n\nexport interface DataSource<\n TContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n TOptions,\n TState,\n TFetchContext,\n> {\n readonly name: string;\n\n fetch: (\n context: TContext,\n fetchContext: TFetchContext,\n request: TRequest,\n ) => Promise<TResponse> | TResponse;\n tags?: (params: ActualParams<NoInfer<TParams>, NoInfer<TRequest>>) => DataSourceTag[];\n\n transformParams?: (params: TParams) => NoInfer<TRequest>;\n transformResponse?: (response: TResponse) => TData;\n\n options?: Partial<TOptions>;\n [stateHintSymbol]?: TState;\n [errorHintSymbol]?: TError;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyDataSource = DataSource<any, any, any, any, any, any, any, any, any>;\n\nexport type DataSourceContext<TDataSource> =\n TDataSource extends DataSource<\n infer TContext,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TContext\n : never;\n\nexport type DataSourceParams<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer TParams,\n infer TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? ActualParams<TParams, TRequest>\n : never;\n\nexport type DataSourceRequest<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TRequest\n : never;\n\nexport type DataSourceResponse<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TResponse\n : never;\n\nexport type DataSourceData<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer TResponse,\n infer TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? ActualData<TData, TResponse>\n : never;\n\nexport type DataSourceError<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer TError,\n infer _TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TError\n : never;\n\nexport type DataSourceOptions<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer TOptions,\n infer _TState,\n infer _TFetchContext\n >\n ? TOptions\n : never;\n\nexport type DataSourceState<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer TState,\n infer _TFetchContext\n >\n ? TState\n : never;\n\nexport type DataSourceFetchContext<TDataSource> =\n TDataSource extends DataSource<\n infer _TContenxt,\n infer _TParams,\n infer _TRequest,\n infer _TResponse,\n infer _TData,\n infer _TError,\n infer _TOptions,\n infer _TState,\n infer TFetchContext\n >\n ? TFetchContext\n : never;\n\nexport type ActualParams<TParams, TRequest> =\n | (unknown extends TParams ? TRequest : TParams)\n | typeof idle;\n\nexport type ActualData<TData, TResponse> = unknown extends TData ? TResponse : TData;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import type { NormalizerConfig as NormalizeConfigBase } from '@normy/core';
2
+ import type { Data, NormalizedData } from '@normy/core/types/types';
3
+ export interface OptimisticConfig {
4
+ /** Automatically calculate rollback data, defaults to true */
5
+ autoCalculateRollback?: boolean;
6
+ /** Whether debug logging is enabled */
7
+ devLogging?: boolean;
8
+ }
9
+ export interface NormalizerConfig extends NormalizeConfigBase {
10
+ initialData?: NormalizedData;
11
+ optimistic?: boolean | OptimisticConfig;
12
+ invalidate?: boolean;
13
+ }
14
+ export interface Normalizer {
15
+ getNormalizedData: () => NormalizedData;
16
+ clearNormalizedData: () => void;
17
+ setQuery: (queryKey: string, queryData: Data) => void;
18
+ removeQuery: (queryKey: string) => void;
19
+ getQueriesToUpdate: (mutationData: Data) => {
20
+ queryKey: string;
21
+ data: Data;
22
+ }[];
23
+ getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;
24
+ getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;
25
+ getDependentQueries: (mutationData: Data) => readonly string[];
26
+ getDependentQueriesByIds: (ids: ReadonlyArray<string>) => readonly string[];
27
+ getCurrentData: <T extends Data>(newData: T) => T | undefined;
28
+ log: (...messages: unknown[]) => void;
29
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ // #sourceMappingURL=Normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["Normalizer.ts"],"sourcesContent":["import type {NormalizerConfig as NormalizeConfigBase} from '@normy/core';\nimport type {Data, NormalizedData} from '@normy/core/types/types';\n\nexport interface OptimisticConfig {\n /** Automatically calculate rollback data, defaults to true */\n autoCalculateRollback?: boolean;\n /** Whether debug logging is enabled */\n devLogging?: boolean;\n}\n\nexport interface NormalizerConfig extends NormalizeConfigBase {\n initialData?: NormalizedData;\n optimistic?: boolean | OptimisticConfig;\n invalidate?: boolean;\n}\n\nexport interface Normalizer {\n getNormalizedData: () => NormalizedData;\n clearNormalizedData: () => void;\n setQuery: (queryKey: string, queryData: Data) => void;\n removeQuery: (queryKey: string) => void;\n getQueriesToUpdate: (mutationData: Data) => {\n queryKey: string;\n data: Data;\n }[];\n getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;\n getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;\n getDependentQueries: (mutationData: Data) => readonly string[];\n getDependentQueriesByIds: (ids: ReadonlyArray<string>) => readonly string[];\n getCurrentData: <T extends Data>(newData: T) => T | undefined;\n log: (...messages: unknown[]) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _composeFullKey = require("../composeFullKey");
4
+ var _composeKey = require("../composeKey");
5
+ describe('composeFullKey', function () {
6
+ var dataSource = {
7
+ name: 'test',
8
+ fetch: jest.fn()
9
+ };
10
+ var dataSourceWithTags = {
11
+ name: 'test',
12
+ fetch: jest.fn(),
13
+ tags: function tags() {
14
+ return ['tag1', 'tag2'];
15
+ }
16
+ };
17
+ it('should compose full key without tags', function () {
18
+ var params = {
19
+ id: 1
20
+ };
21
+ var result = (0, _composeFullKey.composeFullKey)(dataSource, params);
22
+ var key = (0, _composeKey.composeKey)(dataSource, params);
23
+ expect(result).toEqual(['test', key]);
24
+ });
25
+ it('should compose full key with tags', function () {
26
+ var params = {
27
+ id: 1
28
+ };
29
+ var result = (0, _composeFullKey.composeFullKey)(dataSourceWithTags, params);
30
+ var key = (0, _composeKey.composeKey)(dataSourceWithTags, params);
31
+ expect(result).toEqual(['test', 'tag1', 'tag2', key]);
32
+ });
33
+ });
34
+ // #sourceMappingURL=composeFullKey.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_composeFullKey","require","_composeKey","describe","dataSource","name","fetch","jest","fn","dataSourceWithTags","tags","it","params","id","result","composeFullKey","key","composeKey","expect","toEqual"],"sources":["composeFullKey.test.ts"],"sourcesContent":["import type {AnyDataSource} from '../../types/DataSource';\nimport {composeFullKey} from '../composeFullKey';\nimport {composeKey} from '../composeKey';\n\ndescribe('composeFullKey', () => {\n const dataSource: AnyDataSource = {\n name: 'test',\n fetch: jest.fn(),\n };\n\n const dataSourceWithTags: AnyDataSource = {\n name: 'test',\n fetch: jest.fn(),\n tags: () => ['tag1', 'tag2'],\n };\n\n it('should compose full key without tags', () => {\n const params = {id: 1};\n const result = composeFullKey(dataSource, params);\n const key = composeKey(dataSource, params);\n expect(result).toEqual(['test', key]);\n });\n\n it('should compose full key with tags', () => {\n const params = {id: 1};\n const result = composeFullKey(dataSourceWithTags, params);\n const key = composeKey(dataSourceWithTags, params);\n expect(result).toEqual(['test', 'tag1', 'tag2', key]);\n });\n});\n"],"mappings":";;AACA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEAE,QAAQ,CAAC,gBAAgB,EAAE,YAAM;EAC7B,IAAMC,UAAyB,GAAG;IAC9BC,IAAI,EAAE,MAAM;IACZC,KAAK,EAAEC,IAAI,CAACC,EAAE,CAAC;EACnB,CAAC;EAED,IAAMC,kBAAiC,GAAG;IACtCJ,IAAI,EAAE,MAAM;IACZC,KAAK,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;IAChBE,IAAI,EAAE,SAANA,IAAIA,CAAA;MAAA,OAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAA;EAChC,CAAC;EAEDC,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAC7C,IAAMC,MAAM,GAAG;MAACC,EAAE,EAAE;IAAC,CAAC;IACtB,IAAMC,MAAM,GAAG,IAAAC,8BAAc,EAACX,UAAU,EAAEQ,MAAM,CAAC;IACjD,IAAMI,GAAG,GAAG,IAAAC,sBAAU,EAACb,UAAU,EAAEQ,MAAM,CAAC;IAC1CM,MAAM,CAACJ,MAAM,CAAC,CAACK,OAAO,CAAC,CAAC,MAAM,EAAEH,GAAG,CAAC,CAAC;EACzC,CAAC,CAAC;EAEFL,EAAE,CAAC,mCAAmC,EAAE,YAAM;IAC1C,IAAMC,MAAM,GAAG;MAACC,EAAE,EAAE;IAAC,CAAC;IACtB,IAAMC,MAAM,GAAG,IAAAC,8BAAc,EAACN,kBAAkB,EAAEG,MAAM,CAAC;IACzD,IAAMI,GAAG,GAAG,IAAAC,sBAAU,EAACR,kBAAkB,EAAEG,MAAM,CAAC;IAClDM,MAAM,CAACJ,MAAM,CAAC,CAACK,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAEH,GAAG,CAAC,CAAC;EACzD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _constants = require("../../constants");
4
+ var _composeKey = require("../composeKey");
5
+ describe('composeKey', function () {
6
+ var dataSource = {
7
+ name: 'test',
8
+ fetch: jest.fn()
9
+ };
10
+ it('should compose key with idle params', function () {
11
+ var result = (0, _composeKey.composeKey)(dataSource, _constants.idle);
12
+ expect(result).toBe('test:idle');
13
+ });
14
+ it('should compose key with string param', function () {
15
+ var params = 'string';
16
+ var result = (0, _composeKey.composeKey)(dataSource, params);
17
+ expect(result).toBe('test("string")');
18
+ });
19
+ it('should compose key with object param', function () {
20
+ var params = {
21
+ id: 1
22
+ };
23
+ var result = (0, _composeKey.composeKey)(dataSource, params);
24
+ expect(result).toMatch(/^test\(.+\)$/);
25
+ });
26
+ it('should compose key with array param', function () {
27
+ var params = [1, 2, 3];
28
+ var result = (0, _composeKey.composeKey)(dataSource, params);
29
+ expect(result).toMatch(/^test\(.+\)$/);
30
+ });
31
+ });
32
+ // #sourceMappingURL=composeKey.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","_composeKey","describe","dataSource","name","fetch","jest","fn","it","result","composeKey","idle","expect","toBe","params","id","toMatch"],"sources":["composeKey.test.ts"],"sourcesContent":["import {idle} from '../../constants';\nimport type {AnyDataSource} from '../../types/DataSource';\nimport {composeKey} from '../composeKey';\n\ndescribe('composeKey', () => {\n const dataSource: AnyDataSource = {\n name: 'test',\n fetch: jest.fn(),\n };\n\n it('should compose key with idle params', () => {\n const result = composeKey(dataSource, idle);\n expect(result).toBe('test:idle');\n });\n\n it('should compose key with string param', () => {\n const params = 'string';\n const result = composeKey(dataSource, params);\n expect(result).toBe('test(\"string\")');\n });\n\n it('should compose key with object param', () => {\n const params = {id: 1};\n const result = composeKey(dataSource, params);\n expect(result).toMatch(/^test\\(.+\\)$/);\n });\n\n it('should compose key with array param', () => {\n const params = [1, 2, 3];\n const result = composeKey(dataSource, params);\n expect(result).toMatch(/^test\\(.+\\)$/);\n });\n});\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEAE,QAAQ,CAAC,YAAY,EAAE,YAAM;EACzB,IAAMC,UAAyB,GAAG;IAC9BC,IAAI,EAAE,MAAM;IACZC,KAAK,EAAEC,IAAI,CAACC,EAAE,CAAC;EACnB,CAAC;EAEDC,EAAE,CAAC,qCAAqC,EAAE,YAAM;IAC5C,IAAMC,MAAM,GAAG,IAAAC,sBAAU,EAACP,UAAU,EAAEQ,eAAI,CAAC;IAC3CC,MAAM,CAACH,MAAM,CAAC,CAACI,IAAI,CAAC,WAAW,CAAC;EACpC,CAAC,CAAC;EAEFL,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAC7C,IAAMM,MAAM,GAAG,QAAQ;IACvB,IAAML,MAAM,GAAG,IAAAC,sBAAU,EAACP,UAAU,EAAEW,MAAM,CAAC;IAC7CF,MAAM,CAACH,MAAM,CAAC,CAACI,IAAI,CAAC,gBAAgB,CAAC;EACzC,CAAC,CAAC;EAEFL,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAC7C,IAAMM,MAAM,GAAG;MAACC,EAAE,EAAE;IAAC,CAAC;IACtB,IAAMN,MAAM,GAAG,IAAAC,sBAAU,EAACP,UAAU,EAAEW,MAAM,CAAC;IAC7CF,MAAM,CAACH,MAAM,CAAC,CAACO,OAAO,CAAC,cAAc,CAAC;EAC1C,CAAC,CAAC;EAEFR,EAAE,CAAC,qCAAqC,EAAE,YAAM;IAC5C,IAAMM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxB,IAAML,MAAM,GAAG,IAAAC,sBAAU,EAACP,UAAU,EAAEW,MAAM,CAAC;IAC7CF,MAAM,CAACH,MAAM,CAAC,CAACO,OAAO,CAAC,cAAc,CAAC;EAC1C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _getError = require("../getError");
4
+ describe('getError', function () {
5
+ it('should return null when no errors', function () {
6
+ var states = [{
7
+ error: null
8
+ }, {
9
+ error: null
10
+ }, {
11
+ error: null
12
+ }];
13
+ expect((0, _getError.getError)(states)).toBeNull();
14
+ });
15
+ it('should return the first error found', function () {
16
+ var error1 = 'Error 1';
17
+ var error2 = 'Error 2';
18
+ var states = [{
19
+ error: null
20
+ }, {
21
+ error: error1
22
+ }, {
23
+ error: error2
24
+ }];
25
+ expect((0, _getError.getError)(states)).toBe(error1);
26
+ });
27
+ it('should handle empty array', function () {
28
+ expect((0, _getError.getError)([])).toBeNull();
29
+ });
30
+ });
31
+ // #sourceMappingURL=getError.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_getError","require","describe","it","states","error","expect","getError","toBeNull","error1","error2","toBe"],"sources":["getError.test.ts"],"sourcesContent":["import {getError} from '../getError';\n\ndescribe('getError', () => {\n it('should return null when no errors', () => {\n const states = [{error: null}, {error: null}, {error: null}];\n expect(getError(states)).toBeNull();\n });\n\n it('should return the first error found', () => {\n const error1 = 'Error 1';\n const error2 = 'Error 2';\n const states = [{error: null}, {error: error1}, {error: error2}];\n expect(getError(states)).toBe(error1);\n });\n\n it('should handle empty array', () => {\n expect(getError([])).toBeNull();\n });\n});\n"],"mappings":";;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,UAAU,EAAE,YAAM;EACvBC,EAAE,CAAC,mCAAmC,EAAE,YAAM;IAC1C,IAAMC,MAAM,GAAG,CAAC;MAACC,KAAK,EAAE;IAAI,CAAC,EAAE;MAACA,KAAK,EAAE;IAAI,CAAC,EAAE;MAACA,KAAK,EAAE;IAAI,CAAC,CAAC;IAC5DC,MAAM,CAAC,IAAAC,kBAAQ,EAACH,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EACvC,CAAC,CAAC;EAEFL,EAAE,CAAC,qCAAqC,EAAE,YAAM;IAC5C,IAAMM,MAAM,GAAG,SAAS;IACxB,IAAMC,MAAM,GAAG,SAAS;IACxB,IAAMN,MAAM,GAAG,CAAC;MAACC,KAAK,EAAE;IAAI,CAAC,EAAE;MAACA,KAAK,EAAEI;IAAM,CAAC,EAAE;MAACJ,KAAK,EAAEK;IAAM,CAAC,CAAC;IAChEJ,MAAM,CAAC,IAAAC,kBAAQ,EAACH,MAAM,CAAC,CAAC,CAACO,IAAI,CAACF,MAAM,CAAC;EACzC,CAAC,CAAC;EAEFN,EAAE,CAAC,2BAA2B,EAAE,YAAM;IAClCG,MAAM,CAAC,IAAAC,kBAAQ,EAAC,EAAE,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACnC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _getStatus = require("../getStatus");
4
+ describe('getStatus', function () {
5
+ it('should return success when all statuses are success', function () {
6
+ var states = [{
7
+ status: 'success'
8
+ }, {
9
+ status: 'success'
10
+ }, {
11
+ status: 'success'
12
+ }];
13
+ expect((0, _getStatus.getStatus)(states)).toBe('success');
14
+ });
15
+ it('should return loading when at least one status is loading', function () {
16
+ var states = [{
17
+ status: 'success'
18
+ }, {
19
+ status: 'loading'
20
+ }, {
21
+ status: 'success'
22
+ }];
23
+ expect((0, _getStatus.getStatus)(states)).toBe('loading');
24
+ });
25
+ it('should return error when at least one status is error', function () {
26
+ var states = [{
27
+ status: 'success'
28
+ }, {
29
+ status: 'error'
30
+ }, {
31
+ status: 'success'
32
+ }];
33
+ expect((0, _getStatus.getStatus)(states)).toBe('error');
34
+ });
35
+ it('should prioritize error over loading', function () {
36
+ var states = [{
37
+ status: 'loading'
38
+ }, {
39
+ status: 'error'
40
+ }, {
41
+ status: 'success'
42
+ }];
43
+ expect((0, _getStatus.getStatus)(states)).toBe('error');
44
+ });
45
+ it('should handle empty array', function () {
46
+ expect((0, _getStatus.getStatus)([])).toBe('success');
47
+ });
48
+ });
49
+ // #sourceMappingURL=getStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_getStatus","require","describe","it","states","status","expect","getStatus","toBe"],"sources":["getStatus.test.ts"],"sourcesContent":["import type {DataLoaderStatus} from '../../types/DataLoaderStatus';\nimport {getStatus} from '../getStatus';\n\ndescribe('getStatus', () => {\n it('should return success when all statuses are success', () => {\n const states = [\n {status: 'success' as DataLoaderStatus},\n {status: 'success' as DataLoaderStatus},\n {status: 'success' as DataLoaderStatus},\n ];\n expect(getStatus(states)).toBe('success');\n });\n\n it('should return loading when at least one status is loading', () => {\n const states = [\n {status: 'success' as DataLoaderStatus},\n {status: 'loading' as DataLoaderStatus},\n {status: 'success' as DataLoaderStatus},\n ];\n expect(getStatus(states)).toBe('loading');\n });\n\n it('should return error when at least one status is error', () => {\n const states = [\n {status: 'success' as DataLoaderStatus},\n {status: 'error' as DataLoaderStatus},\n {status: 'success' as DataLoaderStatus},\n ];\n expect(getStatus(states)).toBe('error');\n });\n\n it('should prioritize error over loading', () => {\n const states = [\n {status: 'loading' as DataLoaderStatus},\n {status: 'error' as DataLoaderStatus},\n {status: 'success' as DataLoaderStatus},\n ];\n expect(getStatus(states)).toBe('error');\n });\n\n it('should handle empty array', () => {\n expect(getStatus([])).toBe('success');\n });\n});\n"],"mappings":";;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,WAAW,EAAE,YAAM;EACxBC,EAAE,CAAC,qDAAqD,EAAE,YAAM;IAC5D,IAAMC,MAAM,GAAG,CACX;MAACC,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA6B,CAAC,CAC1C;IACDC,MAAM,CAAC,IAAAC,oBAAS,EAACH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,SAAS,CAAC;EAC7C,CAAC,CAAC;EAEFL,EAAE,CAAC,2DAA2D,EAAE,YAAM;IAClE,IAAMC,MAAM,GAAG,CACX;MAACC,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA6B,CAAC,CAC1C;IACDC,MAAM,CAAC,IAAAC,oBAAS,EAACH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,SAAS,CAAC;EAC7C,CAAC,CAAC;EAEFL,EAAE,CAAC,uDAAuD,EAAE,YAAM;IAC9D,IAAMC,MAAM,GAAG,CACX;MAACC,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA2B,CAAC,EACrC;MAACA,MAAM,EAAE;IAA6B,CAAC,CAC1C;IACDC,MAAM,CAAC,IAAAC,oBAAS,EAACH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,OAAO,CAAC;EAC3C,CAAC,CAAC;EAEFL,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAC7C,IAAMC,MAAM,GAAG,CACX;MAACC,MAAM,EAAE;IAA6B,CAAC,EACvC;MAACA,MAAM,EAAE;IAA2B,CAAC,EACrC;MAACA,MAAM,EAAE;IAA6B,CAAC,CAC1C;IACDC,MAAM,CAAC,IAAAC,oBAAS,EAACH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,OAAO,CAAC;EAC3C,CAAC,CAAC;EAEFL,EAAE,CAAC,2BAA2B,EAAE,YAAM;IAClCG,MAAM,CAAC,IAAAC,oBAAS,EAAC,EAAE,CAAC,CAAC,CAACC,IAAI,CAAC,SAAS,CAAC;EACzC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _hasTag = require("../hasTag");
4
+ describe('hasTag', function () {
5
+ it('should return true when key contains tag', function () {
6
+ var key = ['dataSource', 'tag1', 'tag2', 'fullKey'];
7
+ var tag = 'tag1';
8
+ expect((0, _hasTag.hasTag)(key, tag)).toBe(true);
9
+ });
10
+ it('should return false when key does not contain tag', function () {
11
+ var key = ['dataSource', 'tag1', 'tag2', 'fullKey'];
12
+ var tag = 'tag3';
13
+ expect((0, _hasTag.hasTag)(key, tag)).toBe(false);
14
+ });
15
+ it('should return false when tag is at first position (data source name)', function () {
16
+ var key = ['tag1', 'tag2', 'tag3', 'fullKey'];
17
+ var tag = 'tag1';
18
+ expect((0, _hasTag.hasTag)(key, tag)).toBe(false);
19
+ });
20
+ it('should return false when tag is at last position (full key)', function () {
21
+ var key = ['dataSource', 'tag1', 'tag2', 'tag3'];
22
+ var tag = 'tag3';
23
+ expect((0, _hasTag.hasTag)(key, tag)).toBe(false);
24
+ });
25
+ it('should return false when key is not an array', function () {
26
+ var key = 'not an array';
27
+ var tag = 'tag';
28
+ expect((0, _hasTag.hasTag)(key, tag)).toBe(false);
29
+ });
30
+ });
31
+ // #sourceMappingURL=hasTag.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hasTag","require","describe","it","key","tag","expect","hasTag","toBe"],"sources":["hasTag.test.ts"],"sourcesContent":["import type {DataSourceKey, DataSourceTag} from '../../types/DataSource';\nimport {hasTag} from '../hasTag';\n\ndescribe('hasTag', () => {\n it('should return true when key contains tag', () => {\n const key: DataSourceKey = ['dataSource', 'tag1', 'tag2', 'fullKey'];\n const tag: DataSourceTag = 'tag1';\n expect(hasTag(key, tag)).toBe(true);\n });\n\n it('should return false when key does not contain tag', () => {\n const key: DataSourceKey = ['dataSource', 'tag1', 'tag2', 'fullKey'];\n const tag: DataSourceTag = 'tag3';\n expect(hasTag(key, tag)).toBe(false);\n });\n\n it('should return false when tag is at first position (data source name)', () => {\n const key: DataSourceKey = ['tag1', 'tag2', 'tag3', 'fullKey'];\n const tag: DataSourceTag = 'tag1';\n expect(hasTag(key, tag)).toBe(false);\n });\n\n it('should return false when tag is at last position (full key)', () => {\n const key: DataSourceKey = ['dataSource', 'tag1', 'tag2', 'tag3'];\n const tag: DataSourceTag = 'tag3';\n expect(hasTag(key, tag)).toBe(false);\n });\n\n it('should return false when key is not an array', () => {\n const key = 'not an array';\n const tag: DataSourceTag = 'tag';\n expect(hasTag(key as unknown as DataSourceKey, tag)).toBe(false);\n });\n});\n"],"mappings":";;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,QAAQ,EAAE,YAAM;EACrBC,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACjD,IAAMC,GAAkB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IACpE,IAAMC,GAAkB,GAAG,MAAM;IACjCC,MAAM,CAAC,IAAAC,cAAM,EAACH,GAAG,EAAEC,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;EACvC,CAAC,CAAC;EAEFL,EAAE,CAAC,mDAAmD,EAAE,YAAM;IAC1D,IAAMC,GAAkB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IACpE,IAAMC,GAAkB,GAAG,MAAM;IACjCC,MAAM,CAAC,IAAAC,cAAM,EAACH,GAAG,EAAEC,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,KAAK,CAAC;EACxC,CAAC,CAAC;EAEFL,EAAE,CAAC,sEAAsE,EAAE,YAAM;IAC7E,IAAMC,GAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC9D,IAAMC,GAAkB,GAAG,MAAM;IACjCC,MAAM,CAAC,IAAAC,cAAM,EAACH,GAAG,EAAEC,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,KAAK,CAAC;EACxC,CAAC,CAAC;EAEFL,EAAE,CAAC,6DAA6D,EAAE,YAAM;IACpE,IAAMC,GAAkB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACjE,IAAMC,GAAkB,GAAG,MAAM;IACjCC,MAAM,CAAC,IAAAC,cAAM,EAACH,GAAG,EAAEC,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,KAAK,CAAC;EACxC,CAAC,CAAC;EAEFL,EAAE,CAAC,8CAA8C,EAAE,YAAM;IACrD,IAAMC,GAAG,GAAG,cAAc;IAC1B,IAAMC,GAAkB,GAAG,KAAK;IAChCC,MAAM,CAAC,IAAAC,cAAM,EAACH,GAAG,EAA8BC,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,KAAK,CAAC;EACpE,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _mergeStatuses = require("../mergeStatuses");
4
+ describe('mergeStatuses', function () {
5
+ it('should return success when all statuses are success', function () {
6
+ var statuses = ['success', 'success', 'success'];
7
+ expect((0, _mergeStatuses.mergeStatuses)(statuses)).toBe('success');
8
+ });
9
+ it('should return loading when at least one status is loading', function () {
10
+ var statuses = ['success', 'loading', 'success'];
11
+ expect((0, _mergeStatuses.mergeStatuses)(statuses)).toBe('loading');
12
+ });
13
+ it('should return error when at least one status is error', function () {
14
+ var statuses = ['success', 'error', 'success'];
15
+ expect((0, _mergeStatuses.mergeStatuses)(statuses)).toBe('error');
16
+ });
17
+ it('should prioritize error over loading', function () {
18
+ var statuses = ['loading', 'error', 'success'];
19
+ expect((0, _mergeStatuses.mergeStatuses)(statuses)).toBe('error');
20
+ });
21
+ it('should handle empty array', function () {
22
+ expect((0, _mergeStatuses.mergeStatuses)([])).toBe('success');
23
+ });
24
+ });
25
+ // #sourceMappingURL=mergeStatuses.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mergeStatuses","require","describe","it","statuses","expect","mergeStatuses","toBe"],"sources":["mergeStatuses.test.ts"],"sourcesContent":["import type {DataLoaderStatus} from '../../types/DataLoaderStatus';\nimport {mergeStatuses} from '../mergeStatuses';\n\ndescribe('mergeStatuses', () => {\n it('should return success when all statuses are success', () => {\n const statuses: DataLoaderStatus[] = ['success', 'success', 'success'];\n expect(mergeStatuses(statuses)).toBe('success');\n });\n\n it('should return loading when at least one status is loading', () => {\n const statuses: DataLoaderStatus[] = ['success', 'loading', 'success'];\n expect(mergeStatuses(statuses)).toBe('loading');\n });\n\n it('should return error when at least one status is error', () => {\n const statuses: DataLoaderStatus[] = ['success', 'error', 'success'];\n expect(mergeStatuses(statuses)).toBe('error');\n });\n\n it('should prioritize error over loading', () => {\n const statuses: DataLoaderStatus[] = ['loading', 'error', 'success'];\n expect(mergeStatuses(statuses)).toBe('error');\n });\n\n it('should handle empty array', () => {\n expect(mergeStatuses([])).toBe('success');\n });\n});\n"],"mappings":";;AACA,IAAAA,cAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC5BC,EAAE,CAAC,qDAAqD,EAAE,YAAM;IAC5D,IAAMC,QAA4B,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACtEC,MAAM,CAAC,IAAAC,4BAAa,EAACF,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAC,SAAS,CAAC;EACnD,CAAC,CAAC;EAEFJ,EAAE,CAAC,2DAA2D,EAAE,YAAM;IAClE,IAAMC,QAA4B,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACtEC,MAAM,CAAC,IAAAC,4BAAa,EAACF,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAC,SAAS,CAAC;EACnD,CAAC,CAAC;EAEFJ,EAAE,CAAC,uDAAuD,EAAE,YAAM;IAC9D,IAAMC,QAA4B,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;IACpEC,MAAM,CAAC,IAAAC,4BAAa,EAACF,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAC,OAAO,CAAC;EACjD,CAAC,CAAC;EAEFJ,EAAE,CAAC,sCAAsC,EAAE,YAAM;IAC7C,IAAMC,QAA4B,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;IACpEC,MAAM,CAAC,IAAAC,4BAAa,EAACF,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAC,OAAO,CAAC;EACjD,CAAC,CAAC;EAEFJ,EAAE,CAAC,2BAA2B,EAAE,YAAM;IAClCE,MAAM,CAAC,IAAAC,4BAAa,EAAC,EAAE,CAAC,CAAC,CAACC,IAAI,CAAC,SAAS,CAAC;EAC7C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
4
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
5
+ var _skipContext = require("../skipContext");
6
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
+ describe('skipContext', function () {
8
+ it('should ignore context and query function context parameters', function () {
9
+ var mockFn = jest.fn(function (arg1, arg2) {
10
+ return "".concat(arg1, "-").concat(arg2);
11
+ });
12
+ var wrappedFn = (0, _skipContext.skipContext)(mockFn);
13
+ var result = wrappedFn('context', 'queryFnContext', 'hello', 42);
14
+ expect(mockFn).toHaveBeenCalledWith('hello', 42);
15
+ expect(result).toBe('hello-42');
16
+ });
17
+ it('should work with functions that have no parameters', function () {
18
+ var mockFn = jest.fn(function () {
19
+ return 'result';
20
+ });
21
+ var wrappedFn = (0, _skipContext.skipContext)(mockFn);
22
+ var result = wrappedFn('context', 'queryFnContext');
23
+ expect(mockFn).toHaveBeenCalledWith();
24
+ expect(result).toBe('result');
25
+ });
26
+ it('should work with async functions', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
27
+ var mockFn, wrappedFn, result;
28
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
29
+ while (1) switch (_context2.prev = _context2.next) {
30
+ case 0:
31
+ mockFn = jest.fn(/*#__PURE__*/function () {
32
+ var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(arg) {
33
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
34
+ while (1) switch (_context.prev = _context.next) {
35
+ case 0:
36
+ return _context.abrupt("return", "async-".concat(arg));
37
+ case 1:
38
+ case "end":
39
+ return _context.stop();
40
+ }
41
+ }, _callee);
42
+ }));
43
+ return function (_x) {
44
+ return _ref2.apply(this, arguments);
45
+ };
46
+ }());
47
+ wrappedFn = (0, _skipContext.skipContext)(mockFn);
48
+ _context2.next = 4;
49
+ return wrappedFn('context', 'queryFnContext', 'test');
50
+ case 4:
51
+ result = _context2.sent;
52
+ expect(mockFn).toHaveBeenCalledWith('test');
53
+ expect(result).toBe('async-test');
54
+ case 7:
55
+ case "end":
56
+ return _context2.stop();
57
+ }
58
+ }, _callee2);
59
+ })));
60
+ it('should pass multiple arguments correctly', function () {
61
+ var mockFn = jest.fn(function (arg1, arg2, arg3) {
62
+ return "".concat(arg1, "-").concat(arg2, "-").concat(arg3);
63
+ });
64
+ var wrappedFn = (0, _skipContext.skipContext)(mockFn);
65
+ var result = wrappedFn('context', 'queryFnContext', 'hello', 42, true);
66
+ expect(mockFn).toHaveBeenCalledWith('hello', 42, true);
67
+ expect(result).toBe('hello-42-true');
68
+ });
69
+ });
70
+ // #sourceMappingURL=skipContext.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_skipContext","require","_interopRequireDefault","e","__esModule","default","describe","it","mockFn","jest","fn","arg1","arg2","concat","wrappedFn","skipContext","result","expect","toHaveBeenCalledWith","toBe","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","wrap","_callee2$","_context2","prev","next","_ref2","_callee","arg","_callee$","_context","abrupt","stop","_x","apply","arguments","sent","arg3"],"sources":["skipContext.test.ts"],"sourcesContent":["import {skipContext} from '../skipContext';\n\ndescribe('skipContext', () => {\n it('should ignore context and query function context parameters', () => {\n const mockFn = jest.fn((arg1: string, arg2: number) => `${arg1}-${arg2}`);\n const wrappedFn = skipContext(mockFn);\n const result = wrappedFn('context', 'queryFnContext', 'hello', 42);\n expect(mockFn).toHaveBeenCalledWith('hello', 42);\n expect(result).toBe('hello-42');\n });\n\n it('should work with functions that have no parameters', () => {\n const mockFn = jest.fn(() => 'result');\n const wrappedFn = skipContext(mockFn);\n const result = wrappedFn('context', 'queryFnContext');\n expect(mockFn).toHaveBeenCalledWith();\n expect(result).toBe('result');\n });\n\n it('should work with async functions', async () => {\n const mockFn = jest.fn(async (arg: string) => `async-${arg}`);\n const wrappedFn = skipContext(mockFn);\n const result = await wrappedFn('context', 'queryFnContext', 'test');\n expect(mockFn).toHaveBeenCalledWith('test');\n expect(result).toBe('async-test');\n });\n\n it('should pass multiple arguments correctly', () => {\n const mockFn = jest.fn(\n (arg1: string, arg2: number, arg3: boolean) => `${arg1}-${arg2}-${arg3}`,\n );\n const wrappedFn = skipContext(mockFn);\n const result = wrappedFn('context', 'queryFnContext', 'hello', 42, true);\n expect(mockFn).toHaveBeenCalledWith('hello', 42, true);\n expect(result).toBe('hello-42-true');\n });\n});\n"],"mappings":";;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA0C,SAAAC,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1CG,QAAQ,CAAC,aAAa,EAAE,YAAM;EAC1BC,EAAE,CAAC,6DAA6D,EAAE,YAAM;IACpE,IAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,UAACC,IAAY,EAAEC,IAAY;MAAA,UAAAC,MAAA,CAAQF,IAAI,OAAAE,MAAA,CAAID,IAAI;IAAA,CAAE,CAAC;IACzE,IAAME,SAAS,GAAG,IAAAC,wBAAW,EAACP,MAAM,CAAC;IACrC,IAAMQ,MAAM,GAAGF,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC;IAClEG,MAAM,CAACT,MAAM,CAAC,CAACU,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;IAChDD,MAAM,CAACD,MAAM,CAAC,CAACG,IAAI,CAAC,UAAU,CAAC;EACnC,CAAC,CAAC;EAEFZ,EAAE,CAAC,oDAAoD,EAAE,YAAM;IAC3D,IAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC;MAAA,OAAM,QAAQ;IAAA,EAAC;IACtC,IAAMI,SAAS,GAAG,IAAAC,wBAAW,EAACP,MAAM,CAAC;IACrC,IAAMQ,MAAM,GAAGF,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrDG,MAAM,CAACT,MAAM,CAAC,CAACU,oBAAoB,CAAC,CAAC;IACrCD,MAAM,CAACD,MAAM,CAAC,CAACG,IAAI,CAAC,QAAQ,CAAC;EACjC,CAAC,CAAC;EAEFZ,EAAE,CAAC,kCAAkC,mBAAAa,0BAAA,mBAAAC,4BAAA,IAAAC,IAAA,CAAE,SAAAC,SAAA;IAAA,IAAAf,MAAA,EAAAM,SAAA,EAAAE,MAAA;IAAA,WAAAK,4BAAA,IAAAG,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UAC7BpB,MAAM,GAAGC,IAAI,CAACC,EAAE;YAAA,IAAAmB,KAAA,OAAAT,0BAAA,mBAAAC,4BAAA,IAAAC,IAAA,CAAC,SAAAQ,QAAOC,GAAW;cAAA,WAAAV,4BAAA,IAAAG,IAAA,UAAAQ,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAN,IAAA,GAAAM,QAAA,CAAAL,IAAA;kBAAA;oBAAA,OAAAK,QAAA,CAAAC,MAAA,oBAAArB,MAAA,CAAckB,GAAG;kBAAA;kBAAA;oBAAA,OAAAE,QAAA,CAAAE,IAAA;gBAAA;cAAA,GAAAL,OAAA;YAAA,CAAE;YAAA,iBAAAM,EAAA;cAAA,OAAAP,KAAA,CAAAQ,KAAA,OAAAC,SAAA;YAAA;UAAA,IAAC;UACvDxB,SAAS,GAAG,IAAAC,wBAAW,EAACP,MAAM,CAAC;UAAAkB,SAAA,CAAAE,IAAA;UAAA,OAChBd,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC;QAAA;UAA7DE,MAAM,GAAAU,SAAA,CAAAa,IAAA;UACZtB,MAAM,CAACT,MAAM,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;UAC3CD,MAAM,CAACD,MAAM,CAAC,CAACG,IAAI,CAAC,YAAY,CAAC;QAAC;QAAA;UAAA,OAAAO,SAAA,CAAAS,IAAA;MAAA;IAAA,GAAAZ,QAAA;EAAA,CACrC,GAAC;EAEFhB,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACjD,IAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAClB,UAACC,IAAY,EAAEC,IAAY,EAAE4B,IAAa;MAAA,UAAA3B,MAAA,CAAQF,IAAI,OAAAE,MAAA,CAAID,IAAI,OAAAC,MAAA,CAAI2B,IAAI;IAAA,CAC1E,CAAC;IACD,IAAM1B,SAAS,GAAG,IAAAC,wBAAW,EAACP,MAAM,CAAC;IACrC,IAAMQ,MAAM,GAAGF,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC;IACxEG,MAAM,CAACT,MAAM,CAAC,CAACU,oBAAoB,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC;IACtDD,MAAM,CAACD,MAAM,CAAC,CAACG,IAAI,CAAC,eAAe,CAAC;EACxC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}