relay-runtime 12.0.0 → 13.0.0
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/LICENSE +1 -1
- package/README.md +67 -0
- package/handlers/RelayDefaultHandlerProvider.js.flow +3 -3
- package/handlers/connection/ConnectionHandler.js.flow +9 -18
- package/handlers/connection/ConnectionInterface.js.flow +1 -1
- package/handlers/connection/MutationHandlers.js.flow +8 -12
- package/index.js +2 -2
- package/index.js.flow +43 -34
- package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
- package/lib/handlers/connection/ConnectionHandler.js +13 -19
- package/lib/handlers/connection/ConnectionInterface.js +1 -1
- package/lib/handlers/connection/MutationHandlers.js +4 -7
- package/lib/index.js +49 -46
- package/lib/multi-actor-environment/ActorIdentifier.js +1 -1
- package/lib/multi-actor-environment/ActorSpecificEnvironment.js +9 -5
- package/lib/multi-actor-environment/ActorUtils.js +1 -1
- package/lib/multi-actor-environment/MultiActorEnvironment.js +36 -23
- package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +1 -1
- package/lib/multi-actor-environment/index.js +3 -3
- package/lib/mutations/RelayDeclarativeMutationConfig.js +5 -2
- package/lib/mutations/RelayRecordProxy.js +4 -3
- package/lib/mutations/RelayRecordSourceMutator.js +4 -3
- package/lib/mutations/RelayRecordSourceProxy.js +13 -5
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +13 -5
- package/lib/mutations/applyOptimisticMutation.js +7 -7
- package/lib/mutations/commitLocalUpdate.js +1 -1
- package/lib/mutations/commitMutation.js +16 -15
- package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +242 -0
- package/lib/mutations/validateMutation.js +7 -7
- package/lib/network/ConvertToExecuteFunction.js +3 -2
- package/lib/network/RelayNetwork.js +4 -3
- package/lib/network/RelayNetworkTypes.js +1 -1
- package/lib/network/RelayObservable.js +2 -4
- package/lib/network/RelayQueryResponseCache.js +3 -3
- package/lib/network/wrapNetworkWithLogObserver.js +3 -2
- package/lib/query/GraphQLTag.js +3 -2
- package/lib/query/PreloadableQueryRegistry.js +1 -1
- package/lib/query/fetchQuery.js +7 -6
- package/lib/query/fetchQueryInternal.js +1 -1
- package/lib/query/fetchQuery_DEPRECATED.js +3 -2
- package/lib/store/ClientID.js +8 -2
- package/lib/store/DataChecker.js +17 -18
- package/lib/store/OperationExecutor.js +14 -14
- package/lib/store/RelayConcreteVariables.js +7 -10
- package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
- package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
- package/lib/store/RelayModernEnvironment.js +67 -43
- package/lib/store/RelayModernFragmentSpecResolver.js +9 -9
- package/lib/store/RelayModernOperationDescriptor.js +3 -2
- package/lib/store/RelayModernRecord.js +13 -12
- package/lib/store/RelayModernSelector.js +15 -9
- package/lib/store/RelayModernStore.js +15 -16
- package/lib/store/RelayOperationTracker.js +1 -1
- package/lib/store/RelayOptimisticRecordSource.js +1 -1
- package/lib/store/RelayPublishQueue.js +12 -6
- package/lib/store/RelayReader.js +131 -40
- package/lib/store/RelayRecordSource.js +1 -1
- package/lib/store/RelayRecordState.js +1 -1
- package/lib/store/RelayReferenceMarker.js +11 -12
- package/lib/store/RelayResponseNormalizer.js +26 -23
- package/lib/store/RelayStoreReactFlightUtils.js +4 -4
- package/lib/store/RelayStoreSubscriptions.js +7 -5
- package/lib/store/RelayStoreTypes.js +1 -1
- package/lib/store/RelayStoreUtils.js +6 -6
- package/lib/store/ResolverCache.js +7 -7
- package/lib/store/ResolverFragments.js +12 -8
- package/lib/store/StoreInspector.js +1 -1
- package/lib/store/TypeID.js +1 -1
- package/lib/store/ViewerPattern.js +1 -1
- package/lib/store/cloneRelayHandleSourceField.js +6 -5
- package/lib/store/cloneRelayScalarHandleSourceField.js +6 -5
- package/lib/store/createFragmentSpecResolver.js +1 -1
- package/lib/store/createRelayContext.js +4 -2
- package/lib/store/defaultGetDataID.js +1 -1
- package/lib/store/defaultRequiredFieldLogger.js +1 -1
- package/lib/store/hasOverlappingIDs.js +1 -1
- package/lib/store/isRelayModernEnvironment.js +1 -1
- package/lib/store/normalizeRelayPayload.js +1 -1
- package/lib/store/readInlineData.js +7 -3
- package/lib/subscription/requestSubscription.js +4 -6
- package/lib/util/JSResourceTypes.flow.js +1 -1
- package/lib/util/NormalizationNode.js +1 -1
- package/lib/util/ReaderNode.js +1 -1
- package/lib/util/RelayConcreteNode.js +2 -1
- package/lib/util/RelayDefaultHandleKey.js +1 -1
- package/lib/util/RelayError.js +1 -1
- package/lib/util/RelayFeatureFlags.js +8 -3
- package/lib/util/RelayProfiler.js +1 -1
- package/lib/util/RelayReplaySubject.js +1 -1
- package/lib/util/RelayRuntimeTypes.js +1 -7
- package/lib/util/StringInterner.js +71 -0
- package/lib/util/createPayloadFor3DField.js +1 -1
- package/lib/util/deepFreeze.js +1 -1
- package/lib/util/generateID.js +1 -1
- package/lib/util/getAllRootVariables.js +29 -0
- package/lib/util/getFragmentIdentifier.js +16 -8
- package/lib/util/getOperation.js +3 -2
- package/lib/util/getPaginationMetadata.js +1 -1
- package/lib/util/getPaginationVariables.js +3 -4
- package/lib/util/getPendingOperationsForFragment.js +1 -1
- package/lib/util/getRefetchMetadata.js +1 -1
- package/lib/util/getRelayHandleKey.js +3 -3
- package/lib/util/getRequestIdentifier.js +3 -3
- package/lib/util/getValueAtPath.js +1 -1
- package/lib/util/isEmptyObject.js +1 -1
- package/lib/util/isPromise.js +1 -1
- package/lib/util/isScalarAndEqual.js +1 -1
- package/lib/util/recycleNodesInto.js +1 -1
- package/lib/util/registerEnvironmentWithDevTools.js +1 -1
- package/lib/util/reportMissingRequiredFields.js +1 -1
- package/lib/util/resolveImmediate.js +1 -1
- package/lib/util/stableCopy.js +1 -1
- package/lib/util/withDuration.js +1 -1
- package/multi-actor-environment/ActorIdentifier.js.flow +1 -1
- package/multi-actor-environment/ActorSpecificEnvironment.js.flow +28 -20
- package/multi-actor-environment/ActorUtils.js.flow +3 -3
- package/multi-actor-environment/MultiActorEnvironment.js.flow +46 -25
- package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +28 -12
- package/multi-actor-environment/index.js.flow +2 -3
- package/mutations/RelayDeclarativeMutationConfig.js.flow +33 -28
- package/mutations/RelayRecordProxy.js.flow +5 -6
- package/mutations/RelayRecordSourceMutator.js.flow +5 -7
- package/mutations/RelayRecordSourceProxy.js.flow +20 -11
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +16 -6
- package/mutations/applyOptimisticMutation.js.flow +14 -15
- package/mutations/commitLocalUpdate.js.flow +2 -2
- package/mutations/commitMutation.js.flow +36 -49
- package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +318 -0
- package/mutations/validateMutation.js.flow +20 -18
- package/network/ConvertToExecuteFunction.js.flow +3 -3
- package/network/RelayNetwork.js.flow +5 -6
- package/network/RelayNetworkTypes.js.flow +1 -1
- package/network/RelayObservable.js.flow +2 -4
- package/network/RelayQueryResponseCache.js.flow +4 -4
- package/network/wrapNetworkWithLogObserver.js.flow +9 -9
- package/package.json +2 -2
- package/query/GraphQLTag.js.flow +11 -11
- package/query/PreloadableQueryRegistry.js.flow +5 -3
- package/query/fetchQuery.js.flow +19 -19
- package/query/fetchQueryInternal.js.flow +7 -10
- package/query/fetchQuery_DEPRECATED.js.flow +7 -7
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +3 -3
- package/store/ClientID.js.flow +10 -3
- package/store/DataChecker.js.flow +21 -30
- package/store/OperationExecutor.js.flow +55 -63
- package/store/RelayConcreteVariables.js.flow +5 -11
- package/store/RelayExperimentalGraphResponseHandler.js.flow +121 -0
- package/store/RelayExperimentalGraphResponseTransform.js.flow +470 -0
- package/store/RelayModernEnvironment.js.flow +57 -28
- package/store/RelayModernFragmentSpecResolver.js.flow +18 -20
- package/store/RelayModernOperationDescriptor.js.flow +11 -12
- package/store/RelayModernRecord.js.flow +20 -13
- package/store/RelayModernSelector.js.flow +25 -15
- package/store/RelayModernStore.js.flow +22 -26
- package/store/RelayOperationTracker.js.flow +12 -18
- package/store/RelayOptimisticRecordSource.js.flow +3 -3
- package/store/RelayPublishQueue.js.flow +43 -24
- package/store/RelayReader.js.flow +181 -68
- package/store/RelayRecordSource.js.flow +3 -3
- package/store/RelayRecordState.js.flow +1 -1
- package/store/RelayReferenceMarker.js.flow +13 -16
- package/store/RelayResponseNormalizer.js.flow +44 -42
- package/store/RelayStoreReactFlightUtils.js.flow +4 -5
- package/store/RelayStoreSubscriptions.js.flow +10 -9
- package/store/RelayStoreTypes.js.flow +73 -30
- package/store/RelayStoreUtils.js.flow +9 -10
- package/store/ResolverCache.js.flow +17 -15
- package/store/ResolverFragments.js.flow +18 -25
- package/store/StoreInspector.js.flow +3 -3
- package/store/TypeID.js.flow +2 -2
- package/store/ViewerPattern.js.flow +3 -3
- package/store/cloneRelayHandleSourceField.js.flow +6 -7
- package/store/cloneRelayScalarHandleSourceField.js.flow +6 -7
- package/store/createFragmentSpecResolver.js.flow +4 -5
- package/store/createRelayContext.js.flow +3 -3
- package/store/defaultGetDataID.js.flow +1 -1
- package/store/defaultRequiredFieldLogger.js.flow +1 -1
- package/store/hasOverlappingIDs.js.flow +1 -1
- package/store/isRelayModernEnvironment.js.flow +1 -1
- package/store/normalizeRelayPayload.js.flow +7 -8
- package/store/readInlineData.js.flow +8 -9
- package/subscription/requestSubscription.js.flow +16 -25
- package/util/JSResourceTypes.flow.js.flow +1 -1
- package/util/NormalizationNode.js.flow +1 -1
- package/util/ReaderNode.js.flow +10 -1
- package/util/RelayConcreteNode.js.flow +4 -1
- package/util/RelayDefaultHandleKey.js.flow +1 -1
- package/util/RelayError.js.flow +1 -1
- package/util/RelayFeatureFlags.js.flow +15 -5
- package/util/RelayProfiler.js.flow +1 -1
- package/util/RelayReplaySubject.js.flow +3 -4
- package/util/RelayRuntimeTypes.js.flow +70 -3
- package/util/StringInterner.js.flow +69 -0
- package/util/createPayloadFor3DField.js.flow +4 -4
- package/util/deepFreeze.js.flow +1 -1
- package/util/generateID.js.flow +1 -1
- package/util/getAllRootVariables.js.flow +36 -0
- package/util/getFragmentIdentifier.js.flow +28 -16
- package/util/getOperation.js.flow +3 -3
- package/util/getPaginationMetadata.js.flow +6 -11
- package/util/getPaginationVariables.js.flow +6 -10
- package/util/getPendingOperationsForFragment.js.flow +3 -3
- package/util/getRefetchMetadata.js.flow +8 -12
- package/util/getRelayHandleKey.js.flow +2 -3
- package/util/getRequestIdentifier.js.flow +4 -4
- package/util/getValueAtPath.js.flow +1 -1
- package/util/isEmptyObject.js.flow +1 -1
- package/util/isPromise.js.flow +1 -1
- package/util/isScalarAndEqual.js.flow +1 -1
- package/util/recycleNodesInto.js.flow +1 -1
- package/util/registerEnvironmentWithDevTools.js.flow +1 -1
- package/util/reportMissingRequiredFields.js.flow +1 -1
- package/util/resolveImmediate.js.flow +2 -2
- package/util/stableCopy.js.flow +1 -1
- package/util/withDuration.js.flow +1 -1
package/lib/store/RelayReader.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -14,16 +14,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
14
14
|
|
|
15
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
16
|
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
20
|
-
|
|
21
|
-
var RelayModernRecord = require('./RelayModernRecord');
|
|
22
|
-
|
|
23
|
-
var invariant = require('invariant');
|
|
17
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
24
18
|
|
|
25
19
|
var _require = require('../util/RelayConcreteNode'),
|
|
26
20
|
ACTOR_CHANGE = _require.ACTOR_CHANGE,
|
|
21
|
+
CLIENT_EDGE = _require.CLIENT_EDGE,
|
|
27
22
|
CLIENT_EXTENSION = _require.CLIENT_EXTENSION,
|
|
28
23
|
CONDITION = _require.CONDITION,
|
|
29
24
|
DEFER = _require.DEFER,
|
|
@@ -33,25 +28,32 @@ var _require = require('../util/RelayConcreteNode'),
|
|
|
33
28
|
INLINE_FRAGMENT = _require.INLINE_FRAGMENT,
|
|
34
29
|
LINKED_FIELD = _require.LINKED_FIELD,
|
|
35
30
|
MODULE_IMPORT = _require.MODULE_IMPORT,
|
|
36
|
-
REQUIRED_FIELD = _require.REQUIRED_FIELD,
|
|
37
31
|
RELAY_RESOLVER = _require.RELAY_RESOLVER,
|
|
32
|
+
REQUIRED_FIELD = _require.REQUIRED_FIELD,
|
|
38
33
|
SCALAR_FIELD = _require.SCALAR_FIELD,
|
|
39
34
|
STREAM = _require.STREAM;
|
|
40
35
|
|
|
36
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
37
|
+
|
|
38
|
+
var ClientID = require('./ClientID');
|
|
39
|
+
|
|
40
|
+
var RelayModernRecord = require('./RelayModernRecord');
|
|
41
|
+
|
|
41
42
|
var _require2 = require('./RelayStoreReactFlightUtils'),
|
|
42
43
|
getReactFlightClientResponse = _require2.getReactFlightClientResponse;
|
|
43
44
|
|
|
44
45
|
var _require3 = require('./RelayStoreUtils'),
|
|
45
|
-
|
|
46
|
+
CLIENT_EDGE_TRAVERSAL_PATH = _require3.CLIENT_EDGE_TRAVERSAL_PATH,
|
|
46
47
|
FRAGMENT_OWNER_KEY = _require3.FRAGMENT_OWNER_KEY,
|
|
47
48
|
FRAGMENT_PROP_NAME_KEY = _require3.FRAGMENT_PROP_NAME_KEY,
|
|
49
|
+
FRAGMENTS_KEY = _require3.FRAGMENTS_KEY,
|
|
48
50
|
ID_KEY = _require3.ID_KEY,
|
|
49
51
|
IS_WITHIN_UNMATCHED_TYPE_REFINEMENT = _require3.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,
|
|
50
52
|
MODULE_COMPONENT_KEY = _require3.MODULE_COMPONENT_KEY,
|
|
51
53
|
ROOT_ID = _require3.ROOT_ID,
|
|
52
54
|
getArgumentValues = _require3.getArgumentValues,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
getModuleComponentKey = _require3.getModuleComponentKey,
|
|
56
|
+
getStorageKey = _require3.getStorageKey;
|
|
55
57
|
|
|
56
58
|
var _require4 = require('./ResolverCache'),
|
|
57
59
|
NoopResolverCache = _require4.NoopResolverCache;
|
|
@@ -62,6 +64,8 @@ var _require5 = require('./ResolverFragments'),
|
|
|
62
64
|
var _require6 = require('./TypeID'),
|
|
63
65
|
generateTypeID = _require6.generateTypeID;
|
|
64
66
|
|
|
67
|
+
var invariant = require('invariant');
|
|
68
|
+
|
|
65
69
|
function read(recordSource, selector, resolverCache) {
|
|
66
70
|
var reader = new RelayReader(recordSource, selector, resolverCache !== null && resolverCache !== void 0 ? resolverCache : new NoopResolverCache());
|
|
67
71
|
return reader.read();
|
|
@@ -73,6 +77,10 @@ function read(recordSource, selector, resolverCache) {
|
|
|
73
77
|
|
|
74
78
|
var RelayReader = /*#__PURE__*/function () {
|
|
75
79
|
function RelayReader(recordSource, selector, resolverCache) {
|
|
80
|
+
var _selector$clientEdgeT;
|
|
81
|
+
|
|
82
|
+
this._clientEdgeTraversalPath = RelayFeatureFlags.ENABLE_CLIENT_EDGES && ((_selector$clientEdgeT = selector.clientEdgeTraversalPath) === null || _selector$clientEdgeT === void 0 ? void 0 : _selector$clientEdgeT.length) ? (0, _toConsumableArray2["default"])(selector.clientEdgeTraversalPath) : [];
|
|
83
|
+
this._missingClientEdges = [];
|
|
76
84
|
this._isMissingData = false;
|
|
77
85
|
this._isWithinUnmatchedTypeRefinement = false;
|
|
78
86
|
this._missingRequiredFields = null;
|
|
@@ -152,12 +160,30 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
152
160
|
return {
|
|
153
161
|
data: data,
|
|
154
162
|
isMissingData: this._isMissingData && isDataExpectedToBePresent,
|
|
163
|
+
missingClientEdges: RelayFeatureFlags.ENABLE_CLIENT_EDGES && this._missingClientEdges.length ? this._missingClientEdges : null,
|
|
155
164
|
seenRecords: this._seenRecords,
|
|
156
165
|
selector: this._selector,
|
|
157
166
|
missingRequiredFields: this._missingRequiredFields
|
|
158
167
|
};
|
|
159
168
|
};
|
|
160
169
|
|
|
170
|
+
_proto._markDataAsMissing = function _markDataAsMissing() {
|
|
171
|
+
this._isMissingData = true;
|
|
172
|
+
|
|
173
|
+
if (RelayFeatureFlags.ENABLE_CLIENT_EDGES && this._clientEdgeTraversalPath.length) {
|
|
174
|
+
var top = this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length - 1]; // Top can be null if we've traversed past a client edge into an ordinary
|
|
175
|
+
// client extension field; we never want to fetch in response to missing
|
|
176
|
+
// data off of a client extension field.
|
|
177
|
+
|
|
178
|
+
if (top !== null) {
|
|
179
|
+
this._missingClientEdges.push({
|
|
180
|
+
request: top.readerClientEdge.operation,
|
|
181
|
+
clientEdgeDestinationID: top.clientEdgeDestinationID
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
161
187
|
_proto._traverse = function _traverse(node, dataID, prevData) {
|
|
162
188
|
var record = this._recordSource.get(dataID);
|
|
163
189
|
|
|
@@ -165,7 +191,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
165
191
|
|
|
166
192
|
if (record == null) {
|
|
167
193
|
if (record === undefined) {
|
|
168
|
-
this.
|
|
194
|
+
this._markDataAsMissing();
|
|
169
195
|
}
|
|
170
196
|
|
|
171
197
|
return record;
|
|
@@ -179,8 +205,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
179
205
|
};
|
|
180
206
|
|
|
181
207
|
_proto._getVariableValue = function _getVariableValue(name) {
|
|
182
|
-
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReader(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
183
|
-
|
|
208
|
+
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReader(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
184
209
|
return this._variables[name];
|
|
185
210
|
};
|
|
186
211
|
|
|
@@ -235,8 +260,6 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
235
260
|
|
|
236
261
|
switch (selection.kind) {
|
|
237
262
|
case REQUIRED_FIELD:
|
|
238
|
-
!RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReader(): Encountered a `@required` directive at path "%s" in `%s` without the `ENABLE_REQUIRED_DIRECTIVES` feature flag enabled.', selection.path, this._selector.node.name) : invariant(false) : void 0;
|
|
239
|
-
|
|
240
263
|
var fieldValue = this._readRequiredField(selection, record, data);
|
|
241
264
|
|
|
242
265
|
if (fieldValue == null) {
|
|
@@ -322,7 +345,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
322
345
|
this._isMissingData = parentIsMissingData;
|
|
323
346
|
} else if (implementsInterface == null) {
|
|
324
347
|
// Don't know if the type implements the interface or not
|
|
325
|
-
this.
|
|
348
|
+
this._markDataAsMissing();
|
|
326
349
|
}
|
|
327
350
|
}
|
|
328
351
|
|
|
@@ -359,10 +382,22 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
359
382
|
case CLIENT_EXTENSION:
|
|
360
383
|
{
|
|
361
384
|
var isMissingData = this._isMissingData;
|
|
385
|
+
var alreadyMissingClientEdges = this._missingClientEdges.length;
|
|
386
|
+
|
|
387
|
+
if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {
|
|
388
|
+
this._clientEdgeTraversalPath.push(null);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
var _hasExpectedData2 = this._traverseSelections(selection.selections, record, data); // The only case where we want to suspend due to missing data off of
|
|
392
|
+
// a client extension is if we reached a client edge that we might be
|
|
393
|
+
// able to fetch:
|
|
362
394
|
|
|
363
|
-
var _hasExpectedData2 = this._traverseSelections(selection.selections, record, data);
|
|
364
395
|
|
|
365
|
-
this._isMissingData = isMissingData;
|
|
396
|
+
this._isMissingData = isMissingData || this._missingClientEdges.length > alreadyMissingClientEdges;
|
|
397
|
+
|
|
398
|
+
if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {
|
|
399
|
+
this._clientEdgeTraversalPath.pop();
|
|
400
|
+
}
|
|
366
401
|
|
|
367
402
|
if (!_hasExpectedData2) {
|
|
368
403
|
return false;
|
|
@@ -396,6 +431,15 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
396
431
|
|
|
397
432
|
break;
|
|
398
433
|
|
|
434
|
+
case CLIENT_EDGE:
|
|
435
|
+
if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {
|
|
436
|
+
this._readClientEdge(selection, record, data);
|
|
437
|
+
} else {
|
|
438
|
+
throw new Error('Client edges are not yet supported.');
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
break;
|
|
442
|
+
|
|
399
443
|
default:
|
|
400
444
|
selection;
|
|
401
445
|
!false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;
|
|
@@ -435,6 +479,8 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
435
479
|
_proto._readResolverField = function _readResolverField(field, record, data) {
|
|
436
480
|
var _this = this;
|
|
437
481
|
|
|
482
|
+
var _field$alias;
|
|
483
|
+
|
|
438
484
|
var resolverModule = field.resolverModule,
|
|
439
485
|
fragment = field.fragment;
|
|
440
486
|
var storageKey = getStorageKey(field, this._variables);
|
|
@@ -502,14 +548,53 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
502
548
|
this._seenRecords.add(seenRecord);
|
|
503
549
|
}
|
|
504
550
|
|
|
505
|
-
|
|
506
|
-
|
|
551
|
+
var applicationName = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;
|
|
552
|
+
data[applicationName] = result;
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
_proto._readClientEdge = function _readClientEdge(field, record, data) {
|
|
556
|
+
var _backingField$alias;
|
|
557
|
+
|
|
558
|
+
var backingField = field.backingField; // Because ReaderClientExtension doesn't have `alias` or `name` and so I don't know
|
|
559
|
+
// how to get its applicationName or storageKey yet:
|
|
560
|
+
|
|
561
|
+
!(backingField.kind !== 'ClientExtension') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Client extension client edges are not yet implemented.') : invariant(false) : void 0;
|
|
562
|
+
var applicationName = (_backingField$alias = backingField.alias) !== null && _backingField$alias !== void 0 ? _backingField$alias : backingField.name;
|
|
563
|
+
var backingFieldData = {};
|
|
564
|
+
|
|
565
|
+
this._traverseSelections([backingField], record, backingFieldData);
|
|
566
|
+
|
|
567
|
+
var destinationDataID = backingFieldData[applicationName];
|
|
568
|
+
|
|
569
|
+
if (destinationDataID == null) {
|
|
570
|
+
data[applicationName] = destinationDataID;
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
!(typeof destinationDataID === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Plural client edges not are yet implemented') : invariant(false) : void 0; // FIXME support plural
|
|
575
|
+
// Not wrapping the push/pop in a try/finally because if we throw, the
|
|
576
|
+
// Reader object is not usable after that anyway.
|
|
577
|
+
|
|
578
|
+
this._clientEdgeTraversalPath.push({
|
|
579
|
+
readerClientEdge: field,
|
|
580
|
+
clientEdgeDestinationID: destinationDataID
|
|
581
|
+
});
|
|
582
|
+
|
|
583
|
+
var prevData = data[applicationName];
|
|
584
|
+
!(prevData == null || typeof prevData === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0;
|
|
585
|
+
|
|
586
|
+
var value = this._traverse(field.linkedField, destinationDataID, // $FlowFixMe[incompatible-variance]
|
|
587
|
+
prevData);
|
|
588
|
+
|
|
589
|
+
data[applicationName] = value;
|
|
590
|
+
|
|
591
|
+
this._clientEdgeTraversalPath.pop();
|
|
507
592
|
};
|
|
508
593
|
|
|
509
594
|
_proto._readFlightField = function _readFlightField(field, record, data) {
|
|
510
|
-
var _field$
|
|
595
|
+
var _field$alias2;
|
|
511
596
|
|
|
512
|
-
var applicationName = (_field$
|
|
597
|
+
var applicationName = (_field$alias2 = field.alias) !== null && _field$alias2 !== void 0 ? _field$alias2 : field.name;
|
|
513
598
|
var storageKey = getStorageKey(field, this._variables);
|
|
514
599
|
var reactFlightClientResponseRecordID = RelayModernRecord.getLinkedRecordID(record, storageKey);
|
|
515
600
|
|
|
@@ -517,7 +602,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
517
602
|
data[applicationName] = reactFlightClientResponseRecordID;
|
|
518
603
|
|
|
519
604
|
if (reactFlightClientResponseRecordID === undefined) {
|
|
520
|
-
this.
|
|
605
|
+
this._markDataAsMissing();
|
|
521
606
|
}
|
|
522
607
|
|
|
523
608
|
return reactFlightClientResponseRecordID;
|
|
@@ -531,7 +616,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
531
616
|
data[applicationName] = reactFlightClientResponseRecord;
|
|
532
617
|
|
|
533
618
|
if (reactFlightClientResponseRecord === undefined) {
|
|
534
|
-
this.
|
|
619
|
+
this._markDataAsMissing();
|
|
535
620
|
}
|
|
536
621
|
|
|
537
622
|
return reactFlightClientResponseRecord;
|
|
@@ -543,14 +628,14 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
543
628
|
};
|
|
544
629
|
|
|
545
630
|
_proto._readScalar = function _readScalar(field, record, data) {
|
|
546
|
-
var _field$
|
|
631
|
+
var _field$alias3;
|
|
547
632
|
|
|
548
|
-
var applicationName = (_field$
|
|
633
|
+
var applicationName = (_field$alias3 = field.alias) !== null && _field$alias3 !== void 0 ? _field$alias3 : field.name;
|
|
549
634
|
var storageKey = getStorageKey(field, this._variables);
|
|
550
635
|
var value = RelayModernRecord.getValue(record, storageKey);
|
|
551
636
|
|
|
552
637
|
if (value === undefined) {
|
|
553
|
-
this.
|
|
638
|
+
this._markDataAsMissing();
|
|
554
639
|
}
|
|
555
640
|
|
|
556
641
|
data[applicationName] = value;
|
|
@@ -558,9 +643,9 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
558
643
|
};
|
|
559
644
|
|
|
560
645
|
_proto._readLink = function _readLink(field, record, data) {
|
|
561
|
-
var _field$
|
|
646
|
+
var _field$alias4;
|
|
562
647
|
|
|
563
|
-
var applicationName = (_field$
|
|
648
|
+
var applicationName = (_field$alias4 = field.alias) !== null && _field$alias4 !== void 0 ? _field$alias4 : field.name;
|
|
564
649
|
var storageKey = getStorageKey(field, this._variables);
|
|
565
650
|
var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);
|
|
566
651
|
|
|
@@ -568,7 +653,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
568
653
|
data[applicationName] = linkedID;
|
|
569
654
|
|
|
570
655
|
if (linkedID === undefined) {
|
|
571
|
-
this.
|
|
656
|
+
this._markDataAsMissing();
|
|
572
657
|
}
|
|
573
658
|
|
|
574
659
|
return linkedID;
|
|
@@ -584,9 +669,9 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
584
669
|
};
|
|
585
670
|
|
|
586
671
|
_proto._readActorChange = function _readActorChange(field, record, data) {
|
|
587
|
-
var _field$
|
|
672
|
+
var _field$alias5;
|
|
588
673
|
|
|
589
|
-
var applicationName = (_field$
|
|
674
|
+
var applicationName = (_field$alias5 = field.alias) !== null && _field$alias5 !== void 0 ? _field$alias5 : field.name;
|
|
590
675
|
var storageKey = getStorageKey(field, this._variables);
|
|
591
676
|
var externalRef = RelayModernRecord.getActorLinkedRecordID(record, storageKey);
|
|
592
677
|
|
|
@@ -594,7 +679,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
594
679
|
data[applicationName] = externalRef;
|
|
595
680
|
|
|
596
681
|
if (externalRef === undefined) {
|
|
597
|
-
this.
|
|
682
|
+
this._markDataAsMissing();
|
|
598
683
|
}
|
|
599
684
|
|
|
600
685
|
return data[applicationName];
|
|
@@ -618,9 +703,9 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
618
703
|
_proto._readPluralLink = function _readPluralLink(field, record, data) {
|
|
619
704
|
var _this2 = this;
|
|
620
705
|
|
|
621
|
-
var _field$
|
|
706
|
+
var _field$alias6;
|
|
622
707
|
|
|
623
|
-
var applicationName = (_field$
|
|
708
|
+
var applicationName = (_field$alias6 = field.alias) !== null && _field$alias6 !== void 0 ? _field$alias6 : field.name;
|
|
624
709
|
var storageKey = getStorageKey(field, this._variables);
|
|
625
710
|
var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);
|
|
626
711
|
|
|
@@ -628,7 +713,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
628
713
|
data[applicationName] = linkedIDs;
|
|
629
714
|
|
|
630
715
|
if (linkedIDs === undefined) {
|
|
631
|
-
this.
|
|
716
|
+
this._markDataAsMissing();
|
|
632
717
|
}
|
|
633
718
|
|
|
634
719
|
return linkedIDs;
|
|
@@ -640,7 +725,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
640
725
|
linkedIDs.forEach(function (linkedID, nextIndex) {
|
|
641
726
|
if (linkedID == null) {
|
|
642
727
|
if (linkedID === undefined) {
|
|
643
|
-
_this2.
|
|
728
|
+
_this2._markDataAsMissing();
|
|
644
729
|
} // $FlowFixMe[cannot-write]
|
|
645
730
|
|
|
646
731
|
|
|
@@ -671,7 +756,7 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
671
756
|
|
|
672
757
|
if (component == null) {
|
|
673
758
|
if (component === undefined) {
|
|
674
|
-
this.
|
|
759
|
+
this._markDataAsMissing();
|
|
675
760
|
}
|
|
676
761
|
|
|
677
762
|
return;
|
|
@@ -709,6 +794,12 @@ var RelayReader = /*#__PURE__*/function () {
|
|
|
709
794
|
fragmentPointers[fragmentSpread.name] = fragmentSpread.args ? getArgumentValues(fragmentSpread.args, this._variables) : {};
|
|
710
795
|
data[FRAGMENT_OWNER_KEY] = this._owner;
|
|
711
796
|
data[IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] = this._isWithinUnmatchedTypeRefinement;
|
|
797
|
+
|
|
798
|
+
if (RelayFeatureFlags.ENABLE_CLIENT_EDGES) {
|
|
799
|
+
if (this._clientEdgeTraversalPath.length > 0 && this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length - 1] !== null) {
|
|
800
|
+
data[CLIENT_EDGE_TRAVERSAL_PATH] = (0, _toConsumableArray2["default"])(this._clientEdgeTraversalPath);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
712
803
|
};
|
|
713
804
|
|
|
714
805
|
_proto._createInlineDataOrResolverFragmentPointer = function _createInlineDataOrResolverFragmentPointer(fragmentSpreadOrFragment, record, data) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -14,28 +14,28 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
14
14
|
|
|
15
15
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
16
16
|
|
|
17
|
+
var getOperation = require('../util/getOperation');
|
|
18
|
+
|
|
17
19
|
var RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
18
20
|
|
|
19
21
|
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
20
22
|
|
|
23
|
+
var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
|
|
24
|
+
|
|
25
|
+
var _require = require('./RelayConcreteVariables'),
|
|
26
|
+
getLocalVariables = _require.getLocalVariables;
|
|
27
|
+
|
|
21
28
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
22
29
|
|
|
23
30
|
var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
|
|
24
31
|
|
|
25
32
|
var RelayStoreUtils = require('./RelayStoreUtils');
|
|
26
33
|
|
|
27
|
-
var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
|
|
28
|
-
|
|
29
|
-
var getOperation = require('../util/getOperation');
|
|
30
|
-
|
|
31
|
-
var invariant = require('invariant');
|
|
32
|
-
|
|
33
|
-
var _require = require('./RelayConcreteVariables'),
|
|
34
|
-
getLocalVariables = _require.getLocalVariables;
|
|
35
|
-
|
|
36
34
|
var _require2 = require('./TypeID'),
|
|
37
35
|
generateTypeID = _require2.generateTypeID;
|
|
38
36
|
|
|
37
|
+
var invariant = require('invariant');
|
|
38
|
+
|
|
39
39
|
var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
|
|
40
40
|
CONDITION = RelayConcreteNode.CONDITION,
|
|
41
41
|
CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
|
|
@@ -100,8 +100,7 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
_proto._getVariableValue = function _getVariableValue(name) {
|
|
103
|
-
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
104
|
-
|
|
103
|
+
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
105
104
|
return this._variables[name];
|
|
106
105
|
};
|
|
107
106
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -16,25 +16,15 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
|
|
17
17
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
18
18
|
|
|
19
|
-
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
20
|
-
|
|
21
|
-
var RelayModernRecord = require('./RelayModernRecord');
|
|
22
|
-
|
|
23
|
-
var areEqual = require("fbjs/lib/areEqual");
|
|
24
|
-
|
|
25
|
-
var invariant = require('invariant');
|
|
26
|
-
|
|
27
|
-
var warning = require("fbjs/lib/warning");
|
|
28
|
-
|
|
29
19
|
var _require = require('../multi-actor-environment/ActorUtils'),
|
|
30
20
|
ACTOR_IDENTIFIER_FIELD_NAME = _require.ACTOR_IDENTIFIER_FIELD_NAME,
|
|
31
21
|
getActorIdentifierFromPayload = _require.getActorIdentifierFromPayload;
|
|
32
22
|
|
|
33
23
|
var _require2 = require('../util/RelayConcreteNode'),
|
|
34
24
|
ACTOR_CHANGE = _require2.ACTOR_CHANGE,
|
|
35
|
-
CONDITION = _require2.CONDITION,
|
|
36
25
|
CLIENT_COMPONENT = _require2.CLIENT_COMPONENT,
|
|
37
26
|
CLIENT_EXTENSION = _require2.CLIENT_EXTENSION,
|
|
27
|
+
CONDITION = _require2.CONDITION,
|
|
38
28
|
DEFER = _require2.DEFER,
|
|
39
29
|
FLIGHT_FIELD = _require2.FLIGHT_FIELD,
|
|
40
30
|
FRAGMENT_SPREAD = _require2.FRAGMENT_SPREAD,
|
|
@@ -47,6 +37,8 @@ var _require2 = require('../util/RelayConcreteNode'),
|
|
|
47
37
|
STREAM = _require2.STREAM,
|
|
48
38
|
TYPE_DISCRIMINATOR = _require2.TYPE_DISCRIMINATOR;
|
|
49
39
|
|
|
40
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
41
|
+
|
|
50
42
|
var _require3 = require('./ClientID'),
|
|
51
43
|
generateClientID = _require3.generateClientID,
|
|
52
44
|
isClientID = _require3.isClientID;
|
|
@@ -54,28 +46,36 @@ var _require3 = require('./ClientID'),
|
|
|
54
46
|
var _require4 = require('./RelayConcreteVariables'),
|
|
55
47
|
getLocalVariables = _require4.getLocalVariables;
|
|
56
48
|
|
|
49
|
+
var RelayModernRecord = require('./RelayModernRecord');
|
|
50
|
+
|
|
57
51
|
var _require5 = require('./RelayModernSelector'),
|
|
58
52
|
createNormalizationSelector = _require5.createNormalizationSelector;
|
|
59
53
|
|
|
60
54
|
var _require6 = require('./RelayStoreReactFlightUtils'),
|
|
61
|
-
refineToReactFlightPayloadData = _require6.refineToReactFlightPayloadData,
|
|
62
55
|
REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = _require6.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,
|
|
63
56
|
REACT_FLIGHT_TREE_STORAGE_KEY = _require6.REACT_FLIGHT_TREE_STORAGE_KEY,
|
|
64
|
-
REACT_FLIGHT_TYPE_NAME = _require6.REACT_FLIGHT_TYPE_NAME
|
|
57
|
+
REACT_FLIGHT_TYPE_NAME = _require6.REACT_FLIGHT_TYPE_NAME,
|
|
58
|
+
refineToReactFlightPayloadData = _require6.refineToReactFlightPayloadData;
|
|
65
59
|
|
|
66
60
|
var _require7 = require('./RelayStoreUtils'),
|
|
61
|
+
ROOT_ID = _require7.ROOT_ID,
|
|
62
|
+
ROOT_TYPE = _require7.ROOT_TYPE,
|
|
63
|
+
TYPENAME_KEY = _require7.TYPENAME_KEY,
|
|
67
64
|
getArgumentValues = _require7.getArgumentValues,
|
|
68
65
|
getHandleStorageKey = _require7.getHandleStorageKey,
|
|
69
66
|
getModuleComponentKey = _require7.getModuleComponentKey,
|
|
70
67
|
getModuleOperationKey = _require7.getModuleOperationKey,
|
|
71
|
-
getStorageKey = _require7.getStorageKey
|
|
72
|
-
TYPENAME_KEY = _require7.TYPENAME_KEY,
|
|
73
|
-
ROOT_ID = _require7.ROOT_ID,
|
|
74
|
-
ROOT_TYPE = _require7.ROOT_TYPE;
|
|
68
|
+
getStorageKey = _require7.getStorageKey;
|
|
75
69
|
|
|
76
70
|
var _require8 = require('./TypeID'),
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
TYPE_SCHEMA_TYPE = _require8.TYPE_SCHEMA_TYPE,
|
|
72
|
+
generateTypeID = _require8.generateTypeID;
|
|
73
|
+
|
|
74
|
+
var areEqual = require("fbjs/lib/areEqual");
|
|
75
|
+
|
|
76
|
+
var invariant = require('invariant');
|
|
77
|
+
|
|
78
|
+
var warning = require("fbjs/lib/warning");
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* Normalizes the results of a query and standard GraphQL response, writing the
|
|
@@ -133,8 +133,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
_proto._getVariableValue = function _getVariableValue(name) {
|
|
136
|
-
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
137
|
-
|
|
136
|
+
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
138
137
|
return this._variables[name];
|
|
139
138
|
};
|
|
140
139
|
|
|
@@ -422,7 +421,11 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
422
421
|
|
|
423
422
|
if (process.env.NODE_ENV !== "production") {
|
|
424
423
|
if (selection.kind === SCALAR_FIELD) {
|
|
425
|
-
this._validateConflictingFieldsWithIdenticalId(record, storageKey,
|
|
424
|
+
this._validateConflictingFieldsWithIdenticalId(record, storageKey, // When using `treatMissingFieldsAsNull` the conflicting validation raises a false positive
|
|
425
|
+
// because the value is set using `null` but validated using `fieldValue` which at this point
|
|
426
|
+
// will be `undefined`.
|
|
427
|
+
// Setting this to `null` matches the value that we actually set to the `fieldValue`.
|
|
428
|
+
null);
|
|
426
429
|
}
|
|
427
430
|
}
|
|
428
431
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
var invariant = require('invariant');
|
|
14
|
-
|
|
15
13
|
var _require = require('./RelayModernRecord'),
|
|
16
14
|
getType = _require.getType;
|
|
17
15
|
|
|
18
|
-
// Reachable (client) executable definitions encountered while server component
|
|
16
|
+
var invariant = require('invariant'); // Reachable (client) executable definitions encountered while server component
|
|
19
17
|
// rendering
|
|
18
|
+
|
|
19
|
+
|
|
20
20
|
var REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = 'executableDefinitions';
|
|
21
21
|
var REACT_FLIGHT_TREE_STORAGE_KEY = 'tree';
|
|
22
22
|
var REACT_FLIGHT_TYPE_NAME = 'ReactFlightComponent';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var deepFreeze = require('../util/deepFreeze');
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var recycleNodesInto = require('../util/recycleNodesInto');
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
18
18
|
|
|
19
19
|
var hasOverlappingIDs = require('./hasOverlappingIDs');
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var RelayReader = require('./RelayReader');
|
|
22
22
|
|
|
23
23
|
var RelayStoreSubscriptions = /*#__PURE__*/function () {
|
|
24
24
|
function RelayStoreSubscriptions(log, resolverCache) {
|
|
@@ -93,6 +93,7 @@ var RelayStoreSubscriptions = /*#__PURE__*/function () {
|
|
|
93
93
|
subscription.snapshot = {
|
|
94
94
|
data: subscription.snapshot.data,
|
|
95
95
|
isMissingData: backup.isMissingData,
|
|
96
|
+
missingClientEdges: backup.missingClientEdges,
|
|
96
97
|
seenRecords: backup.seenRecords,
|
|
97
98
|
selector: backup.selector,
|
|
98
99
|
missingRequiredFields: backup.missingRequiredFields
|
|
@@ -142,6 +143,7 @@ var RelayStoreSubscriptions = /*#__PURE__*/function () {
|
|
|
142
143
|
nextSnapshot = {
|
|
143
144
|
data: nextData,
|
|
144
145
|
isMissingData: nextSnapshot.isMissingData,
|
|
146
|
+
missingClientEdges: nextSnapshot.missingClientEdges,
|
|
145
147
|
seenRecords: nextSnapshot.seenRecords,
|
|
146
148
|
selector: nextSnapshot.selector,
|
|
147
149
|
missingRequiredFields: nextSnapshot.missingRequiredFields
|