@isograph/react 0.0.0-main-3de26263 → 0.0.0-main-709dc2bb

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 (260) 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 -81
  13. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  14. package/dist/core/IsographEnvironment.js +59 -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 -93
  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 -24
  34. package/dist/core/cache.d.ts.map +1 -1
  35. package/dist/core/cache.js +203 -306
  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 -122
  43. package/dist/core/check.mjs +84 -0
  44. package/dist/core/check.mjs.map +1 -0
  45. package/dist/core/componentCache.js +9 -10
  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 -80
  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 -120
  60. package/dist/core/garbageCollection.mjs +89 -0
  61. package/dist/core/garbageCollection.mjs.map +1 -0
  62. package/dist/core/getOrCreateCacheForArtifact.js +35 -38
  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 -260
  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 -353
  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 -29
  89. package/dist/core/read.d.ts.map +1 -1
  90. package/dist/core/read.js +435 -634
  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 -79
  96. package/dist/core/reader.d.ts.map +1 -1
  97. package/dist/core/startUpdate.js +115 -149
  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 +11 -7
  103. package/dist/core/subscribe.d.ts.map +1 -1
  104. package/dist/core/subscribe.js +67 -109
  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 -24
  110. package/dist/core/util.d.ts.map +1 -1
  111. package/dist/core/util.js +17 -23
  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 +10 -6
  117. package/dist/core/writeData.d.ts.map +1 -1
  118. package/dist/core/writeData.js +39 -34
  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 -32
  123. package/dist/index.js +70 -72
  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 -13
  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 -176
  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 -164
  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 -13
  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 -14
  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 +7 -3
  205. package/dist/react/createIsographEnvironment.d.ts.map +1 -1
  206. package/dist/react/createIsographEnvironment.js +8 -6
  207. package/dist/react/createIsographEnvironment.mjs +11 -0
  208. package/dist/react/createIsographEnvironment.mjs.map +1 -0
  209. package/dist/react/maybeUnwrapNetworkRequest.js +9 -12
  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 -11
  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 -9
  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 -11
  229. package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
  230. package/dist/react/useReadAndSubscribe.js +54 -63
  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 -3
  243. package/dist/react/useResult.d.ts.map +1 -1
  244. package/dist/react/useResult.js +27 -30
  245. package/dist/react/useResult.mjs +30 -0
  246. package/dist/react/useResult.mjs.map +1 -0
  247. package/package.json +16 -8
  248. package/dist/core/areEqualWithDeepComparison.d.ts +0 -3
  249. package/dist/core/areEqualWithDeepComparison.d.ts.map +0 -1
  250. package/dist/core/brand.js +0 -2
  251. package/dist/core/componentCache.d.ts +0 -5
  252. package/dist/core/componentCache.d.ts.map +0 -1
  253. package/dist/core/getOrCreateCacheForArtifact.d.ts +0 -8
  254. package/dist/core/getOrCreateCacheForArtifact.d.ts.map +0 -1
  255. package/dist/core/reader.js +0 -2
  256. package/dist/core/startUpdate.d.ts +0 -9
  257. package/dist/core/startUpdate.d.ts.map +0 -1
  258. package/dist/index.d.ts.map +0 -1
  259. package/dist/react/maybeUnwrapNetworkRequest.d.ts +0 -4
  260. package/dist/react/maybeUnwrapNetworkRequest.d.ts.map +0 -1
@@ -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"}
@@ -1,10 +1,18 @@
1
- import type { NetworkResponseObject } from '../core/cache';
2
- import { type ExtractReadFromStore, type IsographEntrypoint } from '../core/entrypoint';
3
- import { type FragmentReference } from '../core/FragmentReference';
4
- import { type NetworkRequestReaderOptions } from '../core/read';
5
- export declare function FragmentReader<TResult, TRawResponseType extends NetworkResponseObject, TEntrypoint extends IsographEntrypoint<any, TResult, any, TRawResponseType>, TChildrenResult>({ fragmentReference, networkRequestOptions, children, }: {
6
- fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, TResult>;
7
- networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
8
- children: (data: TResult) => TChildrenResult;
1
+ import { NetworkRequestReaderOptions } from "../core/read.js";
2
+ import { FragmentReference } from "../core/FragmentReference.js";
3
+ import { NetworkResponseObject } from "../core/cache.js";
4
+ import { ExtractReadFromStore, IsographEntrypoint } from "../core/entrypoint.js";
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;
9
15
  }): TChildrenResult;
16
+ //#endregion
17
+ export { FragmentReader };
10
18
  //# sourceMappingURL=FragmentReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FragmentReader.d.ts","sourceRoot":"","sources":["../../src/react/FragmentReader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAGhE,wBAAgB,cAAc,CAC5B,OAAO,EACP,gBAAgB,SAAS,qBAAqB,EAC9C,WAAW,SAAS,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAC3E,eAAe,EACf,EACA,iBAAiB,EACjB,qBAAqB,EACrB,QAAQ,GACT,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAClC,oBAAoB,CAAC,WAAW,CAAC,EACjC,OAAO,CACR,CAAC;IACF,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,eAAe,CAAC;CAC9C,GAAG,eAAe,CAGlB"}
1
+ {"version":3,"file":"FragmentReader.d.ts","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"}
@@ -1,8 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FragmentReader = FragmentReader;
4
- const useResult_1 = require("./useResult");
5
- function FragmentReader({ fragmentReference, networkRequestOptions, children, }) {
6
- const result = (0, useResult_1.useResult)(fragmentReference, networkRequestOptions);
7
- return children(result);
1
+ const require_useResult = require('./useResult.js');
2
+
3
+ //#region src/react/FragmentReader.tsx
4
+ function FragmentReader({ fragmentReference, networkRequestOptions, children }) {
5
+ return children(require_useResult.useResult(fragmentReference, networkRequestOptions));
8
6
  }
7
+
8
+ //#endregion
9
+ exports.FragmentReader = FragmentReader;
@@ -0,0 +1,10 @@
1
+ import { useResult } from "./useResult.mjs";
2
+
3
+ //#region src/react/FragmentReader.tsx
4
+ function FragmentReader({ fragmentReference, networkRequestOptions, children }) {
5
+ return children(useResult(fragmentReference, networkRequestOptions));
6
+ }
7
+
8
+ //#endregion
9
+ export { FragmentReader };
10
+ //# sourceMappingURL=FragmentReader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentReader.mjs","names":[],"sources":["../../src/react/FragmentReader.tsx"],"sourcesContent":["import type { NetworkResponseObject } from '../core/cache';\nimport {\n type ExtractReadFromStore,\n type IsographEntrypoint,\n} from '../core/entrypoint';\nimport { type FragmentReference } from '../core/FragmentReference';\nimport { type NetworkRequestReaderOptions } from '../core/read';\nimport { useResult } from './useResult';\n\nexport function FragmentReader<\n TResult,\n TRawResponseType extends NetworkResponseObject,\n TEntrypoint extends IsographEntrypoint<any, TResult, any, TRawResponseType>,\n TChildrenResult,\n>({\n fragmentReference,\n networkRequestOptions,\n children,\n}: {\n fragmentReference: FragmentReference<\n ExtractReadFromStore<TEntrypoint>,\n TResult\n >;\n networkRequestOptions?: Partial<NetworkRequestReaderOptions>;\n children: (data: TResult) => TChildrenResult;\n}): TChildrenResult {\n const result = useResult(fragmentReference, networkRequestOptions);\n return children(result);\n}\n"],"mappings":";;;AASA,SAAgB,eAKd,EACA,mBACA,uBACA,YAQkB;AAElB,QAAO,SADQ,UAAU,mBAAmB,sBAAsB,CAC3C"}
@@ -0,0 +1,20 @@
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
+ import * as React$1 from "react";
6
+
7
+ //#region src/react/FragmentRenderer.d.ts
8
+ type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes ? JSX.IntrinsicAttributes extends T ? true : false : false;
9
+ declare function FragmentRenderer<TProps extends Record<any, any>, TRawResponseType extends NetworkResponseObject, TEntrypoint extends IsographEntrypoint<any, React$1.FC<TProps>, any, TRawResponseType>>(props: IsExactlyIntrinsicAttributes<TProps> extends true ? {
10
+ fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React$1.FC<TProps>>;
11
+ additionalProps?: Record<PropertyKey, never>;
12
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
13
+ } : {
14
+ fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React$1.FC<TProps>>;
15
+ additionalProps: Omit<TProps, keyof JSX.IntrinsicAttributes>;
16
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
17
+ }): React$1.ReactNode;
18
+ //#endregion
19
+ export { FragmentRenderer, IsExactlyIntrinsicAttributes };
20
+ //# sourceMappingURL=FragmentRenderer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentRenderer.d.mts","names":[],"sources":["../../src/react/FragmentRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;;;KAUY,kCAAkC,UAAU,GAAA,CAAI,sBACxD,GAAA,CAAI,4BAA4B;iBAKpB,gCACC,2CACU,2CACL,wBAElB,OAAA,CAAM,GAAG,cAET,0BAGK,6BAA6B;EAhB1B,iBAAA,EAkBe,iBAlBa,CAmB9B,oBAnB8B,CAmBT,WAnBS,CAAA,EAoB9B,OAAA,CAAM,EApBwB,CAoBrB,MApBqB,CAAA,CAAA;EAAM,eAAA,CAAA,EAsBpB,MAtBoB,CAsBb,WAtBa,EAAA,KAAA,CAAA;EAAU,qBAAI,CAAA,EAuB5B,OAvB4B,CAuBpB,2BAvBoB,CAAA;CACxD,GAAA;EAAgC,iBAAA,EAyBT,iBAzBS,CA0B1B,oBA1B0B,CA0BL,WA1BK,CAAA,EA2B1B,OAAA,CAAM,EA3BoB,CA2BjB,MA3BiB,CAAA,CAAA;EAAC,eAAA,EA6BZ,IA7BY,CA6BP,MA7BO,EAAA,MA6BO,GAAA,CAAI,mBA7BX,CAAA;EAKrB,qBAAgB,CAAA,EAyBA,OAzBA,CAyBQ,2BAzBR,CAAA;CACf,CAAA,EA0Bd,OAAA,CAAM,SA1BQ"}
@@ -1,16 +1,20 @@
1
- import * as React from 'react';
2
- import { type ExtractReadFromStore, type IsographEntrypoint } from '../core/entrypoint';
3
- import { type FragmentReference } from '../core/FragmentReference';
4
- import { type NetworkRequestReaderOptions } from '../core/read';
5
- import type { NetworkResponseObject } from '../core/cache';
6
- export type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes ? JSX.IntrinsicAttributes extends T ? true : false : false;
7
- export declare function FragmentRenderer<TProps extends Record<any, any>, TRawResponseType extends NetworkResponseObject, TEntrypoint extends IsographEntrypoint<any, React.FC<TProps>, any, TRawResponseType>>(props: IsExactlyIntrinsicAttributes<TProps> extends true ? {
8
- fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React.FC<TProps>>;
9
- additionalProps?: Record<PropertyKey, never>;
10
- networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
1
+ import { NetworkRequestReaderOptions } from "../core/read.js";
2
+ import { FragmentReference } from "../core/FragmentReference.js";
3
+ import { NetworkResponseObject } from "../core/cache.js";
4
+ import { ExtractReadFromStore, IsographEntrypoint } from "../core/entrypoint.js";
5
+ import * as React$1 from "react";
6
+
7
+ //#region src/react/FragmentRenderer.d.ts
8
+ type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes ? JSX.IntrinsicAttributes extends T ? true : false : false;
9
+ declare function FragmentRenderer<TProps extends Record<any, any>, TRawResponseType extends NetworkResponseObject, TEntrypoint extends IsographEntrypoint<any, React$1.FC<TProps>, any, TRawResponseType>>(props: IsExactlyIntrinsicAttributes<TProps> extends true ? {
10
+ fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React$1.FC<TProps>>;
11
+ additionalProps?: Record<PropertyKey, never>;
12
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
11
13
  } : {
12
- fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React.FC<TProps>>;
13
- additionalProps: Omit<TProps, keyof JSX.IntrinsicAttributes>;
14
- networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
15
- }): React.ReactNode;
14
+ fragmentReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, React$1.FC<TProps>>;
15
+ additionalProps: Omit<TProps, keyof JSX.IntrinsicAttributes>;
16
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
17
+ }): React$1.ReactNode;
18
+ //#endregion
19
+ export { FragmentRenderer, IsExactlyIntrinsicAttributes };
16
20
  //# sourceMappingURL=FragmentRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FragmentRenderer.d.ts","sourceRoot":"","sources":["../../src/react/FragmentRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,mBAAmB,GAC3E,GAAG,CAAC,mBAAmB,SAAS,CAAC,GAC/B,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAEV,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/B,gBAAgB,SAAS,qBAAqB,EAC9C,WAAW,SAAS,kBAAkB,CACpC,GAAG,EACH,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAChB,GAAG,EACH,gBAAgB,CACjB,EAED,KAAK,EAAE,4BAA4B,CAAC,MAAM,CAAC,SAAS,IAAI,GACpD;IACE,iBAAiB,EAAE,iBAAiB,CAClC,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CACjB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC9D,GACD;IACE,iBAAiB,EAAE,iBAAiB,CAClC,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CACjB,CAAC;IACF,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7D,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC9D,GACJ,KAAK,CAAC,SAAS,CASjB"}
1
+ {"version":3,"file":"FragmentRenderer.d.ts","names":[],"sources":["../../src/react/FragmentRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;;;KAUY,kCAAkC,UAAU,GAAA,CAAI,sBACxD,GAAA,CAAI,4BAA4B;iBAKpB,gCACC,2CACU,2CACL,wBAElB,OAAA,CAAM,GAAG,cAET,0BAGK,6BAA6B;EAhB1B,iBAAA,EAkBe,iBAlBa,CAmB9B,oBAnB8B,CAmBT,WAnBS,CAAA,EAoB9B,OAAA,CAAM,EApBwB,CAoBrB,MApBqB,CAAA,CAAA;EAAM,eAAA,CAAA,EAsBpB,MAtBoB,CAsBb,WAtBa,EAAA,KAAA,CAAA;EAAU,qBAAI,CAAA,EAuB5B,OAvB4B,CAuBpB,2BAvBoB,CAAA;CACxD,GAAA;EAAgC,iBAAA,EAyBT,iBAzBS,CA0B1B,oBA1B0B,CA0BL,WA1BK,CAAA,EA2B1B,OAAA,CAAM,EA3BoB,CA2BjB,MA3BiB,CAAA,CAAA;EAAC,eAAA,EA6BZ,IA7BY,CA6BP,MA7BO,EAAA,MA6BO,GAAA,CAAI,mBA7BX,CAAA;EAKrB,qBAAgB,CAAA,EAyBA,OAzBA,CAyBQ,2BAzBR,CAAA;CACf,CAAA,EA0Bd,OAAA,CAAM,SA1BQ"}
@@ -1,35 +1,13 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.FragmentRenderer = FragmentRenderer;
27
- const React = __importStar(require("react"));
28
- const useResult_1 = require("./useResult");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
+ const require_useResult = require('./useResult.js');
3
+ let react = require("react");
4
+ react = require_rolldown_runtime.__toESM(react);
5
+
6
+ //#region src/react/FragmentRenderer.tsx
29
7
  function FragmentRenderer(props) {
30
- const Component = (0, useResult_1.useResult)(props.fragmentReference, props.networkRequestOptions);
31
- // TypeScript is not understanding that if additionalProps is Record<PropertyKey, never>,
32
- // it means that TProps === JSX.IntrinsicAttributes.
33
- // @ts-expect-error
34
- return React.createElement(Component, Object.assign({}, props.additionalProps));
8
+ const Component = require_useResult.useResult(props.fragmentReference, props.networkRequestOptions);
9
+ return /* @__PURE__ */ react.createElement(Component, props.additionalProps);
35
10
  }
11
+
12
+ //#endregion
13
+ exports.FragmentRenderer = FragmentRenderer;
@@ -0,0 +1,12 @@
1
+ import { useResult } from "./useResult.mjs";
2
+ import * as React$1 from "react";
3
+
4
+ //#region src/react/FragmentRenderer.tsx
5
+ function FragmentRenderer(props) {
6
+ const Component = useResult(props.fragmentReference, props.networkRequestOptions);
7
+ return /* @__PURE__ */ React$1.createElement(Component, props.additionalProps);
8
+ }
9
+
10
+ //#endregion
11
+ export { FragmentRenderer };
12
+ //# sourceMappingURL=FragmentRenderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentRenderer.mjs","names":[],"sources":["../../src/react/FragmentRenderer.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n type ExtractReadFromStore,\n type IsographEntrypoint,\n} from '../core/entrypoint';\nimport { type FragmentReference } from '../core/FragmentReference';\nimport { type NetworkRequestReaderOptions } from '../core/read';\nimport { useResult } from './useResult';\nimport type { NetworkResponseObject } from '../core/cache';\n\nexport type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes\n ? JSX.IntrinsicAttributes extends T\n ? true\n : false\n : false;\n\nexport function FragmentRenderer<\n TProps extends Record<any, any>,\n TRawResponseType extends NetworkResponseObject,\n TEntrypoint extends IsographEntrypoint<\n any,\n React.FC<TProps>,\n any,\n TRawResponseType\n >,\n>(\n props: IsExactlyIntrinsicAttributes<TProps> extends true\n ? {\n fragmentReference: FragmentReference<\n ExtractReadFromStore<TEntrypoint>,\n React.FC<TProps>\n >;\n additionalProps?: Record<PropertyKey, never>;\n networkRequestOptions?: Partial<NetworkRequestReaderOptions>;\n }\n : {\n fragmentReference: FragmentReference<\n ExtractReadFromStore<TEntrypoint>,\n React.FC<TProps>\n >;\n additionalProps: Omit<TProps, keyof JSX.IntrinsicAttributes>;\n networkRequestOptions?: Partial<NetworkRequestReaderOptions>;\n },\n): React.ReactNode {\n const Component = useResult(\n props.fragmentReference,\n props.networkRequestOptions,\n );\n // TypeScript is not understanding that if additionalProps is Record<PropertyKey, never>,\n // it means that TProps === JSX.IntrinsicAttributes.\n // @ts-expect-error\n return <Component {...props.additionalProps} />;\n}\n"],"mappings":";;;;AAgBA,SAAgB,iBAUd,OAiBiB;CACjB,MAAM,YAAY,UAChB,MAAM,mBACN,MAAM,sBACP;AAID,QAAO,sCAAC,WAAc,MAAM,gBAAmB"}
@@ -0,0 +1,17 @@
1
+ import { IsographEnvironment } from "../core/IsographEnvironment.mjs";
2
+ import * as React$1 from "react";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/react/IsographEnvironmentProvider.d.ts
6
+ type IsographEnvironmentProviderProps = {
7
+ readonly environment: IsographEnvironment;
8
+ readonly children: ReactNode;
9
+ };
10
+ declare function IsographEnvironmentProvider({
11
+ environment,
12
+ children
13
+ }: IsographEnvironmentProviderProps): React$1.ReactElement;
14
+ declare function useIsographEnvironment(): IsographEnvironment;
15
+ //#endregion
16
+ export { IsographEnvironmentProvider, IsographEnvironmentProviderProps, useIsographEnvironment };
17
+ //# sourceMappingURL=IsographEnvironmentProvider.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsographEnvironmentProvider.d.mts","names":[],"sources":["../../src/react/IsographEnvironmentProvider.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,gCAAA;EAAA,SAAA,WAAA,EACY,mBADoB;EAK5B,SAAA,QAAA,EAHK,SAGL;CACd;AACA,iBAFc,2BAAA,CAEd;EAAA,WAAA;EAAA;AAAA,CAAA,EACC,gCADD,CAAA,EACoC,OAAA,CAAM,YAD1C;AACC,iBAQa,sBAAA,CAAA,CARb,EAQuC,mBARvC"}
@@ -1,11 +1,17 @@
1
- import * as React from 'react';
2
- import type { ReactNode } from 'react';
3
- import { type IsographEnvironment } from '../core/IsographEnvironment';
4
- export declare const IsographEnvironmentContext: React.Context<IsographEnvironment | null>;
5
- export type IsographEnvironmentProviderProps = {
6
- readonly environment: IsographEnvironment;
7
- readonly children: ReactNode;
1
+ import { IsographEnvironment } from "../core/IsographEnvironment.js";
2
+ import * as React$1 from "react";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/react/IsographEnvironmentProvider.d.ts
6
+ type IsographEnvironmentProviderProps = {
7
+ readonly environment: IsographEnvironment;
8
+ readonly children: ReactNode;
8
9
  };
9
- export declare function IsographEnvironmentProvider({ environment, children, }: IsographEnvironmentProviderProps): React.ReactElement;
10
- export declare function useIsographEnvironment(): IsographEnvironment;
10
+ declare function IsographEnvironmentProvider({
11
+ environment,
12
+ children
13
+ }: IsographEnvironmentProviderProps): React$1.ReactElement;
14
+ declare function useIsographEnvironment(): IsographEnvironment;
15
+ //#endregion
16
+ export { IsographEnvironmentProvider, IsographEnvironmentProviderProps, useIsographEnvironment };
11
17
  //# sourceMappingURL=IsographEnvironmentProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsographEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../src/react/IsographEnvironmentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,eAAO,MAAM,0BAA0B,2CACU,CAAC;AAElD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EAC1C,WAAW,EACX,QAAQ,GACT,EAAE,gCAAgC,GAAG,KAAK,CAAC,YAAY,CAMvD;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAS5D"}
1
+ {"version":3,"file":"IsographEnvironmentProvider.d.ts","names":[],"sources":["../../src/react/IsographEnvironmentProvider.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,gCAAA;EAAA,SAAA,WAAA,EACY,mBADoB;EAK5B,SAAA,QAAA,EAHK,SAGL;CACd;AACA,iBAFc,2BAAA,CAEd;EAAA,WAAA;EAAA;AAAA,CAAA,EACC,gCADD,CAAA,EACoC,OAAA,CAAM,YAD1C;AACC,iBAQa,sBAAA,CAAA,CARb,EAQuC,mBARvC"}
@@ -1,42 +1,18 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.IsographEnvironmentContext = void 0;
27
- exports.IsographEnvironmentProvider = IsographEnvironmentProvider;
28
- exports.useIsographEnvironment = useIsographEnvironment;
29
- const React = __importStar(require("react"));
30
- const react_1 = require("react");
31
- exports.IsographEnvironmentContext = (0, react_1.createContext)(null);
32
- function IsographEnvironmentProvider({ environment, children, }) {
33
- return (React.createElement(exports.IsographEnvironmentContext.Provider, { value: environment }, children));
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
+ let react = require("react");
3
+ react = require_rolldown_runtime.__toESM(react);
4
+
5
+ //#region src/react/IsographEnvironmentProvider.tsx
6
+ const IsographEnvironmentContext = (0, react.createContext)(null);
7
+ function IsographEnvironmentProvider({ environment, children }) {
8
+ return /* @__PURE__ */ react.createElement(IsographEnvironmentContext.Provider, { value: environment }, children);
34
9
  }
35
10
  function useIsographEnvironment() {
36
- const context = (0, react_1.useContext)(exports.IsographEnvironmentContext);
37
- if (context == null) {
38
- throw new Error('Unexpected null environment context. Make sure to render ' +
39
- 'this component within an IsographEnvironmentProvider component');
40
- }
41
- return context;
11
+ const context = (0, react.useContext)(IsographEnvironmentContext);
12
+ if (context == null) throw new Error("Unexpected null environment context. Make sure to render this component within an IsographEnvironmentProvider component");
13
+ return context;
42
14
  }
15
+
16
+ //#endregion
17
+ exports.IsographEnvironmentProvider = IsographEnvironmentProvider;
18
+ exports.useIsographEnvironment = useIsographEnvironment;
@@ -0,0 +1,17 @@
1
+ import * as React$1 from "react";
2
+ import { createContext, useContext } from "react";
3
+
4
+ //#region src/react/IsographEnvironmentProvider.tsx
5
+ const IsographEnvironmentContext = createContext(null);
6
+ function IsographEnvironmentProvider({ environment, children }) {
7
+ return /* @__PURE__ */ React$1.createElement(IsographEnvironmentContext.Provider, { value: environment }, children);
8
+ }
9
+ function useIsographEnvironment() {
10
+ const context = useContext(IsographEnvironmentContext);
11
+ if (context == null) throw new Error("Unexpected null environment context. Make sure to render this component within an IsographEnvironmentProvider component");
12
+ return context;
13
+ }
14
+
15
+ //#endregion
16
+ export { IsographEnvironmentProvider, useIsographEnvironment };
17
+ //# sourceMappingURL=IsographEnvironmentProvider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsographEnvironmentProvider.mjs","names":[],"sources":["../../src/react/IsographEnvironmentProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport { type IsographEnvironment } from '../core/IsographEnvironment';\n\nexport const IsographEnvironmentContext =\n createContext<IsographEnvironment | null>(null);\n\nexport type IsographEnvironmentProviderProps = {\n readonly environment: IsographEnvironment;\n readonly children: ReactNode;\n};\n\nexport function IsographEnvironmentProvider({\n environment,\n children,\n}: IsographEnvironmentProviderProps): React.ReactElement {\n return (\n <IsographEnvironmentContext.Provider value={environment}>\n {children}\n </IsographEnvironmentContext.Provider>\n );\n}\n\nexport function useIsographEnvironment(): IsographEnvironment {\n const context = useContext(IsographEnvironmentContext);\n if (context == null) {\n throw new Error(\n 'Unexpected null environment context. Make sure to render ' +\n 'this component within an IsographEnvironmentProvider component',\n );\n }\n return context;\n}\n"],"mappings":";;;;AAKA,MAAa,6BACX,cAA0C,KAAK;AAOjD,SAAgB,4BAA4B,EAC1C,aACA,YACuD;AACvD,QACE,sCAAC,2BAA2B,YAAS,OAAO,eACzC,SACmC;;AAI1C,SAAgB,yBAA8C;CAC5D,MAAM,UAAU,WAAW,2BAA2B;AACtD,KAAI,WAAW,KACb,OAAM,IAAI,MACR,0HAED;AAEH,QAAO"}
@@ -0,0 +1,21 @@
1
+ import { FetchOptions } from "../core/check.mjs";
2
+ import { LoadableField } from "../core/reader.mjs";
3
+ import { NetworkRequestReaderOptions } from "../core/read.mjs";
4
+ import { ExtractParameters, UnknownTReadFromStore } from "../core/FragmentReference.mjs";
5
+
6
+ //#region src/react/LoadableFieldReader.d.ts
7
+ type ArgsWithoutProvidedArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;
8
+ type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs> ? {
9
+ args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
10
+ } : {
11
+ args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
12
+ };
13
+ declare function LoadableFieldReader<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object, TChildrenResult>(props: {
14
+ loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>;
15
+ fetchOptions?: FetchOptions<TResult, never>;
16
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
17
+ children: (arg: TResult) => TChildrenResult;
18
+ } & MaybeRequiredArgs<TReadFromStore, TProvidedArgs>): TChildrenResult;
19
+ //#endregion
20
+ export { LoadableFieldReader };
21
+ //# sourceMappingURL=LoadableFieldReader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadableFieldReader.d.mts","names":[],"sources":["../../src/react/LoadableFieldReader.tsx"],"sourcesContent":[],"mappings":";;;;;;KASK,+CACoB,uDAErB,KAAK,kBAAkB,uBAAuB;AAPE,KAS/C,iBALA,CAAA,uBAMoB,qBANG,EAAA,sBAAA,MAAA,CAAA,GAAA,CAAA,CAAA,SASf,uBATe,CASS,cATT,EASyB,aATzB,CAAA,GAAA;EACH,IAAA,CAAA,EAUV,uBAVU,CAUc,cAVd,EAU8B,aAV9B,CAAA;CAEE,GAAA;EAAlB,IAAA,EAWK,uBAXL,CAW6B,cAX7B,EAW6C,aAX7C,CAAA;CAAyC;AAA9C,iBAcY,mBAdZ,CAAA,uBAeqB,qBAfrB,EAAA,OAAA,EAAA,sBAAA,MAAA,EAAA,eAAA,CAAA,CAAA,KAAA,EAAA;EAAI,aAAA,EAqBW,aArBX,CAsBF,cAtBE,EAuBF,OAvBE,EAwBF,IAxBE,CAwBG,iBAxBH,CAwBqB,cAxBrB,CAAA,EAAA,MAwB4C,aAxB5C,CAAA,CAAA;EAEH,YAAA,CAAA,EAwBc,YAxBG,CAwBU,OAxBV,EAAA,KAAA,CAAA;EACG,qBAAA,CAAA,EAwBG,OAxBH,CAwBW,2BAxBX,CAAA;EAGY,QAAA,EAAA,CAAA,GAAA,EAsBjB,OAtBiB,EAAA,GAsBL,eAtBK;CAAgB,GAuB/C,iBAvB+C,CAuB7B,cAvB6B,EAuBb,aAvBa,CAAA,CAAA,EAwBlD,eAxBkD"}
@@ -1,19 +1,21 @@
1
- import { type FetchOptions } from '../core/check';
2
- import type { ExtractParameters } from '../core/FragmentReference';
3
- import { type UnknownTReadFromStore } from '../core/FragmentReference';
4
- import { type NetworkRequestReaderOptions } from '../core/read';
5
- import { type LoadableField } from '../core/reader';
1
+ import { FetchOptions } from "../core/check.js";
2
+ import { LoadableField } from "../core/reader.js";
3
+ import { NetworkRequestReaderOptions } from "../core/read.js";
4
+ import { ExtractParameters, UnknownTReadFromStore } from "../core/FragmentReference.js";
5
+
6
+ //#region src/react/LoadableFieldReader.d.ts
6
7
  type ArgsWithoutProvidedArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;
7
8
  type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs> ? {
8
- args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
9
+ args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
9
10
  } : {
10
- args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
11
+ args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
11
12
  };
12
- export declare function LoadableFieldReader<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object, TChildrenResult>(props: {
13
- loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>;
14
- fetchOptions?: FetchOptions<TResult, never>;
15
- networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
16
- children: (arg: TResult) => TChildrenResult;
13
+ declare function LoadableFieldReader<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object, TChildrenResult>(props: {
14
+ loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>;
15
+ fetchOptions?: FetchOptions<TResult, never>;
16
+ networkRequestOptions?: Partial<NetworkRequestReaderOptions>;
17
+ children: (arg: TResult) => TChildrenResult;
17
18
  } & MaybeRequiredArgs<TReadFromStore, TProvidedArgs>): TChildrenResult;
18
- export {};
19
+ //#endregion
20
+ export { LoadableFieldReader };
19
21
  //# sourceMappingURL=LoadableFieldReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadableFieldReader.d.ts","sourceRoot":"","sources":["../../src/react/LoadableFieldReader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,KAAK,iBAAiB,CACpB,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAE5B,EAAE,SAAS,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,GAC7D;IACE,IAAI,CAAC,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC/D,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC9D,CAAC;AAER,wBAAgB,mBAAmB,CACjC,cAAc,SAAS,qBAAqB,EAC5C,OAAO,EACP,aAAa,SAAS,MAAM,EAC5B,eAAe,EAEf,KAAK,EAAE;IACL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7D,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,eAAe,CAAC;CAC7C,GAAG,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,GACnD,eAAe,CAcjB"}
1
+ {"version":3,"file":"LoadableFieldReader.d.ts","names":[],"sources":["../../src/react/LoadableFieldReader.tsx"],"sourcesContent":[],"mappings":";;;;;;KASK,+CACoB,uDAErB,KAAK,kBAAkB,uBAAuB;AAPE,KAS/C,iBALA,CAAA,uBAMoB,qBANG,EAAA,sBAAA,MAAA,CAAA,GAAA,CAAA,CAAA,SASf,uBATe,CASS,cATT,EASyB,aATzB,CAAA,GAAA;EACH,IAAA,CAAA,EAUV,uBAVU,CAUc,cAVd,EAU8B,aAV9B,CAAA;CAEE,GAAA;EAAlB,IAAA,EAWK,uBAXL,CAW6B,cAX7B,EAW6C,aAX7C,CAAA;CAAyC;AAA9C,iBAcY,mBAdZ,CAAA,uBAeqB,qBAfrB,EAAA,OAAA,EAAA,sBAAA,MAAA,EAAA,eAAA,CAAA,CAAA,KAAA,EAAA;EAAI,aAAA,EAqBW,aArBX,CAsBF,cAtBE,EAuBF,OAvBE,EAwBF,IAxBE,CAwBG,iBAxBH,CAwBqB,cAxBrB,CAAA,EAAA,MAwB4C,aAxB5C,CAAA,CAAA;EAEH,YAAA,CAAA,EAwBc,YAxBG,CAwBU,OAxBV,EAAA,KAAA,CAAA;EACG,qBAAA,CAAA,EAwBG,OAxBH,CAwBW,2BAxBX,CAAA;EAGY,QAAA,EAAA,CAAA,GAAA,EAsBjB,OAtBiB,EAAA,GAsBL,eAtBK;CAAgB,GAuB/C,iBAvB+C,CAuB7B,cAvB6B,EAuBb,aAvBa,CAAA,CAAA,EAwBlD,eAxBkD"}