@isograph/react 0.5.0 → 0.5.1

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 (297) hide show
  1. package/.turbo/turbo-compile-libs.log +9 -2
  2. package/dist/_virtual/rolldown_runtime.js +25 -0
  3. package/dist/core/FragmentReference.d.mts +38 -0
  4. package/dist/core/FragmentReference.d.mts.map +1 -0
  5. package/dist/core/FragmentReference.d.ts +31 -29
  6. package/dist/core/FragmentReference.d.ts.map +1 -1
  7. package/dist/core/FragmentReference.js +7 -5
  8. package/dist/core/FragmentReference.mjs +10 -0
  9. package/dist/core/FragmentReference.mjs.map +1 -0
  10. package/dist/core/IsographEnvironment.d.mts +89 -0
  11. package/dist/core/IsographEnvironment.d.mts.map +1 -0
  12. package/dist/core/IsographEnvironment.d.ts +76 -79
  13. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  14. package/dist/core/IsographEnvironment.js +60 -82
  15. package/dist/core/IsographEnvironment.mjs +67 -0
  16. package/dist/core/IsographEnvironment.mjs.map +1 -0
  17. package/dist/core/PromiseWrapper.d.mts +36 -0
  18. package/dist/core/PromiseWrapper.d.mts.map +1 -0
  19. package/dist/core/PromiseWrapper.d.ts +26 -23
  20. package/dist/core/PromiseWrapper.d.ts.map +1 -1
  21. package/dist/core/PromiseWrapper.js +45 -43
  22. package/dist/core/PromiseWrapper.mjs +49 -0
  23. package/dist/core/PromiseWrapper.mjs.map +1 -0
  24. package/dist/core/areEqualWithDeepComparison.js +56 -108
  25. package/dist/core/areEqualWithDeepComparison.mjs +62 -0
  26. package/dist/core/areEqualWithDeepComparison.mjs.map +1 -0
  27. package/dist/core/brand.d.mts +19 -0
  28. package/dist/core/brand.d.mts.map +1 -0
  29. package/dist/core/brand.d.ts +6 -6
  30. package/dist/core/brand.d.ts.map +1 -1
  31. package/dist/core/cache.d.mts +20 -0
  32. package/dist/core/cache.d.mts.map +1 -0
  33. package/dist/core/cache.d.ts +18 -37
  34. package/dist/core/cache.d.ts.map +1 -1
  35. package/dist/core/cache.js +203 -537
  36. package/dist/core/cache.mjs +237 -0
  37. package/dist/core/cache.mjs.map +1 -0
  38. package/dist/core/check.d.mts +28 -0
  39. package/dist/core/check.d.mts.map +1 -0
  40. package/dist/core/check.d.ts +21 -19
  41. package/dist/core/check.d.ts.map +1 -1
  42. package/dist/core/check.js +80 -127
  43. package/dist/core/check.mjs +84 -0
  44. package/dist/core/check.mjs.map +1 -0
  45. package/dist/core/componentCache.js +9 -35
  46. package/dist/core/componentCache.mjs +12 -0
  47. package/dist/core/componentCache.mjs.map +1 -0
  48. package/dist/core/entrypoint.d.mts +99 -0
  49. package/dist/core/entrypoint.d.mts.map +1 -0
  50. package/dist/core/entrypoint.d.ts +83 -78
  51. package/dist/core/entrypoint.d.ts.map +1 -1
  52. package/dist/core/entrypoint.js +6 -5
  53. package/dist/core/entrypoint.mjs +8 -0
  54. package/dist/core/entrypoint.mjs.map +1 -0
  55. package/dist/core/garbageCollection.d.mts +18 -0
  56. package/dist/core/garbageCollection.d.mts.map +1 -0
  57. package/dist/core/garbageCollection.d.ts +15 -16
  58. package/dist/core/garbageCollection.d.ts.map +1 -1
  59. package/dist/core/garbageCollection.js +76 -115
  60. package/dist/core/garbageCollection.mjs +89 -0
  61. package/dist/core/garbageCollection.mjs.map +1 -0
  62. package/dist/core/getOrCreateCacheForArtifact.js +37 -0
  63. package/dist/core/getOrCreateCacheForArtifact.mjs +38 -0
  64. package/dist/core/getOrCreateCacheForArtifact.mjs.map +1 -0
  65. package/dist/core/logging.d.mts +95 -0
  66. package/dist/core/logging.d.mts.map +1 -0
  67. package/dist/core/logging.d.ts +66 -61
  68. package/dist/core/logging.d.ts.map +1 -1
  69. package/dist/core/logging.js +17 -18
  70. package/dist/core/logging.mjs +20 -0
  71. package/dist/core/logging.mjs.map +1 -0
  72. package/dist/core/makeNetworkRequest.d.mts +13 -0
  73. package/dist/core/makeNetworkRequest.d.mts.map +1 -0
  74. package/dist/core/makeNetworkRequest.d.ts +12 -10
  75. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  76. package/dist/core/makeNetworkRequest.js +180 -264
  77. package/dist/core/makeNetworkRequest.mjs +195 -0
  78. package/dist/core/makeNetworkRequest.mjs.map +1 -0
  79. package/dist/core/optimisticProxy.d.mts +43 -0
  80. package/dist/core/optimisticProxy.d.mts.map +1 -0
  81. package/dist/core/optimisticProxy.d.ts +37 -53
  82. package/dist/core/optimisticProxy.d.ts.map +1 -1
  83. package/dist/core/optimisticProxy.js +245 -371
  84. package/dist/core/optimisticProxy.mjs +268 -0
  85. package/dist/core/optimisticProxy.mjs.map +1 -0
  86. package/dist/core/read.d.mts +29 -0
  87. package/dist/core/read.d.mts.map +1 -0
  88. package/dist/core/read.d.ts +23 -28
  89. package/dist/core/read.d.ts.map +1 -1
  90. package/dist/core/read.js +435 -650
  91. package/dist/core/read.mjs +456 -0
  92. package/dist/core/read.mjs.map +1 -0
  93. package/dist/core/reader.d.mts +89 -0
  94. package/dist/core/reader.d.mts.map +1 -0
  95. package/dist/core/reader.d.ts +78 -77
  96. package/dist/core/reader.d.ts.map +1 -1
  97. package/dist/core/startUpdate.js +115 -152
  98. package/dist/core/startUpdate.mjs +125 -0
  99. package/dist/core/startUpdate.mjs.map +1 -0
  100. package/dist/core/subscribe.d.mts +12 -0
  101. package/dist/core/subscribe.d.mts.map +1 -0
  102. package/dist/core/subscribe.d.ts +12 -0
  103. package/dist/core/subscribe.d.ts.map +1 -0
  104. package/dist/core/subscribe.js +79 -0
  105. package/dist/core/subscribe.mjs +79 -0
  106. package/dist/core/subscribe.mjs.map +1 -0
  107. package/dist/core/util.d.mts +27 -0
  108. package/dist/core/util.d.mts.map +1 -0
  109. package/dist/core/util.d.ts +21 -17
  110. package/dist/core/util.d.ts.map +1 -1
  111. package/dist/core/util.js +22 -2
  112. package/dist/core/util.mjs +21 -0
  113. package/dist/core/util.mjs.map +1 -0
  114. package/dist/core/writeData.d.mts +11 -0
  115. package/dist/core/writeData.d.mts.map +1 -0
  116. package/dist/core/writeData.d.ts +11 -0
  117. package/dist/core/writeData.d.ts.map +1 -0
  118. package/dist/core/writeData.js +41 -0
  119. package/dist/core/writeData.mjs +42 -0
  120. package/dist/core/writeData.mjs.map +1 -0
  121. package/dist/index.d.mts +32 -0
  122. package/dist/index.d.ts +32 -29
  123. package/dist/index.js +70 -69
  124. package/dist/index.mjs +31 -0
  125. package/dist/loadable-hooks/useClientSideDefer.d.mts +12 -0
  126. package/dist/loadable-hooks/useClientSideDefer.d.mts.map +1 -0
  127. package/dist/loadable-hooks/useClientSideDefer.d.ts +9 -12
  128. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  129. package/dist/loadable-hooks/useClientSideDefer.js +13 -44
  130. package/dist/loadable-hooks/useClientSideDefer.mjs +14 -0
  131. package/dist/loadable-hooks/useClientSideDefer.mjs.map +1 -0
  132. package/dist/loadable-hooks/useConnectionSpecPagination.d.mts +33 -0
  133. package/dist/loadable-hooks/useConnectionSpecPagination.d.mts.map +1 -0
  134. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +26 -22
  135. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  136. package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -172
  137. package/dist/loadable-hooks/useConnectionSpecPagination.mjs +134 -0
  138. package/dist/loadable-hooks/useConnectionSpecPagination.mjs.map +1 -0
  139. package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts +8 -0
  140. package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts.map +1 -0
  141. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +6 -3
  142. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
  143. package/dist/loadable-hooks/useImperativeExposedMutationField.js +9 -12
  144. package/dist/loadable-hooks/useImperativeExposedMutationField.mjs +11 -0
  145. package/dist/loadable-hooks/useImperativeExposedMutationField.mjs.map +1 -0
  146. package/dist/loadable-hooks/useImperativeLoadableField.d.mts +19 -0
  147. package/dist/loadable-hooks/useImperativeLoadableField.d.mts.map +1 -0
  148. package/dist/loadable-hooks/useImperativeLoadableField.d.ts +15 -11
  149. package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
  150. package/dist/loadable-hooks/useImperativeLoadableField.js +16 -12
  151. package/dist/loadable-hooks/useImperativeLoadableField.mjs +17 -0
  152. package/dist/loadable-hooks/useImperativeLoadableField.mjs.map +1 -0
  153. package/dist/loadable-hooks/useSkipLimitPagination.d.mts +24 -0
  154. package/dist/loadable-hooks/useSkipLimitPagination.d.mts.map +1 -0
  155. package/dist/loadable-hooks/useSkipLimitPagination.d.ts +19 -15
  156. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  157. package/dist/loadable-hooks/useSkipLimitPagination.js +118 -160
  158. package/dist/loadable-hooks/useSkipLimitPagination.mjs +119 -0
  159. package/dist/loadable-hooks/useSkipLimitPagination.mjs.map +1 -0
  160. package/dist/react/FragmentReader.d.mts +18 -0
  161. package/dist/react/FragmentReader.d.mts.map +1 -0
  162. package/dist/react/FragmentReader.d.ts +16 -8
  163. package/dist/react/FragmentReader.d.ts.map +1 -1
  164. package/dist/react/FragmentReader.js +8 -7
  165. package/dist/react/FragmentReader.mjs +10 -0
  166. package/dist/react/FragmentReader.mjs.map +1 -0
  167. package/dist/react/FragmentRenderer.d.mts +20 -0
  168. package/dist/react/FragmentRenderer.d.mts.map +1 -0
  169. package/dist/react/FragmentRenderer.d.ts +18 -14
  170. package/dist/react/FragmentRenderer.d.ts.map +1 -1
  171. package/dist/react/FragmentRenderer.js +11 -33
  172. package/dist/react/FragmentRenderer.mjs +12 -0
  173. package/dist/react/FragmentRenderer.mjs.map +1 -0
  174. package/dist/react/IsographEnvironmentProvider.d.mts +17 -0
  175. package/dist/react/IsographEnvironmentProvider.d.mts.map +1 -0
  176. package/dist/react/IsographEnvironmentProvider.d.ts +15 -9
  177. package/dist/react/IsographEnvironmentProvider.d.ts.map +1 -1
  178. package/dist/react/IsographEnvironmentProvider.js +15 -39
  179. package/dist/react/IsographEnvironmentProvider.mjs +17 -0
  180. package/dist/react/IsographEnvironmentProvider.mjs.map +1 -0
  181. package/dist/react/LoadableFieldReader.d.mts +21 -0
  182. package/dist/react/LoadableFieldReader.d.mts.map +1 -0
  183. package/dist/react/LoadableFieldReader.d.ts +15 -12
  184. package/dist/react/LoadableFieldReader.d.ts.map +1 -1
  185. package/dist/react/LoadableFieldReader.js +13 -47
  186. package/dist/react/LoadableFieldReader.mjs +14 -0
  187. package/dist/react/LoadableFieldReader.mjs.map +1 -0
  188. package/dist/react/LoadableFieldRenderer.d.mts +22 -0
  189. package/dist/react/LoadableFieldRenderer.d.mts.map +1 -0
  190. package/dist/react/LoadableFieldRenderer.d.ts +16 -13
  191. package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
  192. package/dist/react/LoadableFieldRenderer.js +13 -70
  193. package/dist/react/LoadableFieldRenderer.mjs +14 -0
  194. package/dist/react/LoadableFieldRenderer.mjs.map +1 -0
  195. package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts +18 -0
  196. package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts.map +1 -0
  197. package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts +11 -3
  198. package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts.map +1 -1
  199. package/dist/react/RenderAfterCommit__DO_NOT_USE.js +17 -13
  200. package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs +18 -0
  201. package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs.map +1 -0
  202. package/dist/react/createIsographEnvironment.d.mts +9 -0
  203. package/dist/react/createIsographEnvironment.d.mts.map +1 -0
  204. package/dist/react/createIsographEnvironment.d.ts +8 -0
  205. package/dist/react/createIsographEnvironment.d.ts.map +1 -0
  206. package/dist/react/createIsographEnvironment.js +10 -0
  207. package/dist/react/createIsographEnvironment.mjs +11 -0
  208. package/dist/react/createIsographEnvironment.mjs.map +1 -0
  209. package/dist/react/maybeUnwrapNetworkRequest.js +11 -0
  210. package/dist/react/maybeUnwrapNetworkRequest.mjs +12 -0
  211. package/dist/react/maybeUnwrapNetworkRequest.mjs.map +1 -0
  212. package/dist/react/useImperativeReference.d.mts +15 -0
  213. package/dist/react/useImperativeReference.d.mts.map +1 -0
  214. package/dist/react/useImperativeReference.d.ts +13 -8
  215. package/dist/react/useImperativeReference.d.ts.map +1 -1
  216. package/dist/react/useImperativeReference.js +34 -30
  217. package/dist/react/useImperativeReference.mjs +35 -0
  218. package/dist/react/useImperativeReference.mjs.map +1 -0
  219. package/dist/react/useLazyReference.d.mts +13 -0
  220. package/dist/react/useLazyReference.d.mts.map +1 -0
  221. package/dist/react/useLazyReference.d.ts +11 -6
  222. package/dist/react/useLazyReference.d.ts.map +1 -1
  223. package/dist/react/useLazyReference.js +17 -40
  224. package/dist/react/useLazyReference.mjs +18 -0
  225. package/dist/react/useLazyReference.mjs.map +1 -0
  226. package/dist/react/useReadAndSubscribe.d.mts +20 -0
  227. package/dist/react/useReadAndSubscribe.d.mts.map +1 -0
  228. package/dist/react/useReadAndSubscribe.d.ts +14 -9
  229. package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
  230. package/dist/react/useReadAndSubscribe.js +57 -37
  231. package/dist/react/useReadAndSubscribe.mjs +59 -0
  232. package/dist/react/useReadAndSubscribe.mjs.map +1 -0
  233. package/dist/react/useRerenderOnChange.d.mts +12 -0
  234. package/dist/react/useRerenderOnChange.d.mts.map +1 -0
  235. package/dist/react/useRerenderOnChange.d.ts +10 -6
  236. package/dist/react/useRerenderOnChange.d.ts.map +1 -1
  237. package/dist/react/useRerenderOnChange.js +16 -20
  238. package/dist/react/useRerenderOnChange.mjs +17 -0
  239. package/dist/react/useRerenderOnChange.mjs.map +1 -0
  240. package/dist/react/useResult.d.mts +8 -0
  241. package/dist/react/useResult.d.mts.map +1 -0
  242. package/dist/react/useResult.d.ts +7 -5
  243. package/dist/react/useResult.d.ts.map +1 -1
  244. package/dist/react/useResult.js +27 -40
  245. package/dist/react/useResult.mjs +30 -0
  246. package/dist/react/useResult.mjs.map +1 -0
  247. package/package.json +17 -9
  248. package/src/core/FragmentReference.ts +3 -3
  249. package/src/core/IsographEnvironment.ts +29 -16
  250. package/src/core/areEqualWithDeepComparison.ts +2 -18
  251. package/src/core/cache.ts +18 -383
  252. package/src/core/check.ts +9 -16
  253. package/src/core/componentCache.ts +10 -47
  254. package/src/core/entrypoint.ts +15 -3
  255. package/src/core/garbageCollection.ts +21 -10
  256. package/src/core/getOrCreateCacheForArtifact.ts +86 -0
  257. package/src/core/logging.ts +10 -10
  258. package/src/core/makeNetworkRequest.ts +16 -23
  259. package/src/core/optimisticProxy.ts +28 -47
  260. package/src/core/read.ts +21 -38
  261. package/src/core/reader.ts +8 -11
  262. package/src/core/startUpdate.ts +2 -6
  263. package/src/core/subscribe.ts +189 -0
  264. package/src/core/util.ts +26 -0
  265. package/src/core/writeData.ts +79 -0
  266. package/src/index.ts +5 -4
  267. package/src/loadable-hooks/useClientSideDefer.ts +4 -4
  268. package/src/loadable-hooks/useConnectionSpecPagination.ts +20 -18
  269. package/src/loadable-hooks/useImperativeLoadableField.ts +3 -3
  270. package/src/loadable-hooks/useSkipLimitPagination.ts +20 -18
  271. package/src/react/IsographEnvironmentProvider.tsx +2 -1
  272. package/src/react/LoadableFieldReader.tsx +2 -4
  273. package/src/react/LoadableFieldRenderer.tsx +2 -4
  274. package/src/react/createIsographEnvironment.ts +23 -0
  275. package/src/react/maybeUnwrapNetworkRequest.ts +17 -0
  276. package/src/react/useImperativeReference.ts +5 -4
  277. package/src/react/useLazyReference.ts +7 -8
  278. package/src/react/useReadAndSubscribe.ts +53 -5
  279. package/src/react/useRerenderOnChange.ts +3 -3
  280. package/src/react/useResult.ts +6 -24
  281. package/src/tests/__isograph/Economist/__link/output_type.ts +2 -0
  282. package/src/tests/garbageCollection.test.ts +3 -6
  283. package/src/tests/meNameSuccessor.ts +1 -1
  284. package/src/tests/nodeQuery.ts +2 -2
  285. package/src/tests/normalizeData.test.ts +5 -3
  286. package/src/tests/optimisticProxy.test.ts +7 -5
  287. package/src/tests/startUpdate.test.ts +5 -7
  288. package/vitest.config.ts +5 -0
  289. package/dist/core/areEqualWithDeepComparison.d.ts +0 -3
  290. package/dist/core/areEqualWithDeepComparison.d.ts.map +0 -1
  291. package/dist/core/brand.js +0 -2
  292. package/dist/core/componentCache.d.ts +0 -5
  293. package/dist/core/componentCache.d.ts.map +0 -1
  294. package/dist/core/reader.js +0 -2
  295. package/dist/core/startUpdate.d.ts +0 -9
  296. package/dist/core/startUpdate.d.ts.map +0 -1
  297. package/dist/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useImperativeLoadableField.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,gCAAgC,CAC1C,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,IAC1B;IACF,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrE,qBAAqB,EAAE,CAGrB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,IAAI,EACzE,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KACxC,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,GACA,gCAAgC,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAc1E"}
1
+ {"version":3,"file":"useImperativeLoadableField.d.ts","names":[],"sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"sourcesContent":[],"mappings":";;;;;KAWY;;EAAA,UAAA,EAAA,MAAA;CAK2B,EAAA,OAAA,EAAA,sBAAA,MAAA,CAAA,GAAA;EAAgB,iBAAA,EAAlC,iBAAkC,CAAhB,cAAgB,EAAA,OAAA,CAAA,GAAA,IAAA;EAAlC,qBAAA,EAAA,CAAA,IAAA,EAIX,IAJW,CAIN,iBAJM,CAIY,cAJZ,CAAA,EAAA,MAImC,aAJnC,CAAA,GAAA,IAAA,EAAA,YAAA,CAAA,EAKF,YALE,CAKW,OALX,EAAA,KAAA,CAAA,EAAA,GAAA,IAAA;CAIY;AAAlB,iBAKC,0BALD,CAAA,uBAAA;EAAyC,IAAA,EAAA,MAAA;EAA9C,UAAA,EAAA,MAAA;CACsB,EAAA,OAAA,EAAA,sBAAA,MAAA,CAAA,CAAA,aAAA,EASf,aATe,CAU5B,cAV4B,EAW5B,OAX4B,EAY5B,IAZ4B,CAYvB,iBAZuB,CAYL,cAZK,CAAA,EAAA,MAYkB,aAZlB,CAAA,CAAA,CAAA,EAc7B,gCAd6B,CAcI,cAdJ,EAcoB,OAdpB,EAc6B,aAd7B,CAAA"}
@@ -1,14 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useImperativeLoadableField = useImperativeLoadableField;
4
- const react_disposable_state_1 = require("@isograph/react-disposable-state");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
+ let __isograph_react_disposable_state = require("@isograph/react-disposable-state");
3
+ __isograph_react_disposable_state = require_rolldown_runtime.__toESM(__isograph_react_disposable_state);
4
+
5
+ //#region src/loadable-hooks/useImperativeLoadableField.ts
5
6
  function useImperativeLoadableField(loadableField) {
6
- const { state, setState } = (0, react_disposable_state_1.useUpdatableDisposableState)();
7
- return {
8
- loadFragmentReference: (args, fetchOptions) => {
9
- const [_id, loader] = loadableField(args, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {});
10
- setState(loader());
11
- },
12
- fragmentReference: state !== react_disposable_state_1.UNASSIGNED_STATE ? state : null,
13
- };
7
+ const { state, setState } = (0, __isograph_react_disposable_state.useUpdatableDisposableState)();
8
+ return {
9
+ loadFragmentReference: (args, fetchOptions) => {
10
+ const [_id, loader] = loadableField(args, fetchOptions ?? {});
11
+ setState(loader());
12
+ },
13
+ fragmentReference: state !== __isograph_react_disposable_state.UNASSIGNED_STATE ? state : null
14
+ };
14
15
  }
16
+
17
+ //#endregion
18
+ exports.useImperativeLoadableField = useImperativeLoadableField;
@@ -0,0 +1,17 @@
1
+ import { UNASSIGNED_STATE, useUpdatableDisposableState } from "@isograph/react-disposable-state";
2
+
3
+ //#region src/loadable-hooks/useImperativeLoadableField.ts
4
+ function useImperativeLoadableField(loadableField) {
5
+ const { state, setState } = useUpdatableDisposableState();
6
+ return {
7
+ loadFragmentReference: (args, fetchOptions) => {
8
+ const [_id, loader] = loadableField(args, fetchOptions ?? {});
9
+ setState(loader());
10
+ },
11
+ fragmentReference: state !== UNASSIGNED_STATE ? state : null
12
+ };
13
+ }
14
+
15
+ //#endregion
16
+ export { useImperativeLoadableField };
17
+ //# sourceMappingURL=useImperativeLoadableField.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImperativeLoadableField.mjs","names":[],"sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"sourcesContent":["import {\n UNASSIGNED_STATE,\n useUpdatableDisposableState,\n} from '@isograph/react-disposable-state';\nimport type { FetchOptions } from '../core/check';\nimport type {\n ExtractParameters,\n FragmentReference,\n} from '../core/FragmentReference';\nimport type { LoadableField } from '../core/reader';\n\nexport type UseImperativeLoadableFieldReturn<\n TReadFromStore extends { data: object; parameters: object },\n TResult,\n TProvidedArgs extends object,\n> = {\n fragmentReference: FragmentReference<TReadFromStore, TResult> | null;\n loadFragmentReference: (\n // TODO this should be void iff all args are provided by the query, like in\n // useClientSideDefer.\n args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void,\n fetchOptions?: FetchOptions<TResult, never>,\n ) => void;\n};\n\nexport function useImperativeLoadableField<\n TReadFromStore extends { data: object; parameters: object },\n TResult,\n TProvidedArgs extends object,\n>(\n loadableField: LoadableField<\n TReadFromStore,\n TResult,\n Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>\n >,\n): UseImperativeLoadableFieldReturn<TReadFromStore, TResult, TProvidedArgs> {\n const { state, setState } =\n useUpdatableDisposableState<FragmentReference<TReadFromStore, TResult>>();\n\n return {\n loadFragmentReference: (\n args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void,\n fetchOptions?: FetchOptions<TResult, never>,\n ) => {\n const [_id, loader] = loadableField(args, fetchOptions ?? {});\n setState(loader());\n },\n fragmentReference: state !== UNASSIGNED_STATE ? state : null,\n };\n}\n"],"mappings":";;;AAyBA,SAAgB,2BAKd,eAK0E;CAC1E,MAAM,EAAE,OAAO,aACb,6BAAyE;AAE3E,QAAO;EACL,wBACE,MACA,iBACG;GACH,MAAM,CAAC,KAAK,UAAU,cAAc,MAAM,gBAAgB,EAAE,CAAC;AAC7D,YAAS,QAAQ,CAAC;;EAEpB,mBAAmB,UAAU,mBAAmB,QAAQ;EACzD"}
@@ -0,0 +1,24 @@
1
+ import { FetchOptions } from "../core/check.mjs";
2
+ import { LoadableField } from "../core/reader.mjs";
3
+ import { FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.mjs";
4
+
5
+ //#region src/loadable-hooks/useSkipLimitPagination.d.ts
6
+ type UseSkipLimitReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
7
+ readonly kind: 'Complete';
8
+ readonly fetchMore: (count: number, fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>) => void;
9
+ readonly results: ReadonlyArray<TItem>;
10
+ } | {
11
+ readonly kind: 'Pending';
12
+ readonly results: ReadonlyArray<TItem>;
13
+ readonly pendingFragment: FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
14
+ };
15
+ type UseSkipLimitPaginationArgs = {
16
+ skip: number;
17
+ limit: number;
18
+ };
19
+ declare function useSkipLimitPagination<TItem, TReadFromStore extends UnknownTReadFromStore>(loadableField: LoadableField<TReadFromStore, ReadonlyArray<TItem>, UseSkipLimitPaginationArgs>, initialState?: {
20
+ skip?: number | void | null;
21
+ }): UseSkipLimitReturnValue<TReadFromStore, TItem>;
22
+ //#endregion
23
+ export { UseSkipLimitPaginationArgs, UseSkipLimitReturnValue, useSkipLimitPagination };
24
+ //# sourceMappingURL=useSkipLimitPagination.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSkipLimitPagination.d.mts","names":[],"sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"sourcesContent":[],"mappings":";;;;;KAyBY,+CACa;;EADb,SAAA,SAAA,EAAA,CAAA,KAAuB,EAAA,MAAA,EAAA,YAAA,CAAA,EAQZ,YARY,CAQC,aARD,CAQe,KARf,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,IAAA;EACV,SAAA,OAAA,EASD,aATC,CASa,KATb,CAAA;CAOyB,GAAA;EAAd,SAAA,IAAA,EAAA,SAAA;EAAb,SAAA,OAAA,EAMC,aAND,CAMe,KANf,CAAA;EAEe,SAAA,eAAA,EAKN,iBALM,CAM9B,cAN8B,EAO9B,aAP8B,CAOhB,KAPgB,CAAA,CAAA;CAAd;AAIc,KAkC1B,0BAAA,GAlC0B;EAAd,IAAA,EAAA,MAAA;EAEhB,KAAA,EAAA,MAAA;CACc;AAAd,iBAoCQ,sBApCR,CAAA,KAAA,EAAA,uBAsCiB,qBAtCjB,CAAA,CAAA,aAAA,EAwCS,aAxCT,CAyCJ,cAzCI,EA0CJ,aA1CI,CA0CU,KA1CV,CAAA,EA2CJ,0BA3CI,CAAA,EAAA,YAFyC,CAEzC,EAAA;EAFwB,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,IAAA;CAAiB,CAAA,EAkD9C,uBAlD8C,CAkDtB,cAlDsB,EAkDN,KAlDM,CAAA"}
@@ -1,20 +1,24 @@
1
- import { FetchOptions } from '../core/check';
2
- import { FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
3
- import { LoadableField } from '../core/reader';
4
- export type UseSkipLimitReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
5
- readonly kind: 'Complete';
6
- readonly fetchMore: (count: number, fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>) => void;
7
- readonly results: ReadonlyArray<TItem>;
1
+ import { FetchOptions } from "../core/check.js";
2
+ import { LoadableField } from "../core/reader.js";
3
+ import { FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.js";
4
+
5
+ //#region src/loadable-hooks/useSkipLimitPagination.d.ts
6
+ type UseSkipLimitReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
7
+ readonly kind: 'Complete';
8
+ readonly fetchMore: (count: number, fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>) => void;
9
+ readonly results: ReadonlyArray<TItem>;
8
10
  } | {
9
- readonly kind: 'Pending';
10
- readonly results: ReadonlyArray<TItem>;
11
- readonly pendingFragment: FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
11
+ readonly kind: 'Pending';
12
+ readonly results: ReadonlyArray<TItem>;
13
+ readonly pendingFragment: FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
12
14
  };
13
- export type UseSkipLimitPaginationArgs = {
14
- skip: number;
15
- limit: number;
15
+ type UseSkipLimitPaginationArgs = {
16
+ skip: number;
17
+ limit: number;
16
18
  };
17
- export declare function useSkipLimitPagination<TItem, TReadFromStore extends UnknownTReadFromStore>(loadableField: LoadableField<TReadFromStore, ReadonlyArray<TItem>, UseSkipLimitPaginationArgs>, initialState?: {
18
- skip?: number | void | null;
19
+ declare function useSkipLimitPagination<TItem, TReadFromStore extends UnknownTReadFromStore>(loadableField: LoadableField<TReadFromStore, ReadonlyArray<TItem>, UseSkipLimitPaginationArgs>, initialState?: {
20
+ skip?: number | void | null;
19
21
  }): UseSkipLimitReturnValue<TReadFromStore, TItem>;
22
+ //#endregion
23
+ export { UseSkipLimitPaginationArgs, UseSkipLimitReturnValue, useSkipLimitPagination };
20
24
  //# sourceMappingURL=useSkipLimitPagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSkipLimitPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAM/D,MAAM,MAAM,uBAAuB,CACjC,cAAc,SAAS,qBAAqB,EAC5C,KAAK,IAEH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KACrD,IAAI,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CACzC,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;CACH,CAAC;AA6BN,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EACL,cAAc,SAAS,qBAAqB,EAE5C,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,EACpB,0BAA0B,CAC3B,EACD,YAAY,CAAC,EAAE;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,GACA,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CA2OhD"}
1
+ {"version":3,"file":"useSkipLimitPagination.d.ts","names":[],"sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"sourcesContent":[],"mappings":";;;;;KAyBY,+CACa;;EADb,SAAA,SAAA,EAAA,CAAA,KAAuB,EAAA,MAAA,EAAA,YAAA,CAAA,EAQZ,YARY,CAQC,aARD,CAQe,KARf,CAAA,EAAA,KAAA,CAAA,EAAA,GAAA,IAAA;EACV,SAAA,OAAA,EASD,aATC,CASa,KATb,CAAA;CAOyB,GAAA;EAAd,SAAA,IAAA,EAAA,SAAA;EAAb,SAAA,OAAA,EAMC,aAND,CAMe,KANf,CAAA;EAEe,SAAA,eAAA,EAKN,iBALM,CAM9B,cAN8B,EAO9B,aAP8B,CAOhB,KAPgB,CAAA,CAAA;CAAd;AAIc,KAkC1B,0BAAA,GAlC0B;EAAd,IAAA,EAAA,MAAA;EAEhB,KAAA,EAAA,MAAA;CACc;AAAd,iBAoCQ,sBApCR,CAAA,KAAA,EAAA,uBAsCiB,qBAtCjB,CAAA,CAAA,aAAA,EAwCS,aAxCT,CAyCJ,cAzCI,EA0CJ,aA1CI,CA0CU,KA1CV,CAAA,EA2CJ,0BA3CI,CAAA,EAAA,YAFyC,CAEzC,EAAA;EAFwB,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,IAAA;CAAiB,CAAA,EAkD9C,uBAlD8C,CAkDtB,cAlDsB,EAkDN,KAlDM,CAAA"}
@@ -1,164 +1,122 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSkipLimitPagination = useSkipLimitPagination;
4
- const react_disposable_state_1 = require("@isograph/react-disposable-state");
5
- const reference_counted_pointer_1 = require("@isograph/reference-counted-pointer");
6
- const react_1 = require("react");
7
- const cache_1 = require("../core/cache");
8
- const PromiseWrapper_1 = require("../core/PromiseWrapper");
9
- const read_1 = require("../core/read");
10
- const startUpdate_1 = require("../core/startUpdate");
11
- const IsographEnvironmentProvider_1 = require("../react/IsographEnvironmentProvider");
12
- const useReadAndSubscribe_1 = require("../react/useReadAndSubscribe");
13
- const useResult_1 = require("../react/useResult");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
+ const require_PromiseWrapper = require('../core/PromiseWrapper.js');
3
+ const require_startUpdate = require('../core/startUpdate.js');
4
+ const require_read = require('../core/read.js');
5
+ const require_cache = require('../core/cache.js');
6
+ const require_IsographEnvironmentProvider = require('../react/IsographEnvironmentProvider.js');
7
+ const require_maybeUnwrapNetworkRequest = require('../react/maybeUnwrapNetworkRequest.js');
8
+ const require_useReadAndSubscribe = require('../react/useReadAndSubscribe.js');
9
+ let __isograph_react_disposable_state = require("@isograph/react-disposable-state");
10
+ __isograph_react_disposable_state = require_rolldown_runtime.__toESM(__isograph_react_disposable_state);
11
+ let react = require("react");
12
+ react = require_rolldown_runtime.__toESM(react);
13
+ let __isograph_reference_counted_pointer = require("@isograph/reference-counted-pointer");
14
+ __isograph_reference_counted_pointer = require_rolldown_runtime.__toESM(__isograph_reference_counted_pointer);
15
+
16
+ //#region src/loadable-hooks/useSkipLimitPagination.ts
14
17
  function flatten(arr) {
15
- let outArray = [];
16
- for (const subarr of arr) {
17
- for (const item of subarr) {
18
- outArray.push(item);
19
- }
20
- }
21
- return outArray;
18
+ let outArray = [];
19
+ for (const subarr of arr) for (const item of subarr) outArray.push(item);
20
+ return outArray;
22
21
  }
23
22
  function useSkipLimitPagination(loadableField, initialState) {
24
- var _a;
25
- const networkRequestOptions = {
26
- suspendIfInFlight: true,
27
- throwOnNetworkError: true,
28
- };
29
- const { state, setState } = (0, react_disposable_state_1.useUpdatableDisposableState)();
30
- const environment = (0, IsographEnvironmentProvider_1.useIsographEnvironment)();
31
- // TODO move this out of useSkipLimitPagination, and pass environment and networkRequestOptions
32
- // as parameters (or recreate networkRequestOptions)
33
- function readCompletedFragmentReferences(completedReferences) {
34
- const results = completedReferences.map((fragmentReference, i) => {
35
- var _a;
36
- const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
37
- // invariant: readOutDataAndRecords.length === completedReferences.length
38
- const data = (_a = readOutDataAndRecords[i]) === null || _a === void 0 ? void 0 : _a.item;
39
- if (data == null) {
40
- throw new Error('Parameter data is unexpectedly null. This is indicative of a bug in Isograph.');
41
- }
42
- const firstParameter = Object.assign({ data, parameters: fragmentReference.variables }, (readerWithRefetchQueries.readerArtifact.hasUpdatable
43
- ? {
44
- startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragmentReference, networkRequestOptions),
45
- }
46
- : undefined));
47
- if (readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact') {
48
- throw new Error(`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`);
49
- }
50
- return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
51
- });
52
- const items = flatten(results);
53
- return items;
54
- }
55
- function subscribeCompletedFragmentReferences(completedReferences) {
56
- return completedReferences.map((fragmentReference, i) => {
57
- (0, useResult_1.maybeUnwrapNetworkRequest)(fragmentReference.networkRequest, networkRequestOptions);
58
- const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
59
- const records = readOutDataAndRecords[i];
60
- if (records == null) {
61
- throw new Error('subscribeCompletedFragmentReferences records is unexpectedly null');
62
- }
63
- return {
64
- fragmentReference,
65
- readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
66
- records,
67
- callback(_data) {
68
- rerender({});
69
- },
70
- };
71
- });
72
- }
73
- const getFetchMore = (loadedSoFar) => (count, fetchOptions) => {
74
- const loadedField = loadableField({
75
- skip: loadedSoFar,
76
- limit: count,
77
- }, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {})[1]();
78
- const newPointer = (0, reference_counted_pointer_1.createReferenceCountedPointer)(loadedField);
79
- const clonedPointers = loadedReferences.map(([refCountedPointer]) => {
80
- const clonedRefCountedPointer = refCountedPointer.cloneIfNotDisposed();
81
- if (clonedRefCountedPointer == null) {
82
- throw new Error('This reference counted pointer has already been disposed. \
83
- This is indicative of a bug in useSkipLimitPagination.');
84
- }
85
- return clonedRefCountedPointer;
86
- });
87
- clonedPointers.push(newPointer);
88
- const totalItemCleanupPair = [
89
- clonedPointers,
90
- () => {
91
- clonedPointers.forEach(([, dispose]) => {
92
- dispose();
93
- });
94
- },
95
- ];
96
- setState(totalItemCleanupPair);
97
- };
98
- const [, rerender] = (0, react_1.useState)({});
99
- const loadedReferences = state === react_disposable_state_1.UNASSIGNED_STATE ? [] : state;
100
- const mostRecentItem = loadedReferences[loadedReferences.length - 1];
101
- const mostRecentFragmentReference = mostRecentItem === null || mostRecentItem === void 0 ? void 0 : mostRecentItem[0].getItemIfNotDisposed();
102
- if (mostRecentItem && mostRecentFragmentReference === null) {
103
- throw new Error('FragmentReference is unexpectedly disposed. \
104
- This is indicative of a bug in Isograph.');
105
- }
106
- const networkRequestStatus = mostRecentFragmentReference &&
107
- (0, PromiseWrapper_1.getPromiseState)(mostRecentFragmentReference.networkRequest);
108
- const slicedFragmentReferences = (networkRequestStatus === null || networkRequestStatus === void 0 ? void 0 : networkRequestStatus.kind) === 'Ok'
109
- ? loadedReferences
110
- : loadedReferences.slice(0, loadedReferences.length - 1);
111
- const completedFragmentReferences = slicedFragmentReferences.map(([pointer]) => {
112
- const fragmentReference = pointer.getItemIfNotDisposed();
113
- if (fragmentReference == null) {
114
- throw new Error('FragmentReference is unexpectedly disposed. \
115
- This is indicative of a bug in Isograph.');
116
- }
117
- return fragmentReference;
118
- });
119
- const readOutDataAndRecords = completedFragmentReferences.map((fragmentReference) => (0, read_1.readButDoNotEvaluate)(environment, fragmentReference, networkRequestOptions));
120
- (0, useReadAndSubscribe_1.useSubscribeToMultiple)(subscribeCompletedFragmentReferences(completedFragmentReferences));
121
- if (!networkRequestStatus) {
122
- return {
123
- kind: 'Complete',
124
- fetchMore: getFetchMore((_a = initialState === null || initialState === void 0 ? void 0 : initialState.skip) !== null && _a !== void 0 ? _a : 0),
125
- results: [],
126
- };
127
- }
128
- switch (networkRequestStatus.kind) {
129
- case 'Pending': {
130
- const unsubscribe = (0, cache_1.subscribeToAnyChange)(environment, () => {
131
- unsubscribe();
132
- rerender({});
133
- });
134
- return {
135
- kind: 'Pending',
136
- pendingFragment: mostRecentFragmentReference,
137
- results: readCompletedFragmentReferences(completedFragmentReferences),
138
- };
139
- }
140
- case 'Err': {
141
- throw networkRequestStatus.error;
142
- }
143
- case 'Ok': {
144
- const results = readCompletedFragmentReferences(completedFragmentReferences);
145
- return {
146
- kind: 'Complete',
147
- results,
148
- fetchMore: getFetchMore(results.length),
149
- };
150
- }
151
- }
152
- }
153
- // @ts-ignore
154
- function tsTests() {
155
- let basicLoadable;
156
- useSkipLimitPagination(basicLoadable);
157
- useSkipLimitPagination(basicLoadable, {});
158
- useSkipLimitPagination(basicLoadable, { skip: 10 });
159
- let unprovidedSearchLoadable;
160
- // @ts-expect-error
161
- useSkipLimitPagination(unprovidedSearchLoadable);
162
- let providedSearchLoadable;
163
- useSkipLimitPagination(providedSearchLoadable);
23
+ const networkRequestOptions = {
24
+ suspendIfInFlight: true,
25
+ throwOnNetworkError: true
26
+ };
27
+ const { state, setState } = (0, __isograph_react_disposable_state.useUpdatableDisposableState)();
28
+ const environment = require_IsographEnvironmentProvider.useIsographEnvironment();
29
+ function readCompletedFragmentReferences(completedReferences) {
30
+ return flatten(completedReferences.map((fragmentReference, i) => {
31
+ const readerWithRefetchQueries = require_PromiseWrapper.readPromise(fragmentReference.readerWithRefetchQueries);
32
+ const data = readOutDataAndRecords[i]?.item;
33
+ if (data == null) throw new Error("Parameter data is unexpectedly null. This is indicative of a bug in Isograph.");
34
+ const firstParameter = {
35
+ data,
36
+ parameters: fragmentReference.variables,
37
+ ...readerWithRefetchQueries.readerArtifact.hasUpdatable ? { startUpdate: require_startUpdate.getOrCreateCachedStartUpdate(environment, fragmentReference, networkRequestOptions) } : void 0
38
+ };
39
+ if (readerWithRefetchQueries.readerArtifact.kind !== "EagerReaderArtifact") throw new Error(`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`);
40
+ return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
41
+ }));
42
+ }
43
+ function subscribeCompletedFragmentReferences(completedReferences) {
44
+ return completedReferences.map((fragmentReference, i) => {
45
+ require_maybeUnwrapNetworkRequest.maybeUnwrapNetworkRequest(fragmentReference.networkRequest, networkRequestOptions);
46
+ const readerWithRefetchQueries = require_PromiseWrapper.readPromise(fragmentReference.readerWithRefetchQueries);
47
+ const records = readOutDataAndRecords[i];
48
+ if (records == null) throw new Error("subscribeCompletedFragmentReferences records is unexpectedly null");
49
+ return {
50
+ fragmentReference,
51
+ readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
52
+ records,
53
+ callback(_data) {
54
+ rerender({});
55
+ }
56
+ };
57
+ });
58
+ }
59
+ const getFetchMore = (loadedSoFar) => (count, fetchOptions) => {
60
+ const newPointer = (0, __isograph_reference_counted_pointer.createReferenceCountedPointer)(loadableField({
61
+ skip: loadedSoFar,
62
+ limit: count
63
+ }, fetchOptions ?? {})[1]());
64
+ const clonedPointers = loadedReferences.map(([refCountedPointer]) => {
65
+ const clonedRefCountedPointer = refCountedPointer.cloneIfNotDisposed();
66
+ if (clonedRefCountedPointer == null) throw new Error("This reference counted pointer has already been disposed. This is indicative of a bug in useSkipLimitPagination.");
67
+ return clonedRefCountedPointer;
68
+ });
69
+ clonedPointers.push(newPointer);
70
+ setState([clonedPointers, () => {
71
+ clonedPointers.forEach(([, dispose]) => {
72
+ dispose();
73
+ });
74
+ }]);
75
+ };
76
+ const [, rerender] = (0, react.useState)({});
77
+ const loadedReferences = state === __isograph_react_disposable_state.UNASSIGNED_STATE ? [] : state;
78
+ const mostRecentItem = loadedReferences[loadedReferences.length - 1];
79
+ const mostRecentFragmentReference = mostRecentItem?.[0].getItemIfNotDisposed();
80
+ if (mostRecentItem != null && mostRecentFragmentReference == null) throw new Error("FragmentReference is unexpectedly disposed. This is indicative of a bug in Isograph.");
81
+ const networkRequestStatus = mostRecentFragmentReference != null ? {
82
+ mostRecentFragmentReference,
83
+ state: require_PromiseWrapper.getPromiseState(mostRecentFragmentReference.networkRequest)
84
+ } : null;
85
+ const completedFragmentReferences = (networkRequestStatus?.state?.kind === "Ok" ? loadedReferences : loadedReferences.slice(0, loadedReferences.length - 1)).map(([pointer]) => {
86
+ const fragmentReference = pointer.getItemIfNotDisposed();
87
+ if (fragmentReference == null) throw new Error("FragmentReference is unexpectedly disposed. This is indicative of a bug in Isograph.");
88
+ return fragmentReference;
89
+ });
90
+ const readOutDataAndRecords = completedFragmentReferences.map((fragmentReference) => require_read.readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions));
91
+ require_useReadAndSubscribe.useSubscribeToMultiple(subscribeCompletedFragmentReferences(completedFragmentReferences));
92
+ if (networkRequestStatus == null) return {
93
+ kind: "Complete",
94
+ fetchMore: getFetchMore(initialState?.skip ?? 0),
95
+ results: []
96
+ };
97
+ switch (networkRequestStatus.state.kind) {
98
+ case "Pending": {
99
+ const unsubscribe = require_cache.subscribeToAnyChange(environment, () => {
100
+ unsubscribe();
101
+ rerender({});
102
+ });
103
+ return {
104
+ kind: "Pending",
105
+ pendingFragment: networkRequestStatus.mostRecentFragmentReference,
106
+ results: readCompletedFragmentReferences(completedFragmentReferences)
107
+ };
108
+ }
109
+ case "Err": throw networkRequestStatus.state.error;
110
+ case "Ok": {
111
+ const results = readCompletedFragmentReferences(completedFragmentReferences);
112
+ return {
113
+ kind: "Complete",
114
+ results,
115
+ fetchMore: getFetchMore(results.length)
116
+ };
117
+ }
118
+ }
164
119
  }
120
+
121
+ //#endregion
122
+ exports.useSkipLimitPagination = useSkipLimitPagination;
@@ -0,0 +1,119 @@
1
+ import { getPromiseState, readPromise } from "../core/PromiseWrapper.mjs";
2
+ import { getOrCreateCachedStartUpdate } from "../core/startUpdate.mjs";
3
+ import { readButDoNotEvaluate } from "../core/read.mjs";
4
+ import { subscribeToAnyChange } from "../core/cache.mjs";
5
+ import { useIsographEnvironment } from "../react/IsographEnvironmentProvider.mjs";
6
+ import { maybeUnwrapNetworkRequest } from "../react/maybeUnwrapNetworkRequest.mjs";
7
+ import { useSubscribeToMultiple } from "../react/useReadAndSubscribe.mjs";
8
+ import { UNASSIGNED_STATE, useUpdatableDisposableState } from "@isograph/react-disposable-state";
9
+ import { useState } from "react";
10
+ import { createReferenceCountedPointer } from "@isograph/reference-counted-pointer";
11
+
12
+ //#region src/loadable-hooks/useSkipLimitPagination.ts
13
+ function flatten(arr) {
14
+ let outArray = [];
15
+ for (const subarr of arr) for (const item of subarr) outArray.push(item);
16
+ return outArray;
17
+ }
18
+ function useSkipLimitPagination(loadableField, initialState) {
19
+ const networkRequestOptions = {
20
+ suspendIfInFlight: true,
21
+ throwOnNetworkError: true
22
+ };
23
+ const { state, setState } = useUpdatableDisposableState();
24
+ const environment = useIsographEnvironment();
25
+ function readCompletedFragmentReferences(completedReferences) {
26
+ return flatten(completedReferences.map((fragmentReference, i) => {
27
+ const readerWithRefetchQueries = readPromise(fragmentReference.readerWithRefetchQueries);
28
+ const data = readOutDataAndRecords[i]?.item;
29
+ if (data == null) throw new Error("Parameter data is unexpectedly null. This is indicative of a bug in Isograph.");
30
+ const firstParameter = {
31
+ data,
32
+ parameters: fragmentReference.variables,
33
+ ...readerWithRefetchQueries.readerArtifact.hasUpdatable ? { startUpdate: getOrCreateCachedStartUpdate(environment, fragmentReference, networkRequestOptions) } : void 0
34
+ };
35
+ if (readerWithRefetchQueries.readerArtifact.kind !== "EagerReaderArtifact") throw new Error(`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`);
36
+ return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
37
+ }));
38
+ }
39
+ function subscribeCompletedFragmentReferences(completedReferences) {
40
+ return completedReferences.map((fragmentReference, i) => {
41
+ maybeUnwrapNetworkRequest(fragmentReference.networkRequest, networkRequestOptions);
42
+ const readerWithRefetchQueries = readPromise(fragmentReference.readerWithRefetchQueries);
43
+ const records = readOutDataAndRecords[i];
44
+ if (records == null) throw new Error("subscribeCompletedFragmentReferences records is unexpectedly null");
45
+ return {
46
+ fragmentReference,
47
+ readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
48
+ records,
49
+ callback(_data) {
50
+ rerender({});
51
+ }
52
+ };
53
+ });
54
+ }
55
+ const getFetchMore = (loadedSoFar) => (count, fetchOptions) => {
56
+ const newPointer = createReferenceCountedPointer(loadableField({
57
+ skip: loadedSoFar,
58
+ limit: count
59
+ }, fetchOptions ?? {})[1]());
60
+ const clonedPointers = loadedReferences.map(([refCountedPointer]) => {
61
+ const clonedRefCountedPointer = refCountedPointer.cloneIfNotDisposed();
62
+ if (clonedRefCountedPointer == null) throw new Error("This reference counted pointer has already been disposed. This is indicative of a bug in useSkipLimitPagination.");
63
+ return clonedRefCountedPointer;
64
+ });
65
+ clonedPointers.push(newPointer);
66
+ setState([clonedPointers, () => {
67
+ clonedPointers.forEach(([, dispose]) => {
68
+ dispose();
69
+ });
70
+ }]);
71
+ };
72
+ const [, rerender] = useState({});
73
+ const loadedReferences = state === UNASSIGNED_STATE ? [] : state;
74
+ const mostRecentItem = loadedReferences[loadedReferences.length - 1];
75
+ const mostRecentFragmentReference = mostRecentItem?.[0].getItemIfNotDisposed();
76
+ if (mostRecentItem != null && mostRecentFragmentReference == null) throw new Error("FragmentReference is unexpectedly disposed. This is indicative of a bug in Isograph.");
77
+ const networkRequestStatus = mostRecentFragmentReference != null ? {
78
+ mostRecentFragmentReference,
79
+ state: getPromiseState(mostRecentFragmentReference.networkRequest)
80
+ } : null;
81
+ const completedFragmentReferences = (networkRequestStatus?.state?.kind === "Ok" ? loadedReferences : loadedReferences.slice(0, loadedReferences.length - 1)).map(([pointer]) => {
82
+ const fragmentReference = pointer.getItemIfNotDisposed();
83
+ if (fragmentReference == null) throw new Error("FragmentReference is unexpectedly disposed. This is indicative of a bug in Isograph.");
84
+ return fragmentReference;
85
+ });
86
+ const readOutDataAndRecords = completedFragmentReferences.map((fragmentReference) => readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions));
87
+ useSubscribeToMultiple(subscribeCompletedFragmentReferences(completedFragmentReferences));
88
+ if (networkRequestStatus == null) return {
89
+ kind: "Complete",
90
+ fetchMore: getFetchMore(initialState?.skip ?? 0),
91
+ results: []
92
+ };
93
+ switch (networkRequestStatus.state.kind) {
94
+ case "Pending": {
95
+ const unsubscribe = subscribeToAnyChange(environment, () => {
96
+ unsubscribe();
97
+ rerender({});
98
+ });
99
+ return {
100
+ kind: "Pending",
101
+ pendingFragment: networkRequestStatus.mostRecentFragmentReference,
102
+ results: readCompletedFragmentReferences(completedFragmentReferences)
103
+ };
104
+ }
105
+ case "Err": throw networkRequestStatus.state.error;
106
+ case "Ok": {
107
+ const results = readCompletedFragmentReferences(completedFragmentReferences);
108
+ return {
109
+ kind: "Complete",
110
+ results,
111
+ fetchMore: getFetchMore(results.length)
112
+ };
113
+ }
114
+ }
115
+ }
116
+
117
+ //#endregion
118
+ export { useSkipLimitPagination };
119
+ //# sourceMappingURL=useSkipLimitPagination.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSkipLimitPagination.mjs","names":["outArray: Array<T>","mostRecentItem:\n | LoadedFragmentReference<TReadFromStore, TItem>\n | undefined"],"sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/disposable-types';\nimport {\n UNASSIGNED_STATE,\n useUpdatableDisposableState,\n} from '@isograph/react-disposable-state';\nimport type { ReferenceCountedPointer } from '@isograph/reference-counted-pointer';\nimport { createReferenceCountedPointer } from '@isograph/reference-counted-pointer';\nimport { useState } from 'react';\nimport { subscribeToAnyChange } from '../core/cache';\nimport type { FetchOptions } from '../core/check';\nimport type {\n FragmentReference,\n UnknownTReadFromStore,\n} from '../core/FragmentReference';\nimport { getPromiseState, readPromise } from '../core/PromiseWrapper';\nimport {\n readButDoNotEvaluate,\n type WithEncounteredRecords,\n} from '../core/read';\nimport type { LoadableField, ReaderAst } from '../core/reader';\nimport { getOrCreateCachedStartUpdate } from '../core/startUpdate';\nimport { useIsographEnvironment } from '../react/IsographEnvironmentProvider';\nimport { maybeUnwrapNetworkRequest } from '../react/maybeUnwrapNetworkRequest';\nimport { useSubscribeToMultiple } from '../react/useReadAndSubscribe';\n\nexport type UseSkipLimitReturnValue<\n TReadFromStore extends UnknownTReadFromStore,\n TItem,\n> =\n | {\n readonly kind: 'Complete';\n readonly fetchMore: (\n count: number,\n fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>,\n ) => void;\n readonly results: ReadonlyArray<TItem>;\n }\n | {\n readonly kind: 'Pending';\n readonly results: ReadonlyArray<TItem>;\n readonly pendingFragment: FragmentReference<\n TReadFromStore,\n ReadonlyArray<TItem>\n >;\n };\n\ntype ArrayFragmentReference<\n TReadFromStore extends UnknownTReadFromStore,\n TItem,\n> = FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;\n\ntype LoadedFragmentReferences<\n TReadFromStore extends { parameters: object; data: object },\n TItem,\n> = ReadonlyArray<LoadedFragmentReference<TReadFromStore, TItem>>;\n\ntype LoadedFragmentReference<\n TReadFromStore extends { parameters: object; data: object },\n TItem,\n> = ItemCleanupPair<\n ReferenceCountedPointer<ArrayFragmentReference<TReadFromStore, TItem>>\n>;\n\nfunction flatten<T>(arr: ReadonlyArray<ReadonlyArray<T>>): ReadonlyArray<T> {\n let outArray: Array<T> = [];\n for (const subarr of arr) {\n for (const item of subarr) {\n outArray.push(item);\n }\n }\n return outArray;\n}\n\nexport type UseSkipLimitPaginationArgs = {\n skip: number;\n limit: number;\n};\n\nexport function useSkipLimitPagination<\n TItem,\n TReadFromStore extends UnknownTReadFromStore,\n>(\n loadableField: LoadableField<\n TReadFromStore,\n ReadonlyArray<TItem>,\n UseSkipLimitPaginationArgs\n >,\n initialState?: {\n skip?: number | void | null;\n },\n): UseSkipLimitReturnValue<TReadFromStore, TItem> {\n const networkRequestOptions = {\n suspendIfInFlight: true,\n throwOnNetworkError: true,\n };\n const { state, setState } =\n useUpdatableDisposableState<\n LoadedFragmentReferences<TReadFromStore, TItem>\n >();\n\n const environment = useIsographEnvironment();\n\n // TODO move this out of useSkipLimitPagination, and pass environment and networkRequestOptions\n // as parameters (or recreate networkRequestOptions)\n function readCompletedFragmentReferences(\n completedReferences: ArrayFragmentReference<TReadFromStore, TItem>[],\n ) {\n const results = completedReferences.map((fragmentReference, i) => {\n const readerWithRefetchQueries = readPromise(\n fragmentReference.readerWithRefetchQueries,\n );\n\n // invariant: readOutDataAndRecords.length === completedReferences.length\n const data = readOutDataAndRecords[i]?.item;\n if (data == null) {\n throw new Error(\n 'Parameter data is unexpectedly null. This is indicative of a bug in Isograph.',\n );\n }\n\n const firstParameter = {\n data,\n parameters: fragmentReference.variables,\n ...(readerWithRefetchQueries.readerArtifact.hasUpdatable\n ? {\n startUpdate: getOrCreateCachedStartUpdate(\n environment,\n fragmentReference,\n networkRequestOptions,\n ),\n }\n : undefined),\n };\n\n if (\n readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact'\n ) {\n throw new Error(\n `@loadable field of kind \"${readerWithRefetchQueries.readerArtifact.kind}\" is not supported by useSkipLimitPagination`,\n );\n }\n\n return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);\n });\n\n const items = flatten(results);\n return items;\n }\n\n function subscribeCompletedFragmentReferences(\n completedReferences: ArrayFragmentReference<TReadFromStore, TItem>[],\n ) {\n return completedReferences.map(\n (\n fragmentReference,\n i,\n ): {\n records: WithEncounteredRecords<TReadFromStore>;\n callback: (\n updatedRecords: WithEncounteredRecords<TReadFromStore>,\n ) => void;\n fragmentReference: ArrayFragmentReference<TReadFromStore, TItem>;\n readerAst: ReaderAst<TItem>;\n } => {\n maybeUnwrapNetworkRequest(\n fragmentReference.networkRequest,\n networkRequestOptions,\n );\n\n const readerWithRefetchQueries = readPromise(\n fragmentReference.readerWithRefetchQueries,\n );\n\n const records = readOutDataAndRecords[i];\n if (records == null) {\n throw new Error(\n 'subscribeCompletedFragmentReferences records is unexpectedly null',\n );\n }\n\n return {\n fragmentReference,\n readerAst: readerWithRefetchQueries.readerArtifact.readerAst,\n records,\n callback(_data) {\n rerender({});\n },\n };\n },\n );\n }\n\n const getFetchMore =\n (loadedSoFar: number) =>\n (\n count: number,\n fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>,\n ): void => {\n const loadedField = loadableField(\n {\n skip: loadedSoFar,\n limit: count,\n },\n fetchOptions ?? {},\n )[1]();\n const newPointer = createReferenceCountedPointer(loadedField);\n const clonedPointers = loadedReferences.map(([refCountedPointer]) => {\n const clonedRefCountedPointer = refCountedPointer.cloneIfNotDisposed();\n if (clonedRefCountedPointer == null) {\n throw new Error(\n 'This reference counted pointer has already been disposed. \\\n This is indicative of a bug in useSkipLimitPagination.',\n );\n }\n return clonedRefCountedPointer;\n });\n clonedPointers.push(newPointer);\n\n const totalItemCleanupPair: ItemCleanupPair<\n ReadonlyArray<\n ItemCleanupPair<\n ReferenceCountedPointer<\n ArrayFragmentReference<TReadFromStore, TItem>\n >\n >\n >\n > = [\n clonedPointers,\n () => {\n clonedPointers.forEach(([, dispose]) => {\n dispose();\n });\n },\n ];\n\n setState(totalItemCleanupPair);\n };\n\n const [, rerender] = useState({});\n\n const loadedReferences = state === UNASSIGNED_STATE ? [] : state;\n\n const mostRecentItem:\n | LoadedFragmentReference<TReadFromStore, TItem>\n | undefined = loadedReferences[loadedReferences.length - 1];\n const mostRecentFragmentReference =\n mostRecentItem?.[0].getItemIfNotDisposed();\n\n if (mostRecentItem != null && mostRecentFragmentReference == null) {\n throw new Error(\n 'FragmentReference is unexpectedly disposed. \\\n This is indicative of a bug in Isograph.',\n );\n }\n\n const networkRequestStatus =\n mostRecentFragmentReference != null\n ? {\n mostRecentFragmentReference,\n state: getPromiseState(mostRecentFragmentReference.networkRequest),\n }\n : null;\n\n const slicedFragmentReferences =\n networkRequestStatus?.state?.kind === 'Ok'\n ? loadedReferences\n : loadedReferences.slice(0, loadedReferences.length - 1);\n\n const completedFragmentReferences = slicedFragmentReferences.map(\n ([pointer]) => {\n const fragmentReference = pointer.getItemIfNotDisposed();\n if (fragmentReference == null) {\n throw new Error(\n 'FragmentReference is unexpectedly disposed. \\\n This is indicative of a bug in Isograph.',\n );\n }\n return fragmentReference;\n },\n );\n\n const readOutDataAndRecords = completedFragmentReferences.map(\n (fragmentReference) =>\n readButDoNotEvaluate(\n environment,\n fragmentReference,\n networkRequestOptions,\n ),\n );\n\n useSubscribeToMultiple<TReadFromStore>(\n subscribeCompletedFragmentReferences(completedFragmentReferences),\n );\n\n if (networkRequestStatus == null) {\n return {\n kind: 'Complete',\n fetchMore: getFetchMore(initialState?.skip ?? 0),\n results: [],\n };\n }\n\n switch (networkRequestStatus.state.kind) {\n case 'Pending': {\n const unsubscribe = subscribeToAnyChange(environment, () => {\n unsubscribe();\n rerender({});\n });\n\n return {\n kind: 'Pending',\n pendingFragment: networkRequestStatus.mostRecentFragmentReference,\n results: readCompletedFragmentReferences(completedFragmentReferences),\n };\n }\n case 'Err': {\n throw networkRequestStatus.state.error;\n }\n case 'Ok': {\n const results = readCompletedFragmentReferences(\n completedFragmentReferences,\n );\n return {\n kind: 'Complete',\n results,\n fetchMore: getFetchMore(results.length),\n };\n }\n }\n}\n\n// @ts-ignore\nfunction tsTests() {\n type Parameters = {\n readonly search: string;\n readonly skip: number;\n readonly limit: number;\n };\n\n let basicLoadable!: LoadableField<\n {\n readonly data: object;\n readonly parameters: Omit<Parameters, 'search'>;\n },\n object[]\n >;\n\n useSkipLimitPagination(basicLoadable);\n useSkipLimitPagination(basicLoadable, {});\n useSkipLimitPagination(basicLoadable, { skip: 10 });\n\n let unprovidedSearchLoadable!: LoadableField<\n {\n readonly data: object;\n readonly parameters: Parameters;\n },\n object[]\n >;\n // @ts-expect-error\n useSkipLimitPagination(unprovidedSearchLoadable);\n\n let providedSearchLoadable!: LoadableField<\n {\n readonly data: object;\n readonly parameters: Parameters;\n },\n object[],\n Omit<Parameters, 'search'>\n >;\n\n useSkipLimitPagination(providedSearchLoadable);\n}\n"],"mappings":";;;;;;;;;;;;AA+DA,SAAS,QAAW,KAAwD;CAC1E,IAAIA,WAAqB,EAAE;AAC3B,MAAK,MAAM,UAAU,IACnB,MAAK,MAAM,QAAQ,OACjB,UAAS,KAAK,KAAK;AAGvB,QAAO;;AAQT,SAAgB,uBAId,eAKA,cAGgD;CAChD,MAAM,wBAAwB;EAC5B,mBAAmB;EACnB,qBAAqB;EACtB;CACD,MAAM,EAAE,OAAO,aACb,6BAEG;CAEL,MAAM,cAAc,wBAAwB;CAI5C,SAAS,gCACP,qBACA;AAwCA,SADc,QAtCE,oBAAoB,KAAK,mBAAmB,MAAM;GAChE,MAAM,2BAA2B,YAC/B,kBAAkB,yBACnB;GAGD,MAAM,OAAO,sBAAsB,IAAI;AACvC,OAAI,QAAQ,KACV,OAAM,IAAI,MACR,gFACD;GAGH,MAAM,iBAAiB;IACrB;IACA,YAAY,kBAAkB;IAC9B,GAAI,yBAAyB,eAAe,eACxC,EACE,aAAa,6BACX,aACA,mBACA,sBACD,EACF,GACD;IACL;AAED,OACE,yBAAyB,eAAe,SAAS,sBAEjD,OAAM,IAAI,MACR,4BAA4B,yBAAyB,eAAe,KAAK,8CAC1E;AAGH,UAAO,yBAAyB,eAAe,SAAS,eAAe;IACvE,CAE4B;;CAIhC,SAAS,qCACP,qBACA;AACA,SAAO,oBAAoB,KAEvB,mBACA,MAQG;AACH,6BACE,kBAAkB,gBAClB,sBACD;GAED,MAAM,2BAA2B,YAC/B,kBAAkB,yBACnB;GAED,MAAM,UAAU,sBAAsB;AACtC,OAAI,WAAW,KACb,OAAM,IAAI,MACR,oEACD;AAGH,UAAO;IACL;IACA,WAAW,yBAAyB,eAAe;IACnD;IACA,SAAS,OAAO;AACd,cAAS,EAAE,CAAC;;IAEf;IAEJ;;CAGH,MAAM,gBACH,iBAEC,OACA,iBACS;EAQT,MAAM,aAAa,8BAPC,cAClB;GACE,MAAM;GACN,OAAO;GACR,EACD,gBAAgB,EAAE,CACnB,CAAC,IAAI,CACuD;EAC7D,MAAM,iBAAiB,iBAAiB,KAAK,CAAC,uBAAuB;GACnE,MAAM,0BAA0B,kBAAkB,oBAAoB;AACtE,OAAI,2BAA2B,KAC7B,OAAM,IAAI,MACR,+HAED;AAEH,UAAO;IACP;AACF,iBAAe,KAAK,WAAW;AAmB/B,WATI,CACF,sBACM;AACJ,kBAAe,SAAS,GAAG,aAAa;AACtC,aAAS;KACT;IAEL,CAE6B;;CAGlC,MAAM,GAAG,YAAY,SAAS,EAAE,CAAC;CAEjC,MAAM,mBAAmB,UAAU,mBAAmB,EAAE,GAAG;CAE3D,MAAMC,iBAEU,iBAAiB,iBAAiB,SAAS;CAC3D,MAAM,8BACJ,iBAAiB,GAAG,sBAAsB;AAE5C,KAAI,kBAAkB,QAAQ,+BAA+B,KAC3D,OAAM,IAAI,MACR,6FAED;CAGH,MAAM,uBACJ,+BAA+B,OAC3B;EACE;EACA,OAAO,gBAAgB,4BAA4B,eAAe;EACnE,GACD;CAON,MAAM,+BAJJ,sBAAsB,OAAO,SAAS,OAClC,mBACA,iBAAiB,MAAM,GAAG,iBAAiB,SAAS,EAAE,EAEC,KAC1D,CAAC,aAAa;EACb,MAAM,oBAAoB,QAAQ,sBAAsB;AACxD,MAAI,qBAAqB,KACvB,OAAM,IAAI,MACR,mGAED;AAEH,SAAO;GAEV;CAED,MAAM,wBAAwB,4BAA4B,KACvD,sBACC,qBACE,aACA,mBACA,sBACD,CACJ;AAED,wBACE,qCAAqC,4BAA4B,CAClE;AAED,KAAI,wBAAwB,KAC1B,QAAO;EACL,MAAM;EACN,WAAW,aAAa,cAAc,QAAQ,EAAE;EAChD,SAAS,EAAE;EACZ;AAGH,SAAQ,qBAAqB,MAAM,MAAnC;EACE,KAAK,WAAW;GACd,MAAM,cAAc,qBAAqB,mBAAmB;AAC1D,iBAAa;AACb,aAAS,EAAE,CAAC;KACZ;AAEF,UAAO;IACL,MAAM;IACN,iBAAiB,qBAAqB;IACtC,SAAS,gCAAgC,4BAA4B;IACtE;;EAEH,KAAK,MACH,OAAM,qBAAqB,MAAM;EAEnC,KAAK,MAAM;GACT,MAAM,UAAU,gCACd,4BACD;AACD,UAAO;IACL,MAAM;IACN;IACA,WAAW,aAAa,QAAQ,OAAO;IACxC"}
@@ -0,0 +1,18 @@
1
+ import { NetworkRequestReaderOptions } from "../core/read.mjs";
2
+ import { FragmentReference } from "../core/FragmentReference.mjs";
3
+ import { NetworkResponseObject } from "../core/cache.mjs";
4
+ import { ExtractReadFromStore, IsographEntrypoint } from "../core/entrypoint.mjs";
5
+
6
+ //#region src/react/FragmentReader.d.ts
7
+ declare function FragmentReader<TResult, TRawResponseType extends NetworkResponseObject, TEntrypoint extends IsographEntrypoint<any, TResult, any, TRawResponseType>, TChildrenResult>({
8
+ fragmentReference,
9
+ networkRequestOptions,
10
+ children
11
+ }: {
12
+ fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, TResult>;
13
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
14
+ children: (data: TResult) => TChildrenResult;
15
+ }): TChildrenResult;
16
+ //#endregion
17
+ export { FragmentReader };
18
+ //# sourceMappingURL=FragmentReader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentReader.d.mts","names":[],"sources":["../../src/react/FragmentReader.tsx"],"sourcesContent":[],"mappings":";;;;;;iBASgB,iDAEW,2CACL,wBAAwB,cAAc;;;;;qBAOvC,kBACjB,qBAAqB,cACrB;EAZY,qBAAc,CAAA,EAcJ,OAdI,CAcI,2BAdJ,CAAA;EAEH,QAAA,EAAA,CAAA,IAAA,EAaR,OAbQ,EAAA,GAaI,eAbJ;CACmB,CAAA,EAa1C,eAb0C"}