@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,114 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeObjectsUsingReaderAst = mergeObjectsUsingReaderAst;
1
+
2
+ //#region src/core/areEqualWithDeepComparison.ts
4
3
  function mergeUsingReaderAst(field, oldItem, newItem) {
5
- if (newItem === null) {
6
- return oldItem === null ? oldItem : newItem;
7
- }
8
- if (newItem === undefined) {
9
- return oldItem === undefined ? oldItem : newItem;
10
- }
11
- if (Array.isArray(newItem)) {
12
- if (!Array.isArray(oldItem)) {
13
- return newItem;
14
- }
15
- return mergeArraysUsingReaderAst(field, oldItem, newItem);
16
- }
17
- switch (field.kind) {
18
- case 'Scalar':
19
- return oldItem === newItem ? oldItem : newItem;
20
- case 'Linked':
21
- if (oldItem == null) {
22
- return newItem;
23
- }
24
- return mergeObjectsUsingReaderAst(field.selections, oldItem, newItem);
25
- default: {
26
- // Ensure we have covered all variants
27
- let _ = field;
28
- _;
29
- throw new Error('Unexpected case.');
30
- }
31
- }
4
+ if (newItem == null || oldItem == null) return newItem;
5
+ if (Array.isArray(newItem)) {
6
+ if (!Array.isArray(oldItem)) return newItem;
7
+ return mergeArraysUsingReaderAst(field, oldItem, newItem);
8
+ }
9
+ switch (field.kind) {
10
+ case "Scalar": return oldItem === newItem ? oldItem : newItem;
11
+ case "Linked":
12
+ if (oldItem == null) return newItem;
13
+ return mergeObjectsUsingReaderAst(field.selections, oldItem, newItem);
14
+ }
32
15
  }
33
16
  function mergeArraysUsingReaderAst(field, oldItems, newItems) {
34
- if (newItems.length !== oldItems.length) {
35
- return newItems;
36
- }
37
- let canRecycle = true;
38
- for (let i = 0; i < newItems.length; i++) {
39
- const mergedItem = mergeUsingReaderAst(field, oldItems[i], newItems[i]);
40
- if (mergedItem !== oldItems[i]) {
41
- canRecycle = false;
42
- }
43
- else {
44
- newItems[i] = mergedItem;
45
- }
46
- }
47
- return canRecycle ? oldItems : newItems;
17
+ if (newItems.length !== oldItems.length) return newItems;
18
+ let canRecycle = true;
19
+ for (let i = 0; i < newItems.length; i++) {
20
+ const mergedItem = mergeUsingReaderAst(field, oldItems[i], newItems[i]);
21
+ if (mergedItem !== oldItems[i]) canRecycle = false;
22
+ else newItems[i] = mergedItem;
23
+ }
24
+ return canRecycle ? oldItems : newItems;
48
25
  }
49
26
  function mergeObjectsUsingReaderAst(ast, oldItemObject, newItemObject) {
50
- var _a;
51
- let canRecycle = true;
52
- for (const field of ast) {
53
- switch (field.kind) {
54
- case 'Scalar':
55
- case 'Linked':
56
- if (field.kind === 'Linked' && field.refetchQueryIndex != null) {
57
- // client pointers are functions, so we can't merge them
58
- canRecycle = false;
59
- break;
60
- }
61
- const key = (_a = field.alias) !== null && _a !== void 0 ? _a : field.fieldName;
62
- // @ts-expect-error
63
- const oldValue = oldItemObject[key];
64
- // @ts-expect-error
65
- const newValue = newItemObject[key];
66
- const mergedValue = mergeUsingReaderAst(field, oldValue, newValue);
67
- if (mergedValue !== oldValue) {
68
- canRecycle = false;
69
- }
70
- else {
71
- // @ts-expect-error
72
- newItemObject[key] = mergedValue;
73
- }
74
- break;
75
- case 'Resolver': {
76
- const key = field.alias;
77
- // @ts-expect-error
78
- const oldValue = oldItemObject[key];
79
- // @ts-expect-error
80
- const newValue = newItemObject[key];
81
- if (oldValue !== newValue) {
82
- canRecycle = false;
83
- }
84
- break;
85
- }
86
- case 'Link': {
87
- const key = field.alias;
88
- // @ts-expect-error
89
- const oldValue = oldItemObject[key];
90
- // @ts-expect-error
91
- const newValue = newItemObject[key];
92
- if (oldValue.__link !== newValue.__link ||
93
- oldValue.__typename !== newValue.__typename) {
94
- canRecycle = false;
95
- }
96
- else {
97
- // @ts-expect-error
98
- newItemObject[key] = oldValue;
99
- }
100
- break;
101
- }
102
- case 'ImperativelyLoadedField':
103
- case 'LoadablySelectedField':
104
- break;
105
- default: {
106
- // Ensure we have covered all variants
107
- let _ = field;
108
- _;
109
- throw new Error('Unexpected case.');
110
- }
111
- }
112
- }
113
- return canRecycle ? oldItemObject : newItemObject;
27
+ let canRecycle = true;
28
+ for (const field of ast) switch (field.kind) {
29
+ case "Scalar":
30
+ case "Linked":
31
+ if (field.kind === "Linked" && field.refetchQueryIndex != null) {
32
+ canRecycle = false;
33
+ break;
34
+ }
35
+ const key = field.alias ?? field.fieldName;
36
+ const oldValue = oldItemObject[key];
37
+ const newValue = newItemObject[key];
38
+ const mergedValue = mergeUsingReaderAst(field, oldValue, newValue);
39
+ if (mergedValue !== oldValue) canRecycle = false;
40
+ else newItemObject[key] = mergedValue;
41
+ break;
42
+ case "Resolver": {
43
+ const key$1 = field.alias;
44
+ if (oldItemObject[key$1] !== newItemObject[key$1]) canRecycle = false;
45
+ break;
46
+ }
47
+ case "Link": {
48
+ const key$1 = field.alias;
49
+ const oldValue$1 = oldItemObject[key$1];
50
+ const newValue$1 = newItemObject[key$1];
51
+ if (oldValue$1.__link !== newValue$1.__link || oldValue$1.__typename !== newValue$1.__typename) canRecycle = false;
52
+ else newItemObject[key$1] = oldValue$1;
53
+ break;
54
+ }
55
+ case "ImperativelyLoadedField":
56
+ case "LoadablySelectedField": break;
57
+ }
58
+ return canRecycle ? oldItemObject : newItemObject;
114
59
  }
60
+
61
+ //#endregion
62
+ exports.mergeObjectsUsingReaderAst = mergeObjectsUsingReaderAst;
@@ -0,0 +1,62 @@
1
+ //#region src/core/areEqualWithDeepComparison.ts
2
+ function mergeUsingReaderAst(field, oldItem, newItem) {
3
+ if (newItem == null || oldItem == null) return newItem;
4
+ if (Array.isArray(newItem)) {
5
+ if (!Array.isArray(oldItem)) return newItem;
6
+ return mergeArraysUsingReaderAst(field, oldItem, newItem);
7
+ }
8
+ switch (field.kind) {
9
+ case "Scalar": return oldItem === newItem ? oldItem : newItem;
10
+ case "Linked":
11
+ if (oldItem == null) return newItem;
12
+ return mergeObjectsUsingReaderAst(field.selections, oldItem, newItem);
13
+ }
14
+ }
15
+ function mergeArraysUsingReaderAst(field, oldItems, newItems) {
16
+ if (newItems.length !== oldItems.length) return newItems;
17
+ let canRecycle = true;
18
+ for (let i = 0; i < newItems.length; i++) {
19
+ const mergedItem = mergeUsingReaderAst(field, oldItems[i], newItems[i]);
20
+ if (mergedItem !== oldItems[i]) canRecycle = false;
21
+ else newItems[i] = mergedItem;
22
+ }
23
+ return canRecycle ? oldItems : newItems;
24
+ }
25
+ function mergeObjectsUsingReaderAst(ast, oldItemObject, newItemObject) {
26
+ let canRecycle = true;
27
+ for (const field of ast) switch (field.kind) {
28
+ case "Scalar":
29
+ case "Linked":
30
+ if (field.kind === "Linked" && field.refetchQueryIndex != null) {
31
+ canRecycle = false;
32
+ break;
33
+ }
34
+ const key = field.alias ?? field.fieldName;
35
+ const oldValue = oldItemObject[key];
36
+ const newValue = newItemObject[key];
37
+ const mergedValue = mergeUsingReaderAst(field, oldValue, newValue);
38
+ if (mergedValue !== oldValue) canRecycle = false;
39
+ else newItemObject[key] = mergedValue;
40
+ break;
41
+ case "Resolver": {
42
+ const key$1 = field.alias;
43
+ if (oldItemObject[key$1] !== newItemObject[key$1]) canRecycle = false;
44
+ break;
45
+ }
46
+ case "Link": {
47
+ const key$1 = field.alias;
48
+ const oldValue$1 = oldItemObject[key$1];
49
+ const newValue$1 = newItemObject[key$1];
50
+ if (oldValue$1.__link !== newValue$1.__link || oldValue$1.__typename !== newValue$1.__typename) canRecycle = false;
51
+ else newItemObject[key$1] = oldValue$1;
52
+ break;
53
+ }
54
+ case "ImperativelyLoadedField":
55
+ case "LoadablySelectedField": break;
56
+ }
57
+ return canRecycle ? oldItemObject : newItemObject;
58
+ }
59
+
60
+ //#endregion
61
+ export { mergeObjectsUsingReaderAst };
62
+ //# sourceMappingURL=areEqualWithDeepComparison.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"areEqualWithDeepComparison.mjs","names":["key","oldValue: StoreLink","newValue: StoreLink","oldValue","newValue"],"sources":["../../src/core/areEqualWithDeepComparison.ts"],"sourcesContent":["import type { StoreLink } from './IsographEnvironment';\nimport type { ReaderAst, ReaderLinkedField, ReaderScalarField } from './reader';\n\nfunction mergeUsingReaderAst(\n field: ReaderScalarField | ReaderLinkedField,\n oldItem: unknown,\n newItem: unknown,\n): unknown {\n if (newItem == null || oldItem == null) {\n return newItem;\n }\n\n if (Array.isArray(newItem)) {\n if (!Array.isArray(oldItem)) {\n return newItem;\n }\n\n return mergeArraysUsingReaderAst(field, oldItem, newItem);\n }\n\n switch (field.kind) {\n case 'Scalar':\n return oldItem === newItem ? oldItem : newItem;\n case 'Linked':\n if (oldItem == null) {\n return newItem;\n }\n\n return mergeObjectsUsingReaderAst(field.selections, oldItem, newItem);\n }\n}\n\nfunction mergeArraysUsingReaderAst(\n field: ReaderScalarField | ReaderLinkedField,\n oldItems: ReadonlyArray<unknown>,\n newItems: Array<unknown>,\n): ReadonlyArray<unknown> {\n if (newItems.length !== oldItems.length) {\n return newItems;\n }\n\n let canRecycle = true;\n for (let i = 0; i < newItems.length; i++) {\n const mergedItem = mergeUsingReaderAst(field, oldItems[i], newItems[i]);\n if (mergedItem !== oldItems[i]) {\n canRecycle = false;\n } else {\n newItems[i] = mergedItem;\n }\n }\n\n return canRecycle ? oldItems : newItems;\n}\n\nexport function mergeObjectsUsingReaderAst(\n ast: ReaderAst<object>,\n oldItemObject: object,\n newItemObject: object,\n): object {\n let canRecycle = true;\n for (const field of ast) {\n switch (field.kind) {\n case 'Scalar':\n case 'Linked':\n if (field.kind === 'Linked' && field.refetchQueryIndex != null) {\n // client pointers are functions, so we can't merge them\n canRecycle = false;\n break;\n }\n const key = field.alias ?? field.fieldName;\n // @ts-expect-error\n const oldValue = oldItemObject[key];\n // @ts-expect-error\n const newValue = newItemObject[key];\n\n const mergedValue = mergeUsingReaderAst(field, oldValue, newValue);\n if (mergedValue !== oldValue) {\n canRecycle = false;\n } else {\n // @ts-expect-error\n newItemObject[key] = mergedValue;\n }\n break;\n case 'Resolver': {\n const key = field.alias;\n // @ts-expect-error\n const oldValue = oldItemObject[key];\n // @ts-expect-error\n const newValue = newItemObject[key];\n\n if (oldValue !== newValue) {\n canRecycle = false;\n }\n break;\n }\n case 'Link': {\n const key = field.alias;\n // @ts-expect-error\n const oldValue: StoreLink = oldItemObject[key];\n // @ts-expect-error\n const newValue: StoreLink = newItemObject[key];\n\n if (\n oldValue.__link !== newValue.__link ||\n oldValue.__typename !== newValue.__typename\n ) {\n canRecycle = false;\n } else {\n // @ts-expect-error\n newItemObject[key] = oldValue;\n }\n break;\n }\n case 'ImperativelyLoadedField':\n case 'LoadablySelectedField':\n break;\n }\n }\n\n return canRecycle ? oldItemObject : newItemObject;\n}\n"],"mappings":";AAGA,SAAS,oBACP,OACA,SACA,SACS;AACT,KAAI,WAAW,QAAQ,WAAW,KAChC,QAAO;AAGT,KAAI,MAAM,QAAQ,QAAQ,EAAE;AAC1B,MAAI,CAAC,MAAM,QAAQ,QAAQ,CACzB,QAAO;AAGT,SAAO,0BAA0B,OAAO,SAAS,QAAQ;;AAG3D,SAAQ,MAAM,MAAd;EACE,KAAK,SACH,QAAO,YAAY,UAAU,UAAU;EACzC,KAAK;AACH,OAAI,WAAW,KACb,QAAO;AAGT,UAAO,2BAA2B,MAAM,YAAY,SAAS,QAAQ;;;AAI3E,SAAS,0BACP,OACA,UACA,UACwB;AACxB,KAAI,SAAS,WAAW,SAAS,OAC/B,QAAO;CAGT,IAAI,aAAa;AACjB,MAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,aAAa,oBAAoB,OAAO,SAAS,IAAI,SAAS,GAAG;AACvE,MAAI,eAAe,SAAS,GAC1B,cAAa;MAEb,UAAS,KAAK;;AAIlB,QAAO,aAAa,WAAW;;AAGjC,SAAgB,2BACd,KACA,eACA,eACQ;CACR,IAAI,aAAa;AACjB,MAAK,MAAM,SAAS,IAClB,SAAQ,MAAM,MAAd;EACE,KAAK;EACL,KAAK;AACH,OAAI,MAAM,SAAS,YAAY,MAAM,qBAAqB,MAAM;AAE9D,iBAAa;AACb;;GAEF,MAAM,MAAM,MAAM,SAAS,MAAM;GAEjC,MAAM,WAAW,cAAc;GAE/B,MAAM,WAAW,cAAc;GAE/B,MAAM,cAAc,oBAAoB,OAAO,UAAU,SAAS;AAClE,OAAI,gBAAgB,SAClB,cAAa;OAGb,eAAc,OAAO;AAEvB;EACF,KAAK,YAAY;GACf,MAAMA,QAAM,MAAM;AAMlB,OAJiB,cAAcA,WAEd,cAAcA,OAG7B,cAAa;AAEf;;EAEF,KAAK,QAAQ;GACX,MAAMA,QAAM,MAAM;GAElB,MAAMC,aAAsB,cAAcD;GAE1C,MAAME,aAAsB,cAAcF;AAE1C,OACEG,WAAS,WAAWC,WAAS,UAC7BD,WAAS,eAAeC,WAAS,WAEjC,cAAa;OAGb,eAAcJ,SAAOG;AAEvB;;EAEF,KAAK;EACL,KAAK,wBACH;;AAIN,QAAO,aAAa,gBAAgB"}
@@ -0,0 +1,19 @@
1
+ //#region src/core/brand.d.ts
2
+ type Brand<BaseType, Brand$1 extends symbol | string> = infer _ extends Brand$1 ? BaseType : never;
3
+ declare const PhantomDataBrand: unique symbol;
4
+ /**
5
+ * A phantom data type is one that shouldn't show up at runtime, but is checked statically (and only) at compile time.
6
+ * Data types can use extra properties to act as markers or to perform type checking at compile time. These extra properties should hold no storage values, and have no runtime behavior.
7
+ *
8
+ * ```tsx
9
+ * type MyType<T> = {
10
+ * readonly value: number;
11
+ * readonly '~T'?: PhantomData<T>;
12
+ * }
13
+ * ```
14
+ */
15
+ type PhantomData<T> = Brand<T, typeof PhantomDataBrand>;
16
+ type Contravariant<T> = (_: T) => void;
17
+ //#endregion
18
+ export { Brand, Contravariant, PhantomData };
19
+ //# sourceMappingURL=brand.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.mts","names":[],"sources":["../../src/core/brand.ts"],"sourcesContent":[],"mappings":";KAaY,mEAIQ,UAAQ;AAJ5B,cAMc,gBANG,EAAA,OAAA,MAIG;AAAyB;AAc7C;;;;;AAIA;;;;;KAJY,iBAAiB,MAAM,UAAU;KAIjC,uBAAuB"}
@@ -1,2 +1,19 @@
1
- export type Brand<BaseType, Brand extends symbol | string> = infer _ extends Brand ? BaseType : never;
1
+ //#region src/core/brand.d.ts
2
+ type Brand<BaseType, Brand$1 extends symbol | string> = infer _ extends Brand$1 ? BaseType : never;
3
+ declare const PhantomDataBrand: unique symbol;
4
+ /**
5
+ * A phantom data type is one that shouldn't show up at runtime, but is checked statically (and only) at compile time.
6
+ * Data types can use extra properties to act as markers or to perform type checking at compile time. These extra properties should hold no storage values, and have no runtime behavior.
7
+ *
8
+ * ```tsx
9
+ * type MyType<T> = {
10
+ * readonly value: number;
11
+ * readonly '~T'?: PhantomData<T>;
12
+ * }
13
+ * ```
14
+ */
15
+ type PhantomData<T> = Brand<T, typeof PhantomDataBrand>;
16
+ type Contravariant<T> = (_: T) => void;
17
+ //#endregion
18
+ export { Brand, Contravariant, PhantomData };
2
19
  //# sourceMappingURL=brand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/core/brand.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,KAAK,CACf,QAAQ,EACR,KAAK,SAAS,MAAM,GAAG,MAAM,IAE3B,MAAM,CAAC,SAAS,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"brand.d.ts","names":[],"sources":["../../src/core/brand.ts"],"sourcesContent":[],"mappings":";KAaY,mEAIQ,UAAQ;AAJ5B,cAMc,gBANG,EAAA,OAAA,MAIG;AAAyB;AAc7C;;;;;AAIA;;;;;KAJY,iBAAiB,MAAM,UAAU;KAIjC,uBAAuB"}
@@ -0,0 +1,20 @@
1
+ import "./reader.mjs";
2
+ import { StoreLayerWithData } from "./optimisticProxy.mjs";
3
+ import { DataId, IsographEnvironment, StoreLink, TypeName } from "./IsographEnvironment.mjs";
4
+ import { Variables } from "./FragmentReference.mjs";
5
+ import { NormalizationAstNodes } from "./entrypoint.mjs";
6
+ import { ParentCache } from "@isograph/react-disposable-state";
7
+
8
+ //#region src/core/cache.d.ts
9
+ type NetworkResponseScalarValue = string | number | boolean;
10
+ type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | readonly (NetworkResponseObject | null)[] | readonly (NetworkResponseScalarValue | null)[];
11
+ type NetworkResponseObject = {
12
+ readonly [index: string]: undefined | NetworkResponseValue;
13
+ readonly id?: DataId;
14
+ readonly __typename?: TypeName;
15
+ };
16
+ declare function normalizeData(environment: IsographEnvironment, storeLayer: StoreLayerWithData, normalizationAst: NormalizationAstNodes, networkResponse: NetworkResponseObject, variables: Variables, root: StoreLink, encounteredIds: EncounteredIds): EncounteredIds;
17
+ type EncounteredIds = Map<TypeName, Set<DataId>>;
18
+ //#endregion
19
+ export { EncounteredIds, NetworkResponseObject, NetworkResponseScalarValue, NetworkResponseValue, normalizeData };
20
+ //# sourceMappingURL=cache.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.mts","names":[],"sources":["../../src/core/cache.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAgDY,KAAA,0BAAA,GAA0B,MAAA,GAAA,MAAA,GAAA,OAAA;AAC1B,KAAA,oBAAA,GACR,0BAD4B,GAAA,IAAA,GAG5B,qBAH4B,GAAA,SAAA,CAIlB,qBAJkB,GAAA,IAAA,CAAA,EAAA,GAAA,SAAA,CAKlB,0BALkB,GAAA,IAAA,CAAA,EAAA;AAC5B,KAMQ,qBAAA,GANR;EAEA,UAAA,KAAA,EAAA,MAAA,CAAA,EAAA,SAAA,GAOoC,oBAPpC;EACU,SAAA,EAAA,CAAA,EAOE,MAPF;EACA,SAAA,UAAA,CAAA,EAOU,QAPV;CAA0B;AAE5B,iBAQI,aAAA,CARiB,WAAA,EASlB,mBATkB,EAAA,UAAA,EAUnB,kBAVmB,EAAA,gBAAA,EAWb,qBAXa,EAAA,eAAA,EAYd,qBAZc,EAAA,SAAA,EAapB,SAboB,EAAA,IAAA,EAczB,SAdyB,EAAA,cAAA,EAef,cAfe,CAAA,EAgB9B,cAhB8B;AAKD,KA6EpB,cAAA,GAAiB,GA7EG,CA6EC,QA7ED,EA6EW,GA7EX,CA6Ee,MA7Ef,CAAA,CAAA"}
@@ -1,36 +1,20 @@
1
- import { Factory, ParentCache } from '@isograph/react-disposable-state';
2
- import { IsographEntrypoint, NormalizationLinkedField, NormalizationScalarField, type NormalizationAst, type NormalizationAstLoader, type NormalizationAstNodes } from '../core/entrypoint';
3
- import { FetchOptions } from './check';
4
- import { ExtractParameters, FragmentReference, Variables, type UnknownTReadFromStore } from './FragmentReference';
5
- import { DataId, StoreLink, type IsographEnvironment, type TypeName } from './IsographEnvironment';
6
- import { WithEncounteredRecords } from './read';
7
- import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
8
- export declare const TYPENAME_FIELD_NAME = "__typename";
9
- export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue>(environment: IsographEnvironment, index: string, factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
10
- /**
11
- * Creates a copy of the provided value, ensuring any nested objects have their
12
- * keys sorted such that equivalent values would have identical JSON.stringify
13
- * results.
14
- */
15
- export declare function stableCopy<T>(value: T): T;
16
- export declare function getOrCreateCacheForArtifact<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
17
- export type NetworkResponseScalarValue = string | number | boolean;
18
- export type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | (NetworkResponseObject | null)[] | (NetworkResponseScalarValue | null)[];
19
- export type NetworkResponseObject = {
20
- [index: string]: undefined | NetworkResponseValue;
21
- id?: DataId;
22
- __typename?: TypeName;
1
+ import { StoreLayerWithData } from "./optimisticProxy.js";
2
+ import { DataId, IsographEnvironment, StoreLink, TypeName } from "./IsographEnvironment.js";
3
+ import { Variables } from "./FragmentReference.js";
4
+ import { NormalizationAstNodes } from "./entrypoint.js";
5
+ import { ParentCache } from "@isograph/react-disposable-state";
6
+
7
+ //#region src/core/cache.d.ts
8
+
9
+ type NetworkResponseScalarValue = string | number | boolean;
10
+ type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | readonly (NetworkResponseObject | null)[] | readonly (NetworkResponseScalarValue | null)[];
11
+ type NetworkResponseObject = {
12
+ readonly [index: string]: undefined | NetworkResponseValue;
13
+ readonly id?: DataId;
14
+ readonly __typename?: TypeName;
23
15
  };
24
- export declare function normalizeData(environment: IsographEnvironment, normalizationAst: NormalizationAstNodes, networkResponse: NetworkResponseObject, variables: Variables, root: StoreLink): EncounteredIds;
25
- export declare function subscribeToAnyChange(environment: IsographEnvironment, callback: () => void): () => void;
26
- export declare function subscribeToAnyChangesToRecord(environment: IsographEnvironment, recordLink: StoreLink, callback: () => void): () => void;
27
- export declare function subscribe<TReadFromStore extends UnknownTReadFromStore>(environment: IsographEnvironment, encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<TReadFromStore, any>, callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): () => void;
28
- export declare function onNextChangeToRecord(environment: IsographEnvironment, recordLink: StoreLink): Promise<void>;
29
- export declare function callSubscriptions(environment: IsographEnvironment, recordsEncounteredWhenNormalizing: EncounteredIds): void;
30
- export type EncounteredIds = Map<TypeName, Set<DataId>>;
31
- export declare function insertEmptySetIfMissing<K, V>(map: Map<K, Set<V>>, key: K): Set<V>;
32
- export declare function getParentRecordKey(astNode: NormalizationLinkedField | NormalizationScalarField | ReaderLinkedField | ReaderScalarField, variables: Variables): string;
33
- export declare const FIRST_SPLIT_KEY = "____";
34
- export declare const SECOND_SPLIT_KEY = "___";
35
- export declare const THIRD_SPLIT_KEY = "__";
16
+ declare function normalizeData(environment: IsographEnvironment, storeLayer: StoreLayerWithData, normalizationAst: NormalizationAstNodes, networkResponse: NetworkResponseObject, variables: Variables, root: StoreLink, encounteredIds: EncounteredIds): EncounteredIds;
17
+ type EncounteredIds = Map<TypeName, Set<DataId>>;
18
+ //#endregion
19
+ export { EncounteredIds, NetworkResponseObject, NetworkResponseScalarValue, NetworkResponseValue, normalizeData };
36
20
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.d.ts","names":[],"sources":["../../src/core/cache.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAiDY,KADA,0BAAA,GACoB,MAAA,GAAA,MAAA,GAAA,OAAA;AAC5B,KADQ,oBAAA,GACR,0BAAA,GAAA,IAAA,GAEA,qBAFA,GAAA,SAAA,CAGU,qBAHV,GAAA,IAAA,CAAA,EAAA,GAAA,SAAA,CAIU,0BAJV,GAAA,IAAA,CAAA,EAAA;AAEA,KAIQ,qBAAA,GAJR;EACU,UAAA,KAAA,EAAA,MAAA,CAAA,EAAA,SAAA,GAM0B,oBAN1B;EACA,SAAA,EAAA,CAAA,EAME,MANF;EAA0B,SAAA,UAAA,CAAA,EAOhB,QAPgB;AAExC,CAAA;AAGwC,iBAKxB,aAAA,CALwB,WAAA,EAMzB,mBANyB,EAAA,UAAA,EAO1B,kBAP0B,EAAA,gBAAA,EAQpB,qBARoB,EAAA,eAAA,EASrB,qBATqB,EAAA,SAAA,EAU3B,SAV2B,EAAA,IAAA,EAWhC,SAXgC,EAAA,cAAA,EAYtB,cAZsB,CAAA,EAarC,cAbqC;AAKxB,KA0EJ,cAAA,GAAiB,GA1EA,CA0EI,QA1EJ,EA0Ec,GA1Ed,CA0EkB,MA1ElB,CAAA,CAAA"}