@isograph/react 0.0.0-main-3de26263 → 0.0.0-main-709dc2bb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-compile-libs.log +9 -2
- 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 -29
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +7 -5
- 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 +76 -81
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +59 -82
- 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 +26 -23
- 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 -93
- 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 +6 -6
- 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 -24
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +203 -306
- 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 +21 -19
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/check.js +80 -122
- package/dist/core/check.mjs +84 -0
- package/dist/core/check.mjs.map +1 -0
- package/dist/core/componentCache.js +9 -10
- 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 -80
- 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 -16
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/garbageCollection.js +76 -120
- package/dist/core/garbageCollection.mjs +89 -0
- package/dist/core/garbageCollection.mjs.map +1 -0
- package/dist/core/getOrCreateCacheForArtifact.js +35 -38
- 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 +66 -61
- 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 -10
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +180 -260
- 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 +37 -53
- package/dist/core/optimisticProxy.d.ts.map +1 -1
- package/dist/core/optimisticProxy.js +245 -353
- 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 -29
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +435 -634
- 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 -79
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.js +115 -149
- 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 +11 -7
- package/dist/core/subscribe.d.ts.map +1 -1
- package/dist/core/subscribe.js +67 -109
- 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 -24
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +17 -23
- 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 +10 -6
- package/dist/core/writeData.d.ts.map +1 -1
- package/dist/core/writeData.js +39 -34
- 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 -32
- package/dist/index.js +70 -72
- 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 +9 -13
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +13 -44
- 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 +26 -22
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -176
- 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 -164
- 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 -8
- 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 -14
- 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 +15 -13
- package/dist/react/LoadableFieldReader.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.js +13 -47
- 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 +16 -14
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
- package/dist/react/LoadableFieldRenderer.js +13 -70
- 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 +7 -3
- package/dist/react/createIsographEnvironment.d.ts.map +1 -1
- package/dist/react/createIsographEnvironment.js +8 -6
- package/dist/react/createIsographEnvironment.mjs +11 -0
- package/dist/react/createIsographEnvironment.mjs.map +1 -0
- package/dist/react/maybeUnwrapNetworkRequest.js +9 -12
- 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 -11
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +34 -30
- 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 -9
- 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 -11
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +54 -63
- 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 -3
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +27 -30
- package/dist/react/useResult.mjs +30 -0
- package/dist/react/useResult.mjs.map +1 -0
- package/package.json +16 -8
- 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/getOrCreateCacheForArtifact.d.ts +0 -8
- package/dist/core/getOrCreateCacheForArtifact.d.ts.map +0 -1
- package/dist/core/reader.js +0 -2
- package/dist/core/startUpdate.d.ts +0 -9
- package/dist/core/startUpdate.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/react/maybeUnwrapNetworkRequest.d.ts +0 -4
- package/dist/react/maybeUnwrapNetworkRequest.d.ts.map +0 -1
package/dist/core/cache.js
CHANGED
|
@@ -1,347 +1,244 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
|
12
|
-
const IsographEnvironment_1 = require("./IsographEnvironment");
|
|
13
|
-
const logging_1 = require("./logging");
|
|
14
|
-
const optimisticProxy_1 = require("./optimisticProxy");
|
|
15
|
-
const util_1 = require("./util");
|
|
16
|
-
exports.TYPENAME_FIELD_NAME = '__typename';
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_util = require('./util.js');
|
|
3
|
+
const require_IsographEnvironment = require('./IsographEnvironment.js');
|
|
4
|
+
const require_logging = require('./logging.js');
|
|
5
|
+
const require_optimisticProxy = require('./optimisticProxy.js');
|
|
6
|
+
let __isograph_react_disposable_state = require("@isograph/react-disposable-state");
|
|
7
|
+
__isograph_react_disposable_state = require_rolldown_runtime.__toESM(__isograph_react_disposable_state);
|
|
8
|
+
|
|
9
|
+
//#region src/core/cache.ts
|
|
10
|
+
const TYPENAME_FIELD_NAME = "__typename";
|
|
17
11
|
function getOrCreateItemInSuspenseCache(environment, index, factory) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
return environment.fragmentCache[index];
|
|
12
|
+
if (environment.fragmentCache[index] == null) environment.fragmentCache[index] = new __isograph_react_disposable_state.ParentCache(factory);
|
|
13
|
+
return environment.fragmentCache[index];
|
|
22
14
|
}
|
|
23
15
|
function normalizeData(environment, storeLayer, normalizationAst, networkResponse, variables, root, encounteredIds) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return encounteredIds;
|
|
16
|
+
require_logging.logMessage(environment, () => ({
|
|
17
|
+
kind: "AboutToNormalize",
|
|
18
|
+
normalizationAst,
|
|
19
|
+
networkResponse,
|
|
20
|
+
variables
|
|
21
|
+
}));
|
|
22
|
+
normalizeDataIntoRecord(environment, storeLayer, normalizationAst, networkResponse, require_optimisticProxy.getMutableStoreRecordProxy(storeLayer, root), root, variables, encounteredIds);
|
|
23
|
+
return encounteredIds;
|
|
33
24
|
}
|
|
34
25
|
function subscribeToAnyChange(environment, callback) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
const subscription = {
|
|
27
|
+
kind: "AnyRecords",
|
|
28
|
+
callback
|
|
29
|
+
};
|
|
30
|
+
environment.subscriptions.add(subscription);
|
|
31
|
+
return () => environment.subscriptions.delete(subscription);
|
|
41
32
|
}
|
|
42
33
|
function subscribeToAnyChangesToRecord(environment, recordLink, callback) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
const subscription = {
|
|
35
|
+
kind: "AnyChangesToRecord",
|
|
36
|
+
recordLink,
|
|
37
|
+
callback
|
|
38
|
+
};
|
|
39
|
+
environment.subscriptions.add(subscription);
|
|
40
|
+
return () => environment.subscriptions.delete(subscription);
|
|
50
41
|
}
|
|
51
42
|
function onNextChangeToRecord(environment, recordLink) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
43
|
+
return new Promise((resolve) => {
|
|
44
|
+
const unsubscribe = subscribeToAnyChangesToRecord(environment, recordLink, () => {
|
|
45
|
+
unsubscribe();
|
|
46
|
+
resolve();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
58
49
|
}
|
|
59
50
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
* Mutate targetParentRecord according to the normalizationAst and networkResponseParentRecord.
|
|
52
|
+
*/
|
|
62
53
|
function normalizeDataIntoRecord(environment, storeLayer, normalizationAst, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
if (recordHasBeenUpdated) {
|
|
87
|
-
let encounteredRecordsIds = insertEmptySetIfMissing(mutableEncounteredIds, targetParentRecordLink.__typename);
|
|
88
|
-
encounteredRecordsIds.add(targetParentRecordLink.__link);
|
|
89
|
-
}
|
|
90
|
-
return recordHasBeenUpdated;
|
|
54
|
+
let recordHasBeenUpdated = false;
|
|
55
|
+
for (const normalizationNode of normalizationAst) switch (normalizationNode.kind) {
|
|
56
|
+
case "Scalar": {
|
|
57
|
+
const scalarFieldResultedInChange = normalizeScalarField(normalizationNode, networkResponseParentRecord, targetParentRecord, variables);
|
|
58
|
+
recordHasBeenUpdated = recordHasBeenUpdated || scalarFieldResultedInChange;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "Linked": {
|
|
62
|
+
const linkedFieldResultedInChange = normalizeLinkedField(environment, storeLayer, normalizationNode, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds);
|
|
63
|
+
recordHasBeenUpdated = recordHasBeenUpdated || linkedFieldResultedInChange;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case "InlineFragment": {
|
|
67
|
+
const inlineFragmentResultedInChange = normalizeInlineFragment(environment, storeLayer, normalizationNode, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds);
|
|
68
|
+
recordHasBeenUpdated = recordHasBeenUpdated || inlineFragmentResultedInChange;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (recordHasBeenUpdated) insertEmptySetIfMissing(mutableEncounteredIds, targetParentRecordLink.__typename).add(targetParentRecordLink.__link);
|
|
73
|
+
return recordHasBeenUpdated;
|
|
91
74
|
}
|
|
92
75
|
function insertEmptySetIfMissing(map, key) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
76
|
+
let result = map.get(key);
|
|
77
|
+
if (result === void 0) {
|
|
78
|
+
result = /* @__PURE__ */ new Set();
|
|
79
|
+
map.set(key, result);
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
99
82
|
}
|
|
100
83
|
function normalizeScalarField(astNode, networkResponseParentRecord, targetStoreRecord, variables) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
throw new Error('Unexpected object array when normalizing scalar');
|
|
115
|
-
}
|
|
84
|
+
const networkResponseData = networkResponseParentRecord[getNetworkResponseKey(astNode)];
|
|
85
|
+
const parentRecordKey = getParentRecordKey(astNode, variables);
|
|
86
|
+
const existingValue = targetStoreRecord[parentRecordKey];
|
|
87
|
+
if (networkResponseData == null) {
|
|
88
|
+
targetStoreRecord[parentRecordKey] = null;
|
|
89
|
+
return existingValue === void 0 || existingValue != null;
|
|
90
|
+
}
|
|
91
|
+
if (isScalarOrEmptyArray(networkResponseData)) {
|
|
92
|
+
targetStoreRecord[parentRecordKey] = networkResponseData;
|
|
93
|
+
return existingValue !== networkResponseData;
|
|
94
|
+
} else throw new Error("Unexpected object array when normalizing scalar");
|
|
116
95
|
}
|
|
117
96
|
/**
|
|
118
|
-
|
|
119
|
-
|
|
97
|
+
* Mutate targetParentRecord with a given linked field ast node.
|
|
98
|
+
*/
|
|
120
99
|
function normalizeLinkedField(environment, storeLayer, astNode, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const newStoreRecordId = normalizeNetworkResponseObject(environment, storeLayer, astNode, networkResponseData, targetParentRecordLink, variables, null, mutableEncounteredIds);
|
|
159
|
-
let __typename = (_b = astNode.concreteType) !== null && _b !== void 0 ? _b : networkResponseData[exports.TYPENAME_FIELD_NAME];
|
|
160
|
-
if (__typename == null) {
|
|
161
|
-
throw new Error('Unexpected missing __typename in network response when normalizing a linked field. ' +
|
|
162
|
-
'This is indicative of a bug in Isograph.');
|
|
163
|
-
}
|
|
164
|
-
targetParentRecord[parentRecordKey] = {
|
|
165
|
-
__link: newStoreRecordId,
|
|
166
|
-
__typename,
|
|
167
|
-
};
|
|
168
|
-
const link = (0, IsographEnvironment_1.getLink)(existingValue);
|
|
169
|
-
return (link === null || link === void 0 ? void 0 : link.__link) !== newStoreRecordId || link.__typename !== __typename;
|
|
170
|
-
}
|
|
100
|
+
const networkResponseData = networkResponseParentRecord[getNetworkResponseKey(astNode)];
|
|
101
|
+
const parentRecordKey = getParentRecordKey(astNode, variables);
|
|
102
|
+
const existingValue = targetParentRecord[parentRecordKey];
|
|
103
|
+
if (networkResponseData == null) {
|
|
104
|
+
targetParentRecord[parentRecordKey] = null;
|
|
105
|
+
return existingValue === void 0 || existingValue != null;
|
|
106
|
+
}
|
|
107
|
+
if (isScalarOrEmptyArray(networkResponseData) && !isNullOrEmptyArray(networkResponseData)) throw new Error("Unexpected scalar network response when normalizing a linked field");
|
|
108
|
+
if (require_util.isArray(networkResponseData)) {
|
|
109
|
+
const dataIds = [];
|
|
110
|
+
for (let i = 0; i < networkResponseData.length; i++) {
|
|
111
|
+
const networkResponseObject = networkResponseData[i];
|
|
112
|
+
if (networkResponseObject == null) {
|
|
113
|
+
dataIds.push(null);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const newStoreRecordId = normalizeNetworkResponseObject(environment, storeLayer, astNode, networkResponseObject, targetParentRecordLink, variables, i, mutableEncounteredIds);
|
|
117
|
+
const __typename = astNode.concreteType ?? networkResponseObject[TYPENAME_FIELD_NAME];
|
|
118
|
+
if (__typename == null) throw new Error("Unexpected missing __typename in network response when normalizing a linked field. This is indicative of a bug in Isograph.");
|
|
119
|
+
dataIds.push({
|
|
120
|
+
__link: newStoreRecordId,
|
|
121
|
+
__typename
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
targetParentRecord[parentRecordKey] = dataIds;
|
|
125
|
+
return !dataIdsAreTheSame(existingValue, dataIds);
|
|
126
|
+
} else {
|
|
127
|
+
const newStoreRecordId = normalizeNetworkResponseObject(environment, storeLayer, astNode, networkResponseData, targetParentRecordLink, variables, null, mutableEncounteredIds);
|
|
128
|
+
let __typename = astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];
|
|
129
|
+
if (__typename == null) throw new Error("Unexpected missing __typename in network response when normalizing a linked field. This is indicative of a bug in Isograph.");
|
|
130
|
+
targetParentRecord[parentRecordKey] = {
|
|
131
|
+
__link: newStoreRecordId,
|
|
132
|
+
__typename
|
|
133
|
+
};
|
|
134
|
+
const link = require_IsographEnvironment.getLink(existingValue);
|
|
135
|
+
return link?.__link !== newStoreRecordId || link.__typename !== __typename;
|
|
136
|
+
}
|
|
171
137
|
}
|
|
172
138
|
/**
|
|
173
|
-
|
|
174
|
-
|
|
139
|
+
* Mutate targetParentRecord with a given linked field ast node.
|
|
140
|
+
*/
|
|
175
141
|
function normalizeInlineFragment(environment, storeLayer, astNode, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return hasBeenModified;
|
|
180
|
-
}
|
|
181
|
-
return false;
|
|
142
|
+
const typeToRefineTo = astNode.type;
|
|
143
|
+
if (networkResponseParentRecord[TYPENAME_FIELD_NAME] === typeToRefineTo) return normalizeDataIntoRecord(environment, storeLayer, astNode.selections, networkResponseParentRecord, targetParentRecord, targetParentRecordLink, variables, mutableEncounteredIds);
|
|
144
|
+
return false;
|
|
182
145
|
}
|
|
183
146
|
function dataIdsAreTheSame(existingValue, newDataIds) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
((_b = newDataIds[i]) === null || _b === void 0 ? void 0 : _b.__typename) !== (maybeLink === null || maybeLink === void 0 ? void 0 : maybeLink.__typename)) {
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return true;
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
147
|
+
if (require_util.isArray(existingValue)) {
|
|
148
|
+
if (newDataIds.length !== existingValue.length) return false;
|
|
149
|
+
for (let i = 0; i < newDataIds.length; i++) {
|
|
150
|
+
const maybeLink = require_IsographEnvironment.getLink(existingValue[i]);
|
|
151
|
+
if (newDataIds[i]?.__link !== maybeLink?.__link || newDataIds[i]?.__typename !== maybeLink?.__typename) return false;
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
} else return false;
|
|
201
155
|
}
|
|
202
156
|
function normalizeNetworkResponseObject(environment, storeLayer, astNode, networkResponseData, targetParentRecordLink, variables, index, mutableEncounteredIds) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return newStoreRecordId;
|
|
157
|
+
const newStoreRecordId = getDataIdOfNetworkResponse(targetParentRecordLink, networkResponseData, astNode, variables, index);
|
|
158
|
+
const __typename = astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];
|
|
159
|
+
if (__typename == null) throw new Error("Unexpected missing __typename in network response object. This is indicative of a bug in Isograph.");
|
|
160
|
+
const link = {
|
|
161
|
+
__link: newStoreRecordId,
|
|
162
|
+
__typename
|
|
163
|
+
};
|
|
164
|
+
const newStoreRecord = require_optimisticProxy.getMutableStoreRecordProxy(storeLayer, link);
|
|
165
|
+
normalizeDataIntoRecord(environment, storeLayer, astNode.selections, networkResponseData, newStoreRecord, link, variables, mutableEncounteredIds);
|
|
166
|
+
return newStoreRecordId;
|
|
214
167
|
}
|
|
215
168
|
function isScalarOrEmptyArray(data) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return data.every((x) => isScalarOrEmptyArray(x));
|
|
219
|
-
}
|
|
220
|
-
const isScalarValue = data == null ||
|
|
221
|
-
typeof data === 'string' ||
|
|
222
|
-
typeof data === 'number' ||
|
|
223
|
-
typeof data === 'boolean';
|
|
224
|
-
return isScalarValue;
|
|
169
|
+
if (require_util.isArray(data)) return data.every((x) => isScalarOrEmptyArray(x));
|
|
170
|
+
return data == null || typeof data === "string" || typeof data === "number" || typeof data === "boolean";
|
|
225
171
|
}
|
|
226
172
|
function isNullOrEmptyArray(data) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
return data == null;
|
|
173
|
+
if (require_util.isArray(data)) {
|
|
174
|
+
if (data.length === 0) return true;
|
|
175
|
+
return data.every((x) => isNullOrEmptyArray(x));
|
|
176
|
+
}
|
|
177
|
+
return data == null;
|
|
234
178
|
}
|
|
235
179
|
function getParentRecordKey(astNode, variables) {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
parentRecordKey += getStoreKeyChunkForArgument(fieldParameter, variables);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
return parentRecordKey;
|
|
180
|
+
let parentRecordKey = astNode.fieldName;
|
|
181
|
+
const fieldParameters = astNode.arguments;
|
|
182
|
+
if (fieldParameters != null) for (const fieldParameter of fieldParameters) parentRecordKey += getStoreKeyChunkForArgument(fieldParameter, variables);
|
|
183
|
+
return parentRecordKey;
|
|
244
184
|
}
|
|
245
185
|
function getStoreKeyChunkForArgumentValue(argumentValue, variables) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}));
|
|
256
|
-
}
|
|
257
|
-
case 'Literal': {
|
|
258
|
-
return argumentValue.value;
|
|
259
|
-
}
|
|
260
|
-
case 'Variable': {
|
|
261
|
-
return (_a = variables[argumentValue.name]) !== null && _a !== void 0 ? _a : 'null';
|
|
262
|
-
}
|
|
263
|
-
case 'String': {
|
|
264
|
-
return argumentValue.value;
|
|
265
|
-
}
|
|
266
|
-
case 'Enum': {
|
|
267
|
-
return argumentValue.value;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
186
|
+
switch (argumentValue.kind) {
|
|
187
|
+
case "Object": return Object.fromEntries(argumentValue.value.map(([argumentName, argumentValue$1]) => {
|
|
188
|
+
return [argumentName, getStoreKeyChunkForArgumentValue(argumentValue$1, variables)];
|
|
189
|
+
}));
|
|
190
|
+
case "Literal": return argumentValue.value;
|
|
191
|
+
case "Variable": return variables[argumentValue.name] ?? "null";
|
|
192
|
+
case "String": return argumentValue.value;
|
|
193
|
+
case "Enum": return argumentValue.value;
|
|
194
|
+
}
|
|
270
195
|
}
|
|
271
196
|
function getStoreKeyChunkForArgument(argument, variables) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
277
|
-
return `${exports.FIRST_SPLIT_KEY}${argumentName}${exports.SECOND_SPLIT_KEY}${chunk}`;
|
|
197
|
+
const [argumentName, argumentValue] = argument;
|
|
198
|
+
let chunk = getStoreKeyChunkForArgumentValue(argumentValue, variables);
|
|
199
|
+
if (typeof chunk === "object") chunk = JSON.stringify(require_util.stableCopy(chunk));
|
|
200
|
+
return `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${chunk}`;
|
|
278
201
|
}
|
|
279
202
|
function getNetworkResponseKey(astNode) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
288
|
-
return networkResponseKey;
|
|
203
|
+
let networkResponseKey = astNode.fieldName;
|
|
204
|
+
const fieldParameters = astNode.arguments;
|
|
205
|
+
if (fieldParameters != null) for (const [argumentName, argumentValue] of fieldParameters) {
|
|
206
|
+
let argumentValueChunk = getArgumentValueChunk(argumentValue);
|
|
207
|
+
networkResponseKey += `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${argumentValueChunk}`;
|
|
208
|
+
}
|
|
209
|
+
return networkResponseKey;
|
|
289
210
|
}
|
|
290
211
|
function getArgumentValueChunk(argumentValue) {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
return 'l_' + argumentValue.value;
|
|
305
|
-
}
|
|
306
|
-
case 'Variable': {
|
|
307
|
-
return 'v_' + argumentValue.name;
|
|
308
|
-
}
|
|
309
|
-
case 'String': {
|
|
310
|
-
// replace all non-word characters (alphanumeric & underscore) with underscores
|
|
311
|
-
return 's_' + argumentValue.value.replaceAll(/\W/g, '_');
|
|
312
|
-
}
|
|
313
|
-
case 'Enum': {
|
|
314
|
-
return 'e_' + argumentValue.value;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
// an alias might be pullRequests____first___first____after___cursor
|
|
319
|
-
exports.FIRST_SPLIT_KEY = '____';
|
|
320
|
-
exports.SECOND_SPLIT_KEY = '___';
|
|
321
|
-
exports.THIRD_SPLIT_KEY = '__';
|
|
322
|
-
// Returns a key to look up an item in the store
|
|
212
|
+
switch (argumentValue.kind) {
|
|
213
|
+
case "Object": return "o_" + argumentValue.value.map(([argumentName, argumentValue$1]) => {
|
|
214
|
+
return argumentName + THIRD_SPLIT_KEY + getArgumentValueChunk(argumentValue$1);
|
|
215
|
+
}).join("_") + "_c";
|
|
216
|
+
case "Literal": return "l_" + argumentValue.value;
|
|
217
|
+
case "Variable": return "v_" + argumentValue.name;
|
|
218
|
+
case "String": return "s_" + argumentValue.value.replaceAll(/\W/g, "_");
|
|
219
|
+
case "Enum": return "e_" + argumentValue.value;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
const FIRST_SPLIT_KEY = "____";
|
|
223
|
+
const SECOND_SPLIT_KEY = "___";
|
|
224
|
+
const THIRD_SPLIT_KEY = "__";
|
|
323
225
|
function getDataIdOfNetworkResponse(parentRecordLink, dataToNormalize, astNode, variables, index) {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
for (const fieldParameter of fieldParameters) {
|
|
344
|
-
storeKey += getStoreKeyChunkForArgument(fieldParameter, variables);
|
|
345
|
-
}
|
|
346
|
-
return storeKey;
|
|
347
|
-
}
|
|
226
|
+
if (astNode.concreteType === "Query") return require_IsographEnvironment.ROOT_ID;
|
|
227
|
+
const dataId = dataToNormalize.id;
|
|
228
|
+
if (dataId != null) return dataId;
|
|
229
|
+
let storeKey = `${parentRecordLink.__typename}:${parentRecordLink.__link}.${astNode.fieldName}`;
|
|
230
|
+
if (index != null) storeKey += `.${index}`;
|
|
231
|
+
const fieldParameters = astNode.arguments;
|
|
232
|
+
if (fieldParameters == null) return storeKey;
|
|
233
|
+
for (const fieldParameter of fieldParameters) storeKey += getStoreKeyChunkForArgument(fieldParameter, variables);
|
|
234
|
+
return storeKey;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
//#endregion
|
|
238
|
+
exports.TYPENAME_FIELD_NAME = TYPENAME_FIELD_NAME;
|
|
239
|
+
exports.getOrCreateItemInSuspenseCache = getOrCreateItemInSuspenseCache;
|
|
240
|
+
exports.getParentRecordKey = getParentRecordKey;
|
|
241
|
+
exports.insertEmptySetIfMissing = insertEmptySetIfMissing;
|
|
242
|
+
exports.normalizeData = normalizeData;
|
|
243
|
+
exports.onNextChangeToRecord = onNextChangeToRecord;
|
|
244
|
+
exports.subscribeToAnyChange = subscribeToAnyChange;
|