@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.
- package/.turbo/turbo-compile-libs.log +10 -3
- package/dist/_virtual/rolldown_runtime.js +25 -0
- package/dist/core/FragmentReference.d.mts +38 -0
- package/dist/core/FragmentReference.d.mts.map +1 -0
- package/dist/core/FragmentReference.d.ts +31 -27
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +8 -6
- package/dist/core/FragmentReference.mjs +10 -0
- package/dist/core/FragmentReference.mjs.map +1 -0
- package/dist/core/IsographEnvironment.d.mts +89 -0
- package/dist/core/IsographEnvironment.d.mts.map +1 -0
- package/dist/core/IsographEnvironment.d.ts +77 -72
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +62 -59
- package/dist/core/IsographEnvironment.mjs +67 -0
- package/dist/core/IsographEnvironment.mjs.map +1 -0
- package/dist/core/PromiseWrapper.d.mts +36 -0
- package/dist/core/PromiseWrapper.d.mts.map +1 -0
- package/dist/core/PromiseWrapper.d.ts +27 -18
- package/dist/core/PromiseWrapper.d.ts.map +1 -1
- package/dist/core/PromiseWrapper.js +45 -43
- package/dist/core/PromiseWrapper.mjs +49 -0
- package/dist/core/PromiseWrapper.mjs.map +1 -0
- package/dist/core/areEqualWithDeepComparison.js +56 -108
- package/dist/core/areEqualWithDeepComparison.mjs +62 -0
- package/dist/core/areEqualWithDeepComparison.mjs.map +1 -0
- package/dist/core/brand.d.mts +19 -0
- package/dist/core/brand.d.mts.map +1 -0
- package/dist/core/brand.d.ts +18 -1
- package/dist/core/brand.d.ts.map +1 -1
- package/dist/core/cache.d.mts +20 -0
- package/dist/core/cache.d.mts.map +1 -0
- package/dist/core/cache.d.ts +18 -34
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +210 -516
- package/dist/core/cache.mjs +237 -0
- package/dist/core/cache.mjs.map +1 -0
- package/dist/core/check.d.mts +28 -0
- package/dist/core/check.d.mts.map +1 -0
- package/dist/core/check.d.ts +24 -18
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/check.js +80 -124
- package/dist/core/check.mjs +84 -0
- package/dist/core/check.mjs.map +1 -0
- package/dist/core/componentCache.js +10 -34
- package/dist/core/componentCache.mjs +12 -0
- package/dist/core/componentCache.mjs.map +1 -0
- package/dist/core/entrypoint.d.mts +99 -0
- package/dist/core/entrypoint.d.mts.map +1 -0
- package/dist/core/entrypoint.d.ts +83 -68
- package/dist/core/entrypoint.d.ts.map +1 -1
- package/dist/core/entrypoint.js +6 -5
- package/dist/core/entrypoint.mjs +8 -0
- package/dist/core/entrypoint.mjs.map +1 -0
- package/dist/core/garbageCollection.d.mts +18 -0
- package/dist/core/garbageCollection.d.mts.map +1 -0
- package/dist/core/garbageCollection.d.ts +15 -10
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/garbageCollection.js +82 -99
- package/dist/core/garbageCollection.mjs +89 -0
- package/dist/core/garbageCollection.mjs.map +1 -0
- package/dist/core/getOrCreateCacheForArtifact.js +37 -0
- package/dist/core/getOrCreateCacheForArtifact.mjs +38 -0
- package/dist/core/getOrCreateCacheForArtifact.mjs.map +1 -0
- package/dist/core/logging.d.mts +95 -0
- package/dist/core/logging.d.mts.map +1 -0
- package/dist/core/logging.d.ts +78 -60
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +17 -18
- package/dist/core/logging.mjs +20 -0
- package/dist/core/logging.mjs.map +1 -0
- package/dist/core/makeNetworkRequest.d.mts +13 -0
- package/dist/core/makeNetworkRequest.d.mts.map +1 -0
- package/dist/core/makeNetworkRequest.d.ts +12 -8
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +188 -195
- package/dist/core/makeNetworkRequest.mjs +195 -0
- package/dist/core/makeNetworkRequest.mjs.map +1 -0
- package/dist/core/optimisticProxy.d.mts +43 -0
- package/dist/core/optimisticProxy.d.mts.map +1 -0
- package/dist/core/optimisticProxy.d.ts +43 -0
- package/dist/core/optimisticProxy.d.ts.map +1 -0
- package/dist/core/optimisticProxy.js +273 -0
- package/dist/core/optimisticProxy.mjs +268 -0
- package/dist/core/optimisticProxy.mjs.map +1 -0
- package/dist/core/read.d.mts +29 -0
- package/dist/core/read.d.mts.map +1 -0
- package/dist/core/read.d.ts +23 -27
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +438 -618
- package/dist/core/read.mjs +456 -0
- package/dist/core/read.mjs.map +1 -0
- package/dist/core/reader.d.mts +89 -0
- package/dist/core/reader.d.mts.map +1 -0
- package/dist/core/reader.d.ts +78 -74
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.js +118 -156
- package/dist/core/startUpdate.mjs +125 -0
- package/dist/core/startUpdate.mjs.map +1 -0
- package/dist/core/subscribe.d.mts +12 -0
- package/dist/core/subscribe.d.mts.map +1 -0
- package/dist/core/subscribe.d.ts +12 -0
- package/dist/core/subscribe.d.ts.map +1 -0
- package/dist/core/subscribe.js +79 -0
- package/dist/core/subscribe.mjs +79 -0
- package/dist/core/subscribe.mjs.map +1 -0
- package/dist/core/util.d.mts +27 -0
- package/dist/core/util.d.mts.map +1 -0
- package/dist/core/util.d.ts +21 -17
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +22 -2
- package/dist/core/util.mjs +21 -0
- package/dist/core/util.mjs.map +1 -0
- package/dist/core/writeData.d.mts +11 -0
- package/dist/core/writeData.d.mts.map +1 -0
- package/dist/core/writeData.d.ts +11 -0
- package/dist/core/writeData.d.ts.map +1 -0
- package/dist/core/writeData.js +41 -0
- package/dist/core/writeData.mjs +42 -0
- package/dist/core/writeData.mjs.map +1 -0
- package/dist/index.d.mts +32 -0
- package/dist/index.d.ts +32 -29
- package/dist/index.js +70 -68
- package/dist/index.mjs +31 -0
- package/dist/loadable-hooks/useClientSideDefer.d.mts +12 -0
- package/dist/loadable-hooks/useClientSideDefer.d.mts.map +1 -0
- package/dist/loadable-hooks/useClientSideDefer.d.ts +10 -8
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +14 -12
- package/dist/loadable-hooks/useClientSideDefer.mjs +14 -0
- package/dist/loadable-hooks/useClientSideDefer.mjs.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.mts +33 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.mts.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +27 -21
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -158
- package/dist/loadable-hooks/useConnectionSpecPagination.mjs +134 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.mjs.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts +8 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +6 -3
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeExposedMutationField.js +9 -12
- package/dist/loadable-hooks/useImperativeExposedMutationField.mjs +11 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.mjs.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.mts +19 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.mts.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts +15 -11
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeLoadableField.js +16 -12
- package/dist/loadable-hooks/useImperativeLoadableField.mjs +17 -0
- package/dist/loadable-hooks/useImperativeLoadableField.mjs.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.mts +24 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.mts.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +19 -15
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.js +118 -160
- package/dist/loadable-hooks/useSkipLimitPagination.mjs +119 -0
- package/dist/loadable-hooks/useSkipLimitPagination.mjs.map +1 -0
- package/dist/react/FragmentReader.d.mts +18 -0
- package/dist/react/FragmentReader.d.mts.map +1 -0
- package/dist/react/FragmentReader.d.ts +16 -7
- package/dist/react/FragmentReader.d.ts.map +1 -1
- package/dist/react/FragmentReader.js +8 -7
- package/dist/react/FragmentReader.mjs +10 -0
- package/dist/react/FragmentReader.mjs.map +1 -0
- package/dist/react/FragmentRenderer.d.mts +20 -0
- package/dist/react/FragmentRenderer.d.mts.map +1 -0
- package/dist/react/FragmentRenderer.d.ts +18 -13
- package/dist/react/FragmentRenderer.d.ts.map +1 -1
- package/dist/react/FragmentRenderer.js +11 -33
- package/dist/react/FragmentRenderer.mjs +12 -0
- package/dist/react/FragmentRenderer.mjs.map +1 -0
- package/dist/react/IsographEnvironmentProvider.d.mts +17 -0
- package/dist/react/IsographEnvironmentProvider.d.mts.map +1 -0
- package/dist/react/IsographEnvironmentProvider.d.ts +15 -9
- package/dist/react/IsographEnvironmentProvider.d.ts.map +1 -1
- package/dist/react/IsographEnvironmentProvider.js +15 -39
- package/dist/react/IsographEnvironmentProvider.mjs +17 -0
- package/dist/react/IsographEnvironmentProvider.mjs.map +1 -0
- package/dist/react/LoadableFieldReader.d.mts +21 -0
- package/dist/react/LoadableFieldReader.d.mts.map +1 -0
- package/dist/react/LoadableFieldReader.d.ts +20 -11
- package/dist/react/LoadableFieldReader.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.js +13 -8
- package/dist/react/LoadableFieldReader.mjs +14 -0
- package/dist/react/LoadableFieldReader.mjs.map +1 -0
- package/dist/react/LoadableFieldRenderer.d.mts +22 -0
- package/dist/react/LoadableFieldRenderer.d.mts.map +1 -0
- package/dist/react/LoadableFieldRenderer.d.ts +21 -12
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
- package/dist/react/LoadableFieldRenderer.js +13 -35
- package/dist/react/LoadableFieldRenderer.mjs +14 -0
- package/dist/react/LoadableFieldRenderer.mjs.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts +18 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts +11 -3
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts.map +1 -1
- package/dist/react/RenderAfterCommit__DO_NOT_USE.js +17 -13
- package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs +18 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs.map +1 -0
- package/dist/react/createIsographEnvironment.d.mts +9 -0
- package/dist/react/createIsographEnvironment.d.mts.map +1 -0
- package/dist/react/createIsographEnvironment.d.ts +8 -0
- package/dist/react/createIsographEnvironment.d.ts.map +1 -0
- package/dist/react/createIsographEnvironment.js +10 -0
- package/dist/react/createIsographEnvironment.mjs +11 -0
- package/dist/react/createIsographEnvironment.mjs.map +1 -0
- package/dist/react/maybeUnwrapNetworkRequest.js +11 -0
- package/dist/react/maybeUnwrapNetworkRequest.mjs +12 -0
- package/dist/react/maybeUnwrapNetworkRequest.mjs.map +1 -0
- package/dist/react/useImperativeReference.d.mts +15 -0
- package/dist/react/useImperativeReference.d.mts.map +1 -0
- package/dist/react/useImperativeReference.d.ts +13 -7
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +34 -32
- package/dist/react/useImperativeReference.mjs +35 -0
- package/dist/react/useImperativeReference.mjs.map +1 -0
- package/dist/react/useLazyReference.d.mts +13 -0
- package/dist/react/useLazyReference.d.mts.map +1 -0
- package/dist/react/useLazyReference.d.ts +11 -5
- package/dist/react/useLazyReference.d.ts.map +1 -1
- package/dist/react/useLazyReference.js +17 -40
- package/dist/react/useLazyReference.mjs +18 -0
- package/dist/react/useLazyReference.mjs.map +1 -0
- package/dist/react/useReadAndSubscribe.d.mts +20 -0
- package/dist/react/useReadAndSubscribe.d.mts.map +1 -0
- package/dist/react/useReadAndSubscribe.d.ts +14 -9
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +57 -39
- package/dist/react/useReadAndSubscribe.mjs +59 -0
- package/dist/react/useReadAndSubscribe.mjs.map +1 -0
- package/dist/react/useRerenderOnChange.d.mts +12 -0
- package/dist/react/useRerenderOnChange.d.mts.map +1 -0
- package/dist/react/useRerenderOnChange.d.ts +10 -6
- package/dist/react/useRerenderOnChange.d.ts.map +1 -1
- package/dist/react/useRerenderOnChange.js +16 -20
- package/dist/react/useRerenderOnChange.mjs +17 -0
- package/dist/react/useRerenderOnChange.mjs.map +1 -0
- package/dist/react/useResult.d.mts +8 -0
- package/dist/react/useResult.d.mts.map +1 -0
- package/dist/react/useResult.d.ts +7 -5
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +27 -39
- package/dist/react/useResult.mjs +30 -0
- package/dist/react/useResult.mjs.map +1 -0
- package/package.json +26 -19
- package/src/core/FragmentReference.ts +13 -7
- package/src/core/IsographEnvironment.ts +80 -21
- package/src/core/PromiseWrapper.ts +14 -7
- package/src/core/areEqualWithDeepComparison.ts +2 -18
- package/src/core/brand.ts +18 -0
- package/src/core/cache.ts +62 -332
- package/src/core/check.ts +30 -26
- package/src/core/componentCache.ts +11 -44
- package/src/core/entrypoint.ts +50 -9
- package/src/core/garbageCollection.ts +81 -28
- package/src/core/getOrCreateCacheForArtifact.ts +86 -0
- package/src/core/logging.ts +25 -13
- package/src/core/makeNetworkRequest.ts +320 -94
- package/src/core/optimisticProxy.ts +544 -0
- package/src/core/read.ts +251 -198
- package/src/core/reader.ts +18 -17
- package/src/core/startUpdate.ts +47 -36
- package/src/core/subscribe.ts +189 -0
- package/src/core/util.ts +26 -0
- package/src/core/writeData.ts +79 -0
- package/src/index.ts +6 -4
- package/src/loadable-hooks/useClientSideDefer.ts +80 -30
- package/src/loadable-hooks/useConnectionSpecPagination.ts +54 -35
- package/src/loadable-hooks/useImperativeLoadableField.ts +5 -5
- package/src/loadable-hooks/useSkipLimitPagination.ts +22 -21
- package/src/react/FragmentReader.tsx +3 -1
- package/src/react/FragmentRenderer.tsx +8 -1
- package/src/react/IsographEnvironmentProvider.tsx +2 -1
- package/src/react/LoadableFieldReader.tsx +125 -16
- package/src/react/LoadableFieldRenderer.tsx +124 -16
- package/src/react/createIsographEnvironment.ts +23 -0
- package/src/react/maybeUnwrapNetworkRequest.ts +17 -0
- package/src/react/useImperativeReference.ts +25 -15
- package/src/react/useLazyReference.ts +20 -10
- package/src/react/useReadAndSubscribe.ts +53 -12
- package/src/react/useRerenderOnChange.ts +3 -3
- package/src/react/useResult.ts +15 -35
- package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/linkedUpdate/raw_response_type.ts +13 -0
- package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/meName/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/meName/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/meName/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/meNameSuccessor/raw_response_type.ts +14 -0
- package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/nodeField/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/nodeField/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/normalizeUndefinedField/entrypoint.ts +33 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/normalization_ast.ts +25 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/output_type.ts +3 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/param_type.ts +9 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/query_text.ts +6 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +38 -0
- package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/startUpdate/raw_response_type.ts +8 -0
- package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/subquery/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/subquery/raw_response_type.ts +9 -0
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +1 -1
- package/src/tests/__isograph/iso.ts +11 -1
- package/src/tests/garbageCollection.test.ts +10 -10
- package/src/tests/meNameSuccessor.ts +7 -4
- package/src/tests/nodeQuery.ts +6 -4
- package/src/tests/normalizeData.test.ts +94 -18
- package/src/tests/optimisticProxy.test.ts +862 -0
- package/src/tests/startUpdate.test.ts +11 -11
- package/vitest.config.ts +5 -0
- package/dist/core/areEqualWithDeepComparison.d.ts +0 -3
- package/dist/core/areEqualWithDeepComparison.d.ts.map +0 -1
- package/dist/core/brand.js +0 -2
- package/dist/core/componentCache.d.ts +0 -5
- package/dist/core/componentCache.d.ts.map +0 -1
- package/dist/core/reader.js +0 -2
- package/dist/core/startUpdate.d.ts +0 -8
- package/dist/core/startUpdate.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
|
@@ -1,114 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.mergeObjectsUsingReaderAst = mergeObjectsUsingReaderAst;
|
|
1
|
+
|
|
2
|
+
//#region src/core/areEqualWithDeepComparison.ts
|
|
4
3
|
function mergeUsingReaderAst(field, oldItem, newItem) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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"}
|
package/dist/core/brand.d.ts
CHANGED
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
|
|
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
|
package/dist/core/brand.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.ts","
|
|
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"}
|
package/dist/core/cache.d.ts
CHANGED
|
@@ -1,36 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export
|
|
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
|
package/dist/core/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","
|
|
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"}
|