@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,280 +1,196 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maybeMakeNetworkRequest = maybeMakeNetworkRequest;
4
- exports.retainQueryWithoutMakingNetworkRequest = retainQueryWithoutMakingNetworkRequest;
5
- exports.makeNetworkRequest = makeNetworkRequest;
6
- const cache_1 = require("./cache");
7
- const check_1 = require("./check");
8
- const componentCache_1 = require("./componentCache");
9
- const garbageCollection_1 = require("./garbageCollection");
10
- const IsographEnvironment_1 = require("./IsographEnvironment");
11
- const logging_1 = require("./logging");
12
- const optimisticProxy_1 = require("./optimisticProxy");
13
- const PromiseWrapper_1 = require("./PromiseWrapper");
14
- const read_1 = require("./read");
15
- const startUpdate_1 = require("./startUpdate");
1
+ const require_PromiseWrapper = require('./PromiseWrapper.js');
2
+ const require_IsographEnvironment = require('./IsographEnvironment.js');
3
+ const require_logging = require('./logging.js');
4
+ const require_startUpdate = require('./startUpdate.js');
5
+ const require_componentCache = require('./componentCache.js');
6
+ const require_check = require('./check.js');
7
+ const require_read = require('./read.js');
8
+ const require_subscribe = require('./subscribe.js');
9
+ const require_optimisticProxy = require('./optimisticProxy.js');
10
+ const require_cache = require('./cache.js');
11
+ const require_garbageCollection = require('./garbageCollection.js');
12
+
13
+ //#region src/core/makeNetworkRequest.ts
16
14
  let networkRequestId = 0;
17
15
  function maybeMakeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
18
- var _a;
19
- switch ((_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE) {
20
- case 'Yes': {
21
- return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
22
- }
23
- case 'No': {
24
- return retainQueryWithoutMakingNetworkRequest(environment, artifact, variables);
25
- }
26
- case 'IfNecessary': {
27
- if (artifact.networkRequestInfo.normalizationAst.kind ===
28
- 'NormalizationAstLoader') {
29
- throw new Error('Using lazy loaded normalizationAst with shouldFetch: "IfNecessary" is ' +
30
- 'not supported as it will lead to a network waterfall.');
31
- }
32
- const result = (0, check_1.check)(environment, artifact.networkRequestInfo.normalizationAst.selections, variables, {
33
- __link: IsographEnvironment_1.ROOT_ID,
34
- __typename: artifact.concreteType,
35
- });
36
- if (result.kind === 'EnoughData') {
37
- return retainQueryWithoutMakingNetworkRequest(environment, artifact, variables);
38
- }
39
- else {
40
- return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
41
- }
42
- }
43
- }
16
+ switch (fetchOptions?.shouldFetch ?? require_check.DEFAULT_SHOULD_FETCH_VALUE) {
17
+ case "Yes": return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
18
+ case "No": return retainQueryWithoutMakingNetworkRequest(environment, artifact, variables);
19
+ case "IfNecessary":
20
+ if (artifact.networkRequestInfo.normalizationAst.kind === "NormalizationAstLoader") throw new Error("Using lazy loaded normalizationAst with shouldFetch: \"IfNecessary\" is not supported as it will lead to a network waterfall.");
21
+ if (require_check.check(environment, artifact.networkRequestInfo.normalizationAst.selections, variables, {
22
+ __link: require_IsographEnvironment.ROOT_ID,
23
+ __typename: artifact.concreteType
24
+ }).kind === "EnoughData") return retainQueryWithoutMakingNetworkRequest(environment, artifact, variables);
25
+ else return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
26
+ }
44
27
  }
45
28
  function retainQueryWithoutMakingNetworkRequest(environment, artifact, variables) {
46
- let status = {
47
- kind: 'UndisposedComplete',
48
- retainedQuery: fetchNormalizationAstAndRetainArtifact(environment, artifact, variables),
49
- };
50
- return [
51
- (0, PromiseWrapper_1.wrapResolvedValue)(undefined),
52
- () => {
53
- if (status.kind !== 'Disposed') {
54
- status = unretainAndGarbageCollect(environment, status);
55
- }
56
- },
57
- ];
29
+ let status = {
30
+ kind: "UndisposedComplete",
31
+ retainedQuery: fetchNormalizationAstAndRetainArtifact(environment, artifact, variables)
32
+ };
33
+ return [require_PromiseWrapper.wrapResolvedValue(void 0), () => {
34
+ if (status.kind !== "Disposed") status = unretainAndGarbageCollect(environment, status);
35
+ }];
58
36
  }
59
37
  function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
60
- // TODO this should be a DataId and stored in the store
61
- const myNetworkRequestId = networkRequestId + '';
62
- networkRequestId++;
63
- let status = {
64
- kind: 'UndisposedIncomplete',
65
- retainedQuery: fetchNormalizationAstAndRetainArtifact(environment, artifact, variables),
66
- optimistic: (fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.optimisticNetworkResponse) != null
67
- ? makeOptimisticUpdate(environment, artifact, variables, fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.optimisticNetworkResponse)
68
- : null,
69
- };
70
- (0, logging_1.logMessage)(environment, () => ({
71
- kind: 'MakeNetworkRequest',
72
- artifact,
73
- variables,
74
- networkRequestId: myNetworkRequestId,
75
- }));
76
- // This should be an observable, not a promise
77
- const promise = Promise.all([
78
- environment.networkFunction(artifact.networkRequestInfo.operation, variables),
79
- status.retainedQuery.normalizationAst.promise,
80
- readerWithRefetchQueries === null || readerWithRefetchQueries === void 0 ? void 0 : readerWithRefetchQueries.promise,
81
- ])
82
- .then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
83
- var _a, _b;
84
- (0, logging_1.logMessage)(environment, () => ({
85
- kind: 'ReceivedNetworkResponse',
86
- networkResponse,
87
- networkRequestId: myNetworkRequestId,
88
- }));
89
- if (networkResponse.errors != null) {
90
- try {
91
- (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
92
- }
93
- catch (_c) { }
94
- throw new Error('Network response had errors', {
95
- cause: networkResponse,
96
- });
97
- }
98
- const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
99
- if (status.kind === 'UndisposedIncomplete') {
100
- if (status.optimistic != null) {
101
- status =
102
- revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, (storeLayer) => {
103
- var _a;
104
- return (0, cache_1.normalizeData)(environment, storeLayer, normalizationAst.selections, (_a = networkResponse.data) !== null && _a !== void 0 ? _a : {}, variables, root, new Map());
105
- });
106
- }
107
- else {
108
- const encounteredIds = new Map();
109
- environment.store = (0, optimisticProxy_1.addNetworkResponseStoreLayer)(environment.store);
110
- (0, cache_1.normalizeData)(environment, environment.store, normalizationAst.selections, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, root, encounteredIds);
111
- (0, logging_1.logMessage)(environment, () => ({
112
- kind: 'AfterNormalization',
113
- store: environment.store,
114
- encounteredIds: encounteredIds,
115
- }));
116
- (0, cache_1.callSubscriptions)(environment, encounteredIds);
117
- status = {
118
- kind: 'UndisposedComplete',
119
- retainedQuery: status.retainedQuery,
120
- };
121
- }
122
- }
123
- const onComplete = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete;
124
- if (onComplete != null) {
125
- let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries);
126
- try {
127
- // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact
128
- // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,
129
- // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,
130
- // fetchOptions: FetchOptions<void> }).
131
- onComplete(data);
132
- }
133
- catch (_d) { }
134
- }
135
- })
136
- .catch((e) => {
137
- var _a;
138
- (0, logging_1.logMessage)(environment, () => ({
139
- kind: 'ReceivedNetworkError',
140
- networkRequestId: myNetworkRequestId,
141
- error: e,
142
- }));
143
- try {
144
- (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
145
- }
146
- catch (_b) { }
147
- if (status.kind === 'UndisposedIncomplete') {
148
- status =
149
- revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, null);
150
- }
151
- throw e;
152
- });
153
- const wrapper = (0, PromiseWrapper_1.wrapPromise)(promise);
154
- const response = [
155
- wrapper,
156
- () => {
157
- if (status.kind === 'UndisposedIncomplete') {
158
- status =
159
- revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, null);
160
- }
161
- if (status.kind !== 'Disposed') {
162
- status = unretainAndGarbageCollect(environment, status);
163
- }
164
- },
165
- ];
166
- return response;
38
+ const myNetworkRequestId = networkRequestId + "";
39
+ networkRequestId++;
40
+ let status = {
41
+ kind: "UndisposedIncomplete",
42
+ retainedQuery: fetchNormalizationAstAndRetainArtifact(environment, artifact, variables),
43
+ optimistic: fetchOptions?.optimisticNetworkResponse != null ? makeOptimisticUpdate(environment, artifact, variables, fetchOptions?.optimisticNetworkResponse) : null
44
+ };
45
+ require_logging.logMessage(environment, () => ({
46
+ kind: "MakeNetworkRequest",
47
+ artifact,
48
+ variables,
49
+ networkRequestId: myNetworkRequestId
50
+ }));
51
+ return [require_PromiseWrapper.wrapPromise(Promise.all([
52
+ environment.networkFunction(artifact.networkRequestInfo.operation, variables),
53
+ status.retainedQuery.normalizationAst.promise,
54
+ readerWithRefetchQueries?.promise
55
+ ]).then(([networkResponse, normalizationAst, readerWithRefetchQueries$1]) => {
56
+ require_logging.logMessage(environment, () => ({
57
+ kind: "ReceivedNetworkResponse",
58
+ networkResponse,
59
+ networkRequestId: myNetworkRequestId
60
+ }));
61
+ if (networkResponse.errors != null) {
62
+ try {
63
+ fetchOptions?.onError?.();
64
+ } catch {}
65
+ throw new Error("Network response had errors", { cause: networkResponse });
66
+ }
67
+ const root = {
68
+ __link: require_IsographEnvironment.ROOT_ID,
69
+ __typename: artifact.concreteType
70
+ };
71
+ if (status.kind === "UndisposedIncomplete") if (status.optimistic != null) status = revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, (storeLayer) => require_cache.normalizeData(environment, storeLayer, normalizationAst.selections, networkResponse.data ?? {}, variables, root, /* @__PURE__ */ new Map()));
72
+ else {
73
+ const encounteredIds = /* @__PURE__ */ new Map();
74
+ environment.store = require_optimisticProxy.addNetworkResponseStoreLayer(environment.store);
75
+ require_cache.normalizeData(environment, environment.store, normalizationAst.selections, networkResponse.data ?? {}, variables, root, encounteredIds);
76
+ require_logging.logMessage(environment, () => ({
77
+ kind: "AfterNormalization",
78
+ store: environment.store,
79
+ encounteredIds
80
+ }));
81
+ require_subscribe.callSubscriptions(environment, encounteredIds);
82
+ status = {
83
+ kind: "UndisposedComplete",
84
+ retainedQuery: status.retainedQuery
85
+ };
86
+ }
87
+ const onComplete = fetchOptions?.onComplete;
88
+ if (onComplete != null) {
89
+ let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries$1);
90
+ try {
91
+ onComplete(data);
92
+ } catch {}
93
+ }
94
+ }).catch((e) => {
95
+ require_logging.logMessage(environment, () => ({
96
+ kind: "ReceivedNetworkError",
97
+ networkRequestId: myNetworkRequestId,
98
+ error: e
99
+ }));
100
+ try {
101
+ fetchOptions?.onError?.();
102
+ } catch {}
103
+ if (status.kind === "UndisposedIncomplete") status = revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, null);
104
+ throw e;
105
+ })), () => {
106
+ if (status.kind === "UndisposedIncomplete") status = revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, null);
107
+ if (status.kind !== "Disposed") status = unretainAndGarbageCollect(environment, status);
108
+ }];
167
109
  }
168
110
  function readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries) {
169
- // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
170
- // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
171
- // This is awkward, since we don't express that in the types of the parameters
172
- // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).
173
- //
174
- // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.
175
- if (artifact.kind === 'Entrypoint') {
176
- // TODO this is a smell!
177
- const fakeNetworkRequest = (0, PromiseWrapper_1.wrapResolvedValue)(undefined);
178
- // TODO this is a smell — we know the network response is not in flight,
179
- // so we don't really care!
180
- const fakeNetworkRequestOptions = {
181
- suspendIfInFlight: false,
182
- throwOnNetworkError: false,
183
- };
184
- const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
185
- const fragment = {
186
- kind: 'FragmentReference',
187
- // TODO this smells.
188
- readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)(resolvedReaderWithRefetchQueries),
189
- fieldName: resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
190
- readerArtifactKind: resolvedReaderWithRefetchQueries.readerArtifact.kind,
191
- root,
192
- variables,
193
- networkRequest: fakeNetworkRequest,
194
- };
195
- const fragmentResult = (0, read_1.readButDoNotEvaluate)(environment, fragment, fakeNetworkRequestOptions).item;
196
- const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
197
- switch (readerArtifact.kind) {
198
- case 'ComponentReaderArtifact': {
199
- // @ts-expect-error We should find a way to encode this in the type system:
200
- // if we have a ComponentReaderArtifact, we will necessarily have a
201
- // TClientFieldValue which is a React.FC<...>
202
- return (0, componentCache_1.getOrCreateCachedComponent)(environment, {
203
- kind: 'FragmentReference',
204
- readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
205
- kind: 'ReaderWithRefetchQueries',
206
- readerArtifact: readerArtifact,
207
- nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries,
208
- }),
209
- fieldName: readerArtifact.fieldName,
210
- readerArtifactKind: readerArtifact.kind,
211
- root,
212
- variables,
213
- networkRequest: fakeNetworkRequest,
214
- }, fakeNetworkRequestOptions);
215
- }
216
- case 'EagerReaderArtifact': {
217
- return readerArtifact.resolver(Object.assign({ data: fragmentResult, parameters: variables }, (readerArtifact.hasUpdatable
218
- ? {
219
- startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragment, fakeNetworkRequestOptions),
220
- }
221
- : undefined)));
222
- }
223
- default: {
224
- const _ = readerArtifact;
225
- _;
226
- throw new Error('Expected case');
227
- }
228
- }
229
- }
230
- return null;
111
+ if (artifact.kind === "Entrypoint") {
112
+ const fakeNetworkRequest = require_PromiseWrapper.wrapResolvedValue(void 0);
113
+ const fakeNetworkRequestOptions = {
114
+ suspendIfInFlight: false,
115
+ throwOnNetworkError: false
116
+ };
117
+ const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
118
+ const fragment = {
119
+ kind: "FragmentReference",
120
+ readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue(resolvedReaderWithRefetchQueries),
121
+ fieldName: resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
122
+ readerArtifactKind: resolvedReaderWithRefetchQueries.readerArtifact.kind,
123
+ root,
124
+ variables,
125
+ networkRequest: fakeNetworkRequest
126
+ };
127
+ const fragmentResult = require_read.readButDoNotEvaluate(environment, fragment, fakeNetworkRequestOptions).item;
128
+ const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
129
+ switch (readerArtifact.kind) {
130
+ case "ComponentReaderArtifact": return require_componentCache.getOrCreateCachedComponent(environment, {
131
+ kind: "FragmentReference",
132
+ readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue({
133
+ kind: "ReaderWithRefetchQueries",
134
+ readerArtifact,
135
+ nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries
136
+ }),
137
+ fieldName: readerArtifact.fieldName,
138
+ readerArtifactKind: readerArtifact.kind,
139
+ root,
140
+ variables,
141
+ networkRequest: fakeNetworkRequest
142
+ }, fakeNetworkRequestOptions);
143
+ case "EagerReaderArtifact": return readerArtifact.resolver({
144
+ data: fragmentResult,
145
+ parameters: variables,
146
+ ...readerArtifact.hasUpdatable ? { startUpdate: require_startUpdate.getOrCreateCachedStartUpdate(environment, fragment, fakeNetworkRequestOptions) } : void 0
147
+ });
148
+ }
149
+ }
150
+ return null;
231
151
  }
232
152
  function fetchNormalizationAstAndRetainArtifact(environment, artifact, variables) {
233
- const normalizationAst = artifact.networkRequestInfo.normalizationAst.kind === 'NormalizationAst'
234
- ? (0, PromiseWrapper_1.wrapResolvedValue)(artifact.networkRequestInfo.normalizationAst)
235
- : (0, PromiseWrapper_1.wrapPromise)(artifact.networkRequestInfo.normalizationAst.loader());
236
- const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
237
- const retainedQuery = {
238
- normalizationAst: normalizationAst,
239
- variables,
240
- root,
241
- };
242
- (0, garbageCollection_1.retainQuery)(environment, retainedQuery);
243
- return retainedQuery;
153
+ const retainedQuery = {
154
+ normalizationAst: artifact.networkRequestInfo.normalizationAst.kind === "NormalizationAst" ? require_PromiseWrapper.wrapResolvedValue(artifact.networkRequestInfo.normalizationAst) : require_PromiseWrapper.wrapPromise(artifact.networkRequestInfo.normalizationAst.loader()),
155
+ variables,
156
+ root: {
157
+ __link: require_IsographEnvironment.ROOT_ID,
158
+ __typename: artifact.concreteType
159
+ }
160
+ };
161
+ require_garbageCollection.retainQuery(environment, retainedQuery);
162
+ return retainedQuery;
244
163
  }
245
164
  function makeOptimisticUpdate(environment, artifact, variables, optimisticNetworkResponse) {
246
- const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
247
- if (artifact.networkRequestInfo.normalizationAst.kind ===
248
- 'NormalizationAstLoader') {
249
- throw new Error('Using lazy loaded normalizationAst with optimisticNetworkResponse is not supported.');
250
- }
251
- const encounteredIds = new Map();
252
- const optimistic = (environment.store =
253
- (0, optimisticProxy_1.addOptimisticNetworkResponseStoreLayer)(environment.store));
254
- (0, cache_1.normalizeData)(environment, environment.store, artifact.networkRequestInfo.normalizationAst.selections, optimisticNetworkResponse, variables, root, encounteredIds);
255
- (0, logging_1.logMessage)(environment, () => ({
256
- kind: 'AfterNormalization',
257
- store: environment.store,
258
- encounteredIds: encounteredIds,
259
- }));
260
- (0, cache_1.callSubscriptions)(environment, encounteredIds);
261
- return optimistic;
165
+ const root = {
166
+ __link: require_IsographEnvironment.ROOT_ID,
167
+ __typename: artifact.concreteType
168
+ };
169
+ if (artifact.networkRequestInfo.normalizationAst.kind === "NormalizationAstLoader") throw new Error("Using lazy loaded normalizationAst with optimisticNetworkResponse is not supported.");
170
+ const encounteredIds = /* @__PURE__ */ new Map();
171
+ const optimistic = environment.store = require_optimisticProxy.addOptimisticNetworkResponseStoreLayer(environment.store);
172
+ require_cache.normalizeData(environment, environment.store, artifact.networkRequestInfo.normalizationAst.selections, optimisticNetworkResponse, variables, root, encounteredIds);
173
+ require_logging.logMessage(environment, () => ({
174
+ kind: "AfterNormalization",
175
+ store: environment.store,
176
+ encounteredIds
177
+ }));
178
+ require_subscribe.callSubscriptions(environment, encounteredIds);
179
+ return optimistic;
262
180
  }
263
- function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData) {
264
- if (status.optimistic) {
265
- (0, optimisticProxy_1.revertOptimisticStoreLayerAndMaybeReplace)(environment, status.optimistic, normalizeData);
266
- }
267
- return {
268
- kind: 'UndisposedComplete',
269
- retainedQuery: status.retainedQuery,
270
- };
181
+ function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData$1) {
182
+ if (status.optimistic != null) require_optimisticProxy.revertOptimisticStoreLayerAndMaybeReplace(environment, status.optimistic, normalizeData$1);
183
+ return {
184
+ kind: "UndisposedComplete",
185
+ retainedQuery: status.retainedQuery
186
+ };
271
187
  }
272
188
  function unretainAndGarbageCollect(environment, status) {
273
- const didUnretainSomeQuery = (0, garbageCollection_1.unretainQuery)(environment, status.retainedQuery);
274
- if (didUnretainSomeQuery) {
275
- (0, garbageCollection_1.garbageCollectEnvironment)(environment);
276
- }
277
- return {
278
- kind: 'Disposed',
279
- };
189
+ if (require_garbageCollection.unretainQuery(environment, status.retainedQuery)) require_garbageCollection.garbageCollectEnvironment(environment);
190
+ return { kind: "Disposed" };
280
191
  }
192
+
193
+ //#endregion
194
+ exports.makeNetworkRequest = makeNetworkRequest;
195
+ exports.maybeMakeNetworkRequest = maybeMakeNetworkRequest;
196
+ exports.retainQueryWithoutMakingNetworkRequest = retainQueryWithoutMakingNetworkRequest;