@isograph/react 0.4.3 → 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 (327) hide show
  1. package/.turbo/turbo-compile-libs.log +10 -3
  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 -27
  6. package/dist/core/FragmentReference.d.ts.map +1 -1
  7. package/dist/core/FragmentReference.js +8 -6
  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 +77 -72
  13. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  14. package/dist/core/IsographEnvironment.js +62 -59
  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 +27 -18
  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 +18 -1
  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 -34
  34. package/dist/core/cache.d.ts.map +1 -1
  35. package/dist/core/cache.js +210 -516
  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 +24 -18
  41. package/dist/core/check.d.ts.map +1 -1
  42. package/dist/core/check.js +80 -124
  43. package/dist/core/check.mjs +84 -0
  44. package/dist/core/check.mjs.map +1 -0
  45. package/dist/core/componentCache.js +10 -34
  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 -68
  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 -10
  58. package/dist/core/garbageCollection.d.ts.map +1 -1
  59. package/dist/core/garbageCollection.js +82 -99
  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 +78 -60
  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 -8
  75. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  76. package/dist/core/makeNetworkRequest.js +188 -195
  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 +43 -0
  82. package/dist/core/optimisticProxy.d.ts.map +1 -0
  83. package/dist/core/optimisticProxy.js +273 -0
  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 -27
  89. package/dist/core/read.d.ts.map +1 -1
  90. package/dist/core/read.js +438 -618
  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 -74
  96. package/dist/core/reader.d.ts.map +1 -1
  97. package/dist/core/startUpdate.js +118 -156
  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 -68
  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 +10 -8
  128. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  129. package/dist/loadable-hooks/useClientSideDefer.js +14 -12
  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 +27 -21
  135. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  136. package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -158
  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 -7
  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 -13
  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 +20 -11
  184. package/dist/react/LoadableFieldReader.d.ts.map +1 -1
  185. package/dist/react/LoadableFieldReader.js +13 -8
  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 +21 -12
  191. package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
  192. package/dist/react/LoadableFieldRenderer.js +13 -35
  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 -7
  215. package/dist/react/useImperativeReference.d.ts.map +1 -1
  216. package/dist/react/useImperativeReference.js +34 -32
  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 -5
  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 -39
  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 -39
  245. package/dist/react/useResult.mjs +30 -0
  246. package/dist/react/useResult.mjs.map +1 -0
  247. package/package.json +26 -19
  248. package/src/core/FragmentReference.ts +13 -7
  249. package/src/core/IsographEnvironment.ts +80 -21
  250. package/src/core/PromiseWrapper.ts +14 -7
  251. package/src/core/areEqualWithDeepComparison.ts +2 -18
  252. package/src/core/brand.ts +18 -0
  253. package/src/core/cache.ts +62 -332
  254. package/src/core/check.ts +30 -26
  255. package/src/core/componentCache.ts +11 -44
  256. package/src/core/entrypoint.ts +50 -9
  257. package/src/core/garbageCollection.ts +81 -28
  258. package/src/core/getOrCreateCacheForArtifact.ts +86 -0
  259. package/src/core/logging.ts +25 -13
  260. package/src/core/makeNetworkRequest.ts +320 -94
  261. package/src/core/optimisticProxy.ts +544 -0
  262. package/src/core/read.ts +251 -198
  263. package/src/core/reader.ts +18 -17
  264. package/src/core/startUpdate.ts +47 -36
  265. package/src/core/subscribe.ts +189 -0
  266. package/src/core/util.ts +26 -0
  267. package/src/core/writeData.ts +79 -0
  268. package/src/index.ts +6 -4
  269. package/src/loadable-hooks/useClientSideDefer.ts +80 -30
  270. package/src/loadable-hooks/useConnectionSpecPagination.ts +54 -35
  271. package/src/loadable-hooks/useImperativeLoadableField.ts +5 -5
  272. package/src/loadable-hooks/useSkipLimitPagination.ts +22 -21
  273. package/src/react/FragmentReader.tsx +3 -1
  274. package/src/react/FragmentRenderer.tsx +8 -1
  275. package/src/react/IsographEnvironmentProvider.tsx +2 -1
  276. package/src/react/LoadableFieldReader.tsx +125 -16
  277. package/src/react/LoadableFieldRenderer.tsx +124 -16
  278. package/src/react/createIsographEnvironment.ts +23 -0
  279. package/src/react/maybeUnwrapNetworkRequest.ts +17 -0
  280. package/src/react/useImperativeReference.ts +25 -15
  281. package/src/react/useLazyReference.ts +20 -10
  282. package/src/react/useReadAndSubscribe.ts +53 -12
  283. package/src/react/useRerenderOnChange.ts +3 -3
  284. package/src/react/useResult.ts +15 -35
  285. package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +1 -1
  286. package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +3 -1
  287. package/src/tests/__isograph/Query/linkedUpdate/raw_response_type.ts +13 -0
  288. package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +1 -1
  289. package/src/tests/__isograph/Query/meName/entrypoint.ts +3 -1
  290. package/src/tests/__isograph/Query/meName/raw_response_type.ts +7 -0
  291. package/src/tests/__isograph/Query/meName/resolver_reader.ts +1 -1
  292. package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +3 -1
  293. package/src/tests/__isograph/Query/meNameSuccessor/raw_response_type.ts +14 -0
  294. package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +1 -1
  295. package/src/tests/__isograph/Query/nodeField/entrypoint.ts +3 -1
  296. package/src/tests/__isograph/Query/nodeField/raw_response_type.ts +7 -0
  297. package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +1 -1
  298. package/src/tests/__isograph/Query/normalizeUndefinedField/entrypoint.ts +33 -0
  299. package/src/tests/__isograph/Query/normalizeUndefinedField/normalization_ast.ts +25 -0
  300. package/src/tests/__isograph/Query/normalizeUndefinedField/output_type.ts +3 -0
  301. package/src/tests/__isograph/Query/normalizeUndefinedField/param_type.ts +9 -0
  302. package/src/tests/__isograph/Query/normalizeUndefinedField/query_text.ts +6 -0
  303. package/src/tests/__isograph/Query/normalizeUndefinedField/raw_response_type.ts +7 -0
  304. package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +38 -0
  305. package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +3 -1
  306. package/src/tests/__isograph/Query/startUpdate/raw_response_type.ts +8 -0
  307. package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +1 -1
  308. package/src/tests/__isograph/Query/subquery/entrypoint.ts +3 -1
  309. package/src/tests/__isograph/Query/subquery/raw_response_type.ts +9 -0
  310. package/src/tests/__isograph/Query/subquery/resolver_reader.ts +1 -1
  311. package/src/tests/__isograph/iso.ts +11 -1
  312. package/src/tests/garbageCollection.test.ts +10 -10
  313. package/src/tests/meNameSuccessor.ts +7 -4
  314. package/src/tests/nodeQuery.ts +6 -4
  315. package/src/tests/normalizeData.test.ts +94 -18
  316. package/src/tests/optimisticProxy.test.ts +862 -0
  317. package/src/tests/startUpdate.test.ts +11 -11
  318. package/vitest.config.ts +5 -0
  319. package/dist/core/areEqualWithDeepComparison.d.ts +0 -3
  320. package/dist/core/areEqualWithDeepComparison.d.ts.map +0 -1
  321. package/dist/core/brand.js +0 -2
  322. package/dist/core/componentCache.d.ts +0 -5
  323. package/dist/core/componentCache.d.ts.map +0 -1
  324. package/dist/core/reader.js +0 -2
  325. package/dist/core/startUpdate.d.ts +0 -8
  326. package/dist/core/startUpdate.d.ts.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.d.ts","names":[],"sources":["../../src/core/logging.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AA8BA;;;;;;;;;;AA6BiB,KA7BL,UAAA,GA6BK;EAgBL,IAAA,EAAA,kBAAA;EACO,gBAAA,EA3CK,qBA2CL;EAEF,eAAA,EA5CM,qBA4CN;EACA,SAAA,EA5CA,SA4CA;CAID,GAAA;EAEJ,IAAA,EAAA,oBAAA;EAQE,KAAA,EAtDD,UAsDC;EAWI,cAAA,EAhEI,cAgEJ;CAAc,GAAA;EAOpB,IAAA,EAAA,mBAAW;EAGX,iBAAA,EAtEa,iBAuElB,CAAA,GAAA,EAAA,GAAA,CAAW;EAGF,GAAA,EAAA,MAAA;EAcA,GAAA,EAAA,MAAA;EACD,WAAA,EAAA,OAAA;CACR,GAAA;EACJ,IAAA,EAAA,qBAAA;EAAS,aAAA,EAAA,MAAA;YAnFI;;;YAKN,oCACA;aACO;;;;;;;;;;;;QAgBL;eACO;;aAEF;aACA;;;YAID;;QAEJ;;;;;;UAQE;;;;;;;;cAWI;;;;;KAON,WAAA,gBAA2B;KAG3B,kBAAA;OACL;;iBAGS,UAAA,cACD,uCACK;iBAYJ,cAAA,cACD,0BACR,cACJ"}
@@ -1,22 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logMessage = logMessage;
4
- exports.registerLogger = registerLogger;
1
+
2
+ //#region src/core/logging.ts
5
3
  function logMessage(environment, getMessage) {
6
- if (environment.loggers.size > 0) {
7
- const message = getMessage();
8
- for (const logger of environment.loggers) {
9
- try {
10
- logger.log(message);
11
- }
12
- catch (_a) { }
13
- }
14
- }
4
+ if (environment.loggers.size > 0) {
5
+ const message = getMessage();
6
+ for (const logger of environment.loggers) try {
7
+ logger.log(message);
8
+ } catch {}
9
+ }
15
10
  }
16
11
  function registerLogger(environment, log) {
17
- const wrapped = { log };
18
- environment.loggers.add(wrapped);
19
- return () => {
20
- environment.loggers.delete(wrapped);
21
- };
12
+ const wrapped = { log };
13
+ environment.loggers.add(wrapped);
14
+ return () => {
15
+ environment.loggers.delete(wrapped);
16
+ };
22
17
  }
18
+
19
+ //#endregion
20
+ exports.logMessage = logMessage;
21
+ exports.registerLogger = registerLogger;
@@ -0,0 +1,20 @@
1
+ //#region src/core/logging.ts
2
+ function logMessage(environment, getMessage) {
3
+ if (environment.loggers.size > 0) {
4
+ const message = getMessage();
5
+ for (const logger of environment.loggers) try {
6
+ logger.log(message);
7
+ } catch {}
8
+ }
9
+ }
10
+ function registerLogger(environment, log) {
11
+ const wrapped = { log };
12
+ environment.loggers.add(wrapped);
13
+ return () => {
14
+ environment.loggers.delete(wrapped);
15
+ };
16
+ }
17
+
18
+ //#endregion
19
+ export { logMessage, registerLogger };
20
+ //# sourceMappingURL=logging.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.mjs","names":[],"sources":["../../src/core/logging.ts"],"sourcesContent":["import type { CleanupFn } from '@isograph/disposable-types';\nimport type { NetworkResponseObject, EncounteredIds } from './cache';\nimport type { CheckResult } from './check';\nimport type {\n IsographEntrypoint,\n RefetchQueryNormalizationArtifact,\n NormalizationAstNodes,\n} from './entrypoint';\nimport type { FragmentReference, Variables } from './FragmentReference';\nimport type {\n IsographEnvironment,\n StoreRecord,\n StoreLink,\n} from './IsographEnvironment';\nimport type { ReadDataResult } from './read';\nimport type { Arguments } from './util';\nimport type { StoreLayer } from './optimisticProxy';\n\n/**\n * Note: these types are unstable. We will add and remove items from this enum\n * and add and remove fields. Please do not rely on the specifics here (for now).\n *\n * Goals include:\n * - convenient debugging for Isograph developers\n * - eventual support for the Isograph devtools\n *\n * In some cases (e.g. in `AfterNormalization`), we include large objects and thus\n * prevent them from getting garbage collected (if the log message is printed).\n * Especially in cases like that, we intend to remove those!\n */\nexport type LogMessage =\n | {\n kind: 'AboutToNormalize';\n normalizationAst: NormalizationAstNodes;\n networkResponse: NetworkResponseObject;\n variables: Variables;\n }\n | {\n kind: 'AfterNormalization';\n store: StoreLayer;\n encounteredIds: EncounteredIds;\n }\n | {\n kind: 'DeepEqualityCheck';\n fragmentReference: FragmentReference<any, any>;\n old: object;\n new: object;\n deeplyEqual: boolean;\n }\n | {\n kind: 'ComponentRerendered';\n componentName: string;\n rootLink: StoreLink;\n }\n | {\n kind: 'MakeNetworkRequest';\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<any, any, any, any>;\n variables: Variables;\n networkRequestId: string;\n }\n | {\n kind: 'ReceivedNetworkResponse';\n // TODO should be object\n networkResponse: any;\n networkRequestId: string;\n }\n | {\n kind: 'ReceivedNetworkError';\n error: any;\n networkRequestId: string;\n }\n | {\n kind: 'MissingFieldHandlerCalled';\n root: StoreLink;\n storeRecord: StoreRecord;\n fieldName: string;\n arguments: Arguments | null;\n variables: Variables;\n }\n | {\n kind: 'DoneReading';\n response: ReadDataResult<any>;\n fieldName: string;\n root: StoreLink;\n }\n | {\n kind: 'NonEntrypointReceived';\n entrypoint: any;\n }\n | {\n kind: 'EnvironmentCheck';\n result: CheckResult;\n }\n | {\n kind: 'EnvironmentCreated';\n }\n | {\n kind: 'StartUpdateError';\n error: any;\n }\n | {\n kind: 'StartUpdateComplete';\n updatedIds: EncounteredIds;\n }\n | {\n kind: 'ErrorEncounteredInWithErrorHandling';\n error: any;\n };\n\nexport type LogFunction = (logMessage: LogMessage) => void;\n\n// wrapped so that items in the loggers set are unique.\nexport type WrappedLogFunction = {\n log: LogFunction;\n};\n\nexport function logMessage(\n environment: IsographEnvironment,\n getMessage: () => LogMessage,\n) {\n if (environment.loggers.size > 0) {\n const message = getMessage();\n for (const logger of environment.loggers) {\n try {\n logger.log(message);\n } catch {}\n }\n }\n}\n\nexport function registerLogger(\n environment: IsographEnvironment,\n log: LogFunction,\n): CleanupFn {\n const wrapped = { log };\n environment.loggers.add(wrapped);\n return () => {\n environment.loggers.delete(wrapped);\n };\n}\n"],"mappings":";AAsHA,SAAgB,WACd,aACA,YACA;AACA,KAAI,YAAY,QAAQ,OAAO,GAAG;EAChC,MAAM,UAAU,YAAY;AAC5B,OAAK,MAAM,UAAU,YAAY,QAC/B,KAAI;AACF,UAAO,IAAI,QAAQ;UACb;;;AAKd,SAAgB,eACd,aACA,KACW;CACX,MAAM,UAAU,EAAE,KAAK;AACvB,aAAY,QAAQ,IAAI,QAAQ;AAChC,cAAa;AACX,cAAY,QAAQ,OAAO,QAAQ"}
@@ -0,0 +1,13 @@
1
+ import { FetchOptions } from "./check.mjs";
2
+ import { AnyError, PromiseWrapper } from "./PromiseWrapper.mjs";
3
+ import { IsographEnvironment } from "./IsographEnvironment.mjs";
4
+ import { ExtractParameters, UnknownTReadFromStore } from "./FragmentReference.mjs";
5
+ import { NetworkResponseObject } from "./cache.mjs";
6
+ import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact } from "./entrypoint.mjs";
7
+ import { ItemCleanupPair } from "@isograph/disposable-types";
8
+
9
+ //#region src/core/makeNetworkRequest.d.ts
10
+ declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
11
+ //#endregion
12
+ export { makeNetworkRequest };
13
+ //# sourceMappingURL=makeNetworkRequest.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeNetworkRequest.d.mts","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA8JgB,iBAAA,kBAAkB,CAAA,uBACT,qBADS,EAAA,iBAAA,EAAA,0BAGN,gBAHM,GAGa,sBAHb,EAAA,yBAIP,qBAJO,CAAA,CAAA,WAAA,EAMnB,mBANmB,EAAA,QAAA,EAQ5B,iCAR4B,GAS5B,kBAT4B,CAU1B,cAV0B,EAW1B,iBAX0B,EAY1B,iBAZ0B,EAa1B,gBAb0B,CAAA,EAAA,SAAA,EAerB,iBAfqB,CAeH,cAfG,CAAA,EAAA,wBAAA,EAgBN,cAhBM,CAiB9B,wBAjB8B,CAiBL,cAjBK,EAiBW,iBAjBX,CAAA,CAAA,GAAA,IAAA,EAAA,YAAA,EAmBlB,YAnBkB,CAmBL,iBAnBK,EAmBc,gBAnBd,CAAA,GAAA,IAAA,CAAA,EAoB/B,eApB+B,CAoBf,cApBe,CAAA,IAAA,EAoBM,QApBN,CAAA,CAAA"}
@@ -1,9 +1,13 @@
1
- import { ItemCleanupPair } from '@isograph/disposable-types';
2
- import { FetchOptions } from './check';
3
- import { IsographEntrypoint, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact, type NormalizationAst, type NormalizationAstLoader } from './entrypoint';
4
- import { ExtractParameters, type UnknownTReadFromStore } from './FragmentReference';
5
- import { IsographEnvironment } from './IsographEnvironment';
6
- import { AnyError, PromiseWrapper } from './PromiseWrapper';
7
- export declare function maybeMakeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TArtifact extends RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact: TArtifact, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
8
- export declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TArtifact extends RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact: TArtifact, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
1
+ import { FetchOptions } from "./check.js";
2
+ import { AnyError, PromiseWrapper } from "./PromiseWrapper.js";
3
+ import { IsographEnvironment } from "./IsographEnvironment.js";
4
+ import { ExtractParameters, UnknownTReadFromStore } from "./FragmentReference.js";
5
+ import { NetworkResponseObject } from "./cache.js";
6
+ import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact } from "./entrypoint.js";
7
+ import { ItemCleanupPair } from "@isograph/disposable-types";
8
+
9
+ //#region src/core/makeNetworkRequest.d.ts
10
+ declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
11
+ //#endregion
12
+ export { makeNetworkRequest };
9
13
  //# sourceMappingURL=makeNetworkRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EAEjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAM1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,SAAS,SACL,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAC5E,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8CjD;AAeD,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,SAAS,SACL,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAC5E,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAgHjD"}
1
+ {"version":3,"file":"makeNetworkRequest.d.ts","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA8JgB,iBAAA,kBAAkB,CAAA,uBACT,qBADS,EAAA,iBAAA,EAAA,0BAGN,gBAHM,GAGa,sBAHb,EAAA,yBAIP,qBAJO,CAAA,CAAA,WAAA,EAMnB,mBANmB,EAAA,QAAA,EAQ5B,iCAR4B,GAS5B,kBAT4B,CAU1B,cAV0B,EAW1B,iBAX0B,EAY1B,iBAZ0B,EAa1B,gBAb0B,CAAA,EAAA,SAAA,EAerB,iBAfqB,CAeH,cAfG,CAAA,EAAA,wBAAA,EAgBN,cAhBM,CAiB9B,wBAjB8B,CAiBL,cAjBK,EAiBW,iBAjBX,CAAA,CAAA,GAAA,IAAA,EAAA,YAAA,EAmBlB,YAnBkB,CAmBL,iBAnBK,EAmBc,gBAnBd,CAAA,GAAA,IAAA,CAAA,EAoB/B,eApB+B,CAoBf,cApBe,CAAA,IAAA,EAoBM,QApBN,CAAA,CAAA"}
@@ -1,203 +1,196 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maybeMakeNetworkRequest = maybeMakeNetworkRequest;
4
- exports.makeNetworkRequest = makeNetworkRequest;
5
- const cache_1 = require("./cache");
6
- const check_1 = require("./check");
7
- const componentCache_1 = require("./componentCache");
8
- const garbageCollection_1 = require("./garbageCollection");
9
- const IsographEnvironment_1 = require("./IsographEnvironment");
10
- const logging_1 = require("./logging");
11
- const PromiseWrapper_1 = require("./PromiseWrapper");
12
- const read_1 = require("./read");
13
- 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
14
14
  let networkRequestId = 0;
15
15
  function maybeMakeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
16
- var _a;
17
- switch ((_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE) {
18
- case 'Yes': {
19
- return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
20
- }
21
- case 'No': {
22
- return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
23
- }
24
- case 'IfNecessary': {
25
- if (artifact.networkRequestInfo.normalizationAst.kind ===
26
- 'NormalizationAstLoader') {
27
- throw new Error('Using lazy loaded normalizationAst with shouldFetch: "IfNecessary" is not supported as it will lead to slower initial load time.');
28
- }
29
- const result = (0, check_1.check)(environment, artifact.networkRequestInfo.normalizationAst.selections, variables, {
30
- __link: IsographEnvironment_1.ROOT_ID,
31
- __typename: artifact.concreteType,
32
- });
33
- if (result.kind === 'EnoughData') {
34
- return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
35
- }
36
- else {
37
- return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
38
- }
39
- }
40
- }
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
+ }
41
27
  }
42
- function loadNormalizationAst(normalizationAst) {
43
- switch (normalizationAst.kind) {
44
- case 'NormalizationAst': {
45
- return normalizationAst;
46
- }
47
- case 'NormalizationAstLoader': {
48
- return normalizationAst.loader();
49
- }
50
- }
28
+ function retainQueryWithoutMakingNetworkRequest(environment, artifact, variables) {
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
+ }];
51
36
  }
52
37
  function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
53
- // TODO this should be a DataId and stored in the store
54
- const myNetworkRequestId = networkRequestId + '';
55
- networkRequestId++;
56
- (0, logging_1.logMessage)(environment, () => ({
57
- kind: 'MakeNetworkRequest',
58
- artifact,
59
- variables,
60
- networkRequestId: myNetworkRequestId,
61
- }));
62
- let status = {
63
- kind: 'UndisposedIncomplete',
64
- };
65
- // This should be an observable, not a promise
66
- const promise = Promise.all([
67
- environment.networkFunction(artifact.networkRequestInfo.operation, variables),
68
- loadNormalizationAst(artifact.networkRequestInfo.normalizationAst),
69
- readerWithRefetchQueries === null || readerWithRefetchQueries === void 0 ? void 0 : readerWithRefetchQueries.promise,
70
- ])
71
- .then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
72
- var _a, _b;
73
- (0, logging_1.logMessage)(environment, () => ({
74
- kind: 'ReceivedNetworkResponse',
75
- networkResponse,
76
- networkRequestId: myNetworkRequestId,
77
- }));
78
- if (networkResponse.errors != null) {
79
- try {
80
- (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
81
- }
82
- catch (_c) { }
83
- throw new Error('GraphQL network response had errors', {
84
- cause: networkResponse,
85
- });
86
- }
87
- const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
88
- if (status.kind === 'UndisposedIncomplete') {
89
- (0, cache_1.normalizeData)(environment, normalizationAst.selections, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, root);
90
- const retainedQuery = {
91
- normalizationAst: normalizationAst.selections,
92
- variables,
93
- root,
94
- };
95
- status = {
96
- kind: 'UndisposedComplete',
97
- retainedQuery,
98
- };
99
- (0, garbageCollection_1.retainQuery)(environment, retainedQuery);
100
- }
101
- const onComplete = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete;
102
- if (onComplete != null) {
103
- let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries);
104
- try {
105
- // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact
106
- // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,
107
- // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,
108
- // fetchOptions: FetchOptions<void> }).
109
- onComplete(data);
110
- }
111
- catch (_d) { }
112
- }
113
- })
114
- .catch((e) => {
115
- var _a;
116
- (0, logging_1.logMessage)(environment, () => ({
117
- kind: 'ReceivedNetworkError',
118
- networkRequestId: myNetworkRequestId,
119
- error: e,
120
- }));
121
- try {
122
- (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
123
- }
124
- catch (_b) { }
125
- throw e;
126
- });
127
- const wrapper = (0, PromiseWrapper_1.wrapPromise)(promise);
128
- const response = [
129
- wrapper,
130
- () => {
131
- if (status.kind === 'UndisposedComplete') {
132
- const didUnretainSomeQuery = (0, garbageCollection_1.unretainQuery)(environment, status.retainedQuery);
133
- if (didUnretainSomeQuery) {
134
- (0, garbageCollection_1.garbageCollectEnvironment)(environment);
135
- }
136
- }
137
- status = {
138
- kind: 'Disposed',
139
- };
140
- },
141
- ];
142
- 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
+ }];
143
109
  }
144
110
  function readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries) {
145
- // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
146
- // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
147
- // This is awkward, since we don't express that in the types of the parameters
148
- // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).
149
- //
150
- // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.
151
- if (artifact.kind === 'Entrypoint') {
152
- // TODO this is a smell!
153
- const fakeNetworkRequest = (0, PromiseWrapper_1.wrapResolvedValue)(undefined);
154
- // TODO this is a smell — we know the network response is not in flight,
155
- // so we don't really care!
156
- const fakeNetworkRequestOptions = {
157
- suspendIfInFlight: false,
158
- throwOnNetworkError: false,
159
- };
160
- const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
161
- const fragment = {
162
- kind: 'FragmentReference',
163
- // TODO this smells.
164
- readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)(resolvedReaderWithRefetchQueries),
165
- root,
166
- variables,
167
- networkRequest: fakeNetworkRequest,
168
- };
169
- const fragmentResult = (0, read_1.readButDoNotEvaluate)(environment, fragment, fakeNetworkRequestOptions).item;
170
- const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
171
- switch (readerArtifact.kind) {
172
- case 'ComponentReaderArtifact': {
173
- // @ts-expect-error We should find a way to encode this in the type system:
174
- // if we have a ComponentReaderArtifact, we will necessarily have a
175
- // TClientFieldValue which is a React.FC<...>
176
- return (0, componentCache_1.getOrCreateCachedComponent)(environment, readerArtifact.fieldName, {
177
- kind: 'FragmentReference',
178
- readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
179
- kind: 'ReaderWithRefetchQueries',
180
- readerArtifact: readerArtifact,
181
- nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries,
182
- }),
183
- root,
184
- variables,
185
- networkRequest: fakeNetworkRequest,
186
- }, fakeNetworkRequestOptions);
187
- }
188
- case 'EagerReaderArtifact': {
189
- return readerArtifact.resolver(Object.assign({ data: fragmentResult, parameters: variables }, (readerArtifact.hasUpdatable
190
- ? {
191
- startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragment, resolvedReaderWithRefetchQueries.readerArtifact.fieldName, fakeNetworkRequestOptions),
192
- }
193
- : undefined)));
194
- }
195
- default: {
196
- const _ = readerArtifact;
197
- _;
198
- throw new Error('Expected case');
199
- }
200
- }
201
- }
202
- 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;
151
+ }
152
+ function fetchNormalizationAstAndRetainArtifact(environment, artifact, variables) {
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;
163
+ }
164
+ function makeOptimisticUpdate(environment, artifact, variables, optimisticNetworkResponse) {
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;
203
180
  }
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
+ };
187
+ }
188
+ function unretainAndGarbageCollect(environment, status) {
189
+ if (require_garbageCollection.unretainQuery(environment, status.retainedQuery)) require_garbageCollection.garbageCollectEnvironment(environment);
190
+ return { kind: "Disposed" };
191
+ }
192
+
193
+ //#endregion
194
+ exports.makeNetworkRequest = makeNetworkRequest;
195
+ exports.maybeMakeNetworkRequest = maybeMakeNetworkRequest;
196
+ exports.retainQueryWithoutMakingNetworkRequest = retainQueryWithoutMakingNetworkRequest;