relay-runtime 11.0.0 → 13.0.0-rc.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/handlers/RelayDefaultHandlerProvider.js.flow +2 -2
- package/handlers/connection/ConnectionHandler.js.flow +8 -10
- package/handlers/connection/MutationHandlers.js.flow +31 -7
- package/index.js +1 -1
- package/index.js.flow +60 -36
- package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
- package/lib/handlers/connection/ConnectionHandler.js +8 -8
- package/lib/handlers/connection/MutationHandlers.js +61 -5
- package/lib/index.js +58 -43
- package/lib/multi-actor-environment/ActorIdentifier.js +33 -0
- package/lib/multi-actor-environment/ActorSpecificEnvironment.js +152 -0
- package/lib/multi-actor-environment/ActorUtils.js +27 -0
- package/lib/multi-actor-environment/MultiActorEnvironment.js +419 -0
- package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +11 -0
- package/lib/multi-actor-environment/index.js +21 -0
- package/lib/mutations/RelayDeclarativeMutationConfig.js +4 -1
- package/lib/mutations/RelayRecordProxy.js +3 -2
- package/lib/mutations/RelayRecordSourceMutator.js +3 -2
- package/lib/mutations/RelayRecordSourceProxy.js +12 -4
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +18 -5
- package/lib/mutations/applyOptimisticMutation.js +6 -6
- package/lib/mutations/commitMutation.js +14 -10
- package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +238 -0
- package/lib/mutations/validateMutation.js +12 -5
- package/lib/network/ConvertToExecuteFunction.js +2 -1
- package/lib/network/RelayNetwork.js +3 -2
- package/lib/network/RelayQueryResponseCache.js +21 -4
- package/lib/network/wrapNetworkWithLogObserver.js +79 -0
- package/lib/query/GraphQLTag.js +3 -2
- package/lib/query/fetchQuery.js +6 -5
- package/lib/query/fetchQueryInternal.js +1 -1
- package/lib/query/fetchQuery_DEPRECATED.js +2 -1
- package/lib/store/ClientID.js +7 -1
- package/lib/store/DataChecker.js +141 -60
- package/lib/store/{RelayModernQueryExecutor.js → OperationExecutor.js} +532 -195
- package/lib/store/RelayConcreteVariables.js +24 -4
- package/lib/store/RelayModernEnvironment.js +175 -234
- package/lib/store/RelayModernFragmentSpecResolver.js +52 -26
- package/lib/store/RelayModernOperationDescriptor.js +2 -1
- package/lib/store/RelayModernRecord.js +47 -12
- package/lib/store/RelayModernSelector.js +14 -8
- package/lib/store/RelayModernStore.js +58 -29
- package/lib/store/RelayOperationTracker.js +34 -24
- package/lib/store/RelayPublishQueue.js +41 -13
- package/lib/store/RelayReader.js +287 -46
- package/lib/store/RelayRecordSource.js +87 -3
- package/lib/store/RelayReferenceMarker.js +55 -31
- package/lib/store/RelayResponseNormalizer.js +250 -108
- package/lib/store/RelayStoreReactFlightUtils.js +8 -12
- package/lib/store/RelayStoreSubscriptions.js +14 -9
- package/lib/store/RelayStoreUtils.js +11 -5
- package/lib/store/ResolverCache.js +213 -0
- package/lib/store/ResolverFragments.js +61 -0
- package/lib/store/cloneRelayHandleSourceField.js +5 -4
- package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
- package/lib/store/createRelayContext.js +4 -2
- package/lib/store/defaultGetDataID.js +3 -1
- package/lib/store/readInlineData.js +6 -2
- package/lib/subscription/requestSubscription.js +35 -9
- package/lib/util/RelayConcreteNode.js +4 -0
- package/lib/util/RelayFeatureFlags.js +11 -4
- package/lib/util/RelayProfiler.js +17 -187
- package/lib/util/RelayReplaySubject.js +22 -7
- package/lib/util/RelayRuntimeTypes.js +0 -6
- package/lib/util/StringInterner.js +71 -0
- package/lib/util/deepFreeze.js +1 -0
- package/lib/util/getFragmentIdentifier.js +15 -7
- package/lib/util/getOperation.js +2 -1
- package/lib/util/getPaginationMetadata.js +41 -0
- package/lib/util/getPaginationVariables.js +66 -0
- package/lib/util/getPendingOperationsForFragment.js +55 -0
- package/lib/util/getRefetchMetadata.js +36 -0
- package/lib/util/getRelayHandleKey.js +2 -2
- package/lib/util/getRequestIdentifier.js +2 -2
- package/lib/util/getValueAtPath.js +51 -0
- package/lib/util/isEmptyObject.js +1 -1
- package/lib/util/registerEnvironmentWithDevTools.js +26 -0
- package/lib/util/withDuration.js +31 -0
- package/multi-actor-environment/ActorIdentifier.js.flow +43 -0
- package/multi-actor-environment/ActorSpecificEnvironment.js.flow +225 -0
- package/multi-actor-environment/ActorUtils.js.flow +33 -0
- package/multi-actor-environment/MultiActorEnvironment.js.flow +506 -0
- package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +261 -0
- package/multi-actor-environment/index.js.flow +26 -0
- package/mutations/RelayDeclarativeMutationConfig.js.flow +32 -26
- package/mutations/RelayRecordProxy.js.flow +4 -5
- package/mutations/RelayRecordSourceMutator.js.flow +4 -6
- package/mutations/RelayRecordSourceProxy.js.flow +19 -10
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +22 -7
- package/mutations/applyOptimisticMutation.js.flow +13 -14
- package/mutations/commitLocalUpdate.js.flow +1 -1
- package/mutations/commitMutation.js.flow +35 -46
- package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +309 -0
- package/mutations/validateMutation.js.flow +28 -16
- package/network/ConvertToExecuteFunction.js.flow +2 -2
- package/network/RelayNetwork.js.flow +4 -5
- package/network/RelayNetworkTypes.js.flow +17 -8
- package/network/RelayObservable.js.flow +1 -1
- package/network/RelayQueryResponseCache.js.flow +34 -20
- package/network/wrapNetworkWithLogObserver.js.flow +100 -0
- package/package.json +3 -2
- package/query/GraphQLTag.js.flow +9 -9
- package/query/PreloadableQueryRegistry.js.flow +2 -1
- package/query/fetchQuery.js.flow +11 -13
- package/query/fetchQueryInternal.js.flow +6 -9
- package/query/fetchQuery_DEPRECATED.js.flow +6 -6
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/ClientID.js.flow +14 -3
- package/store/DataChecker.js.flow +162 -67
- package/store/{RelayModernQueryExecutor.js.flow → OperationExecutor.js.flow} +616 -283
- package/store/RelayConcreteVariables.js.flow +27 -5
- package/store/RelayModernEnvironment.js.flow +176 -235
- package/store/RelayModernFragmentSpecResolver.js.flow +55 -31
- package/store/RelayModernOperationDescriptor.js.flow +12 -7
- package/store/RelayModernRecord.js.flow +67 -11
- package/store/RelayModernSelector.js.flow +24 -14
- package/store/RelayModernStore.js.flow +72 -36
- package/store/RelayOperationTracker.js.flow +59 -43
- package/store/RelayOptimisticRecordSource.js.flow +2 -2
- package/store/RelayPublishQueue.js.flow +79 -34
- package/store/RelayReader.js.flow +351 -72
- package/store/RelayRecordSource.js.flow +72 -6
- package/store/RelayReferenceMarker.js.flow +60 -33
- package/store/RelayResponseNormalizer.js.flow +288 -102
- package/store/RelayStoreReactFlightUtils.js.flow +9 -13
- package/store/RelayStoreSubscriptions.js.flow +19 -11
- package/store/RelayStoreTypes.js.flow +210 -44
- package/store/RelayStoreUtils.js.flow +25 -11
- package/store/ResolverCache.js.flow +249 -0
- package/store/ResolverFragments.js.flow +121 -0
- package/store/StoreInspector.js.flow +2 -2
- package/store/TypeID.js.flow +1 -1
- package/store/ViewerPattern.js.flow +2 -2
- package/store/cloneRelayHandleSourceField.js.flow +5 -6
- package/store/cloneRelayScalarHandleSourceField.js.flow +5 -6
- package/store/createFragmentSpecResolver.js.flow +3 -4
- package/store/createRelayContext.js.flow +3 -3
- package/store/defaultGetDataID.js.flow +3 -1
- package/store/normalizeRelayPayload.js.flow +6 -7
- package/store/readInlineData.js.flow +7 -8
- package/subscription/requestSubscription.js.flow +54 -27
- package/util/NormalizationNode.js.flow +16 -3
- package/util/ReaderNode.js.flow +38 -2
- package/util/RelayConcreteNode.js.flow +4 -0
- package/util/RelayFeatureFlags.js.flow +24 -8
- package/util/RelayProfiler.js.flow +22 -194
- package/util/RelayReplaySubject.js.flow +9 -9
- package/util/RelayRuntimeTypes.js.flow +73 -4
- package/util/StringInterner.js.flow +69 -0
- package/util/createPayloadFor3DField.js.flow +3 -3
- package/util/deepFreeze.js.flow +2 -1
- package/util/getFragmentIdentifier.js.flow +27 -15
- package/util/getOperation.js.flow +2 -2
- package/util/getPaginationMetadata.js.flow +72 -0
- package/util/getPaginationVariables.js.flow +108 -0
- package/util/getPendingOperationsForFragment.js.flow +62 -0
- package/util/getRefetchMetadata.js.flow +79 -0
- package/util/getRelayHandleKey.js.flow +1 -2
- package/util/getRequestIdentifier.js.flow +3 -3
- package/util/getValueAtPath.js.flow +46 -0
- package/util/isEmptyObject.js.flow +2 -1
- package/util/registerEnvironmentWithDevTools.js.flow +33 -0
- package/util/resolveImmediate.js.flow +1 -1
- package/util/withDuration.js.flow +32 -0
- package/lib/store/RelayRecordSourceMapImpl.js +0 -107
- package/lib/store/RelayStoreSubscriptionsUsingMapByID.js +0 -318
- package/store/RelayRecordSourceMapImpl.js.flow +0 -91
- package/store/RelayStoreSubscriptionsUsingMapByID.js.flow +0 -283
|
@@ -14,26 +14,31 @@ 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
|
|
34
|
+
var _require2 = require('./TypeID'),
|
|
35
|
+
generateTypeID = _require2.generateTypeID;
|
|
28
36
|
|
|
29
|
-
var
|
|
37
|
+
var invariant = require('invariant');
|
|
30
38
|
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
generateTypeID = _require.generateTypeID;
|
|
35
|
-
|
|
36
|
-
var CONDITION = RelayConcreteNode.CONDITION,
|
|
39
|
+
var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
|
|
40
|
+
CONDITION = RelayConcreteNode.CONDITION,
|
|
41
|
+
CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
|
|
37
42
|
CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,
|
|
38
43
|
DEFER = RelayConcreteNode.DEFER,
|
|
39
44
|
FLIGHT_FIELD = RelayConcreteNode.FLIGHT_FIELD,
|
|
@@ -50,11 +55,11 @@ var ROOT_ID = RelayStoreUtils.ROOT_ID,
|
|
|
50
55
|
getStorageKey = RelayStoreUtils.getStorageKey,
|
|
51
56
|
getModuleOperationKey = RelayStoreUtils.getModuleOperationKey;
|
|
52
57
|
|
|
53
|
-
function mark(recordSource, selector, references, operationLoader) {
|
|
58
|
+
function mark(recordSource, selector, references, operationLoader, shouldProcessClientComponents) {
|
|
54
59
|
var dataID = selector.dataID,
|
|
55
60
|
node = selector.node,
|
|
56
61
|
variables = selector.variables;
|
|
57
|
-
var marker = new RelayReferenceMarker(recordSource, variables, references, operationLoader);
|
|
62
|
+
var marker = new RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents);
|
|
58
63
|
marker.mark(node, dataID);
|
|
59
64
|
}
|
|
60
65
|
/**
|
|
@@ -63,12 +68,13 @@ function mark(recordSource, selector, references, operationLoader) {
|
|
|
63
68
|
|
|
64
69
|
|
|
65
70
|
var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
66
|
-
function RelayReferenceMarker(recordSource, variables, references, operationLoader) {
|
|
71
|
+
function RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents) {
|
|
67
72
|
this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;
|
|
68
73
|
this._operationName = null;
|
|
69
74
|
this._recordSource = recordSource;
|
|
70
75
|
this._references = references;
|
|
71
76
|
this._variables = variables;
|
|
77
|
+
this._shouldProcessClientComponents = shouldProcessClientComponents;
|
|
72
78
|
}
|
|
73
79
|
|
|
74
80
|
var _proto = RelayReferenceMarker.prototype;
|
|
@@ -104,6 +110,12 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
104
110
|
selections.forEach(function (selection) {
|
|
105
111
|
/* eslint-disable no-fallthrough */
|
|
106
112
|
switch (selection.kind) {
|
|
113
|
+
case ACTOR_CHANGE:
|
|
114
|
+
// TODO: T89695151 Support multi-actor record sources in RelayReferenceMarker.js
|
|
115
|
+
_this._traverseLink(selection.linkedField, record);
|
|
116
|
+
|
|
117
|
+
break;
|
|
118
|
+
|
|
107
119
|
case LINKED_FIELD:
|
|
108
120
|
if (selection.plural) {
|
|
109
121
|
_this._traversePluralLink(selection, record);
|
|
@@ -114,7 +126,7 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
114
126
|
break;
|
|
115
127
|
|
|
116
128
|
case CONDITION:
|
|
117
|
-
var conditionValue = _this._getVariableValue(selection.condition);
|
|
129
|
+
var conditionValue = Boolean(_this._getVariableValue(selection.condition));
|
|
118
130
|
|
|
119
131
|
if (conditionValue === selection.passingValue) {
|
|
120
132
|
_this._traverseSelections(selection.selections, record);
|
|
@@ -129,24 +141,25 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
129
141
|
if (typeName != null && typeName === selection.type) {
|
|
130
142
|
_this._traverseSelections(selection.selections, record);
|
|
131
143
|
}
|
|
132
|
-
} else
|
|
144
|
+
} else {
|
|
133
145
|
var _typeName = RelayModernRecord.getType(record);
|
|
134
146
|
|
|
135
147
|
var typeID = generateTypeID(_typeName);
|
|
136
148
|
|
|
137
149
|
_this._references.add(typeID);
|
|
138
150
|
|
|
139
|
-
_this._traverseSelections(selection.selections, record);
|
|
140
|
-
} else {
|
|
141
151
|
_this._traverseSelections(selection.selections, record);
|
|
142
152
|
}
|
|
143
153
|
|
|
144
154
|
break;
|
|
145
|
-
// $FlowFixMe[incompatible-type]
|
|
146
155
|
|
|
147
156
|
case FRAGMENT_SPREAD:
|
|
157
|
+
var prevVariables = _this._variables;
|
|
158
|
+
_this._variables = getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);
|
|
159
|
+
|
|
148
160
|
_this._traverseSelections(selection.fragment.selections, record);
|
|
149
161
|
|
|
162
|
+
_this._variables = prevVariables;
|
|
150
163
|
break;
|
|
151
164
|
|
|
152
165
|
case LINKED_HANDLE:
|
|
@@ -181,13 +194,11 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
181
194
|
|
|
182
195
|
case TYPE_DISCRIMINATOR:
|
|
183
196
|
{
|
|
184
|
-
|
|
185
|
-
var _typeName2 = RelayModernRecord.getType(record);
|
|
197
|
+
var _typeName2 = RelayModernRecord.getType(record);
|
|
186
198
|
|
|
187
|
-
|
|
199
|
+
var _typeID = generateTypeID(_typeName2);
|
|
188
200
|
|
|
189
|
-
|
|
190
|
-
}
|
|
201
|
+
_this._references.add(_typeID);
|
|
191
202
|
|
|
192
203
|
break;
|
|
193
204
|
}
|
|
@@ -211,6 +222,15 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
211
222
|
|
|
212
223
|
break;
|
|
213
224
|
|
|
225
|
+
case CLIENT_COMPONENT:
|
|
226
|
+
if (_this._shouldProcessClientComponents === false) {
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
_this._traverseSelections(selection.fragment.selections, record);
|
|
231
|
+
|
|
232
|
+
break;
|
|
233
|
+
|
|
214
234
|
default:
|
|
215
235
|
selection;
|
|
216
236
|
!false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReferenceMarker: Unknown AST node `%s`.', selection) : invariant(false) : void 0;
|
|
@@ -233,9 +253,13 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
233
253
|
var normalizationRootNode = operationLoader.get(operationReference);
|
|
234
254
|
|
|
235
255
|
if (normalizationRootNode != null) {
|
|
236
|
-
var
|
|
256
|
+
var operation = getOperation(normalizationRootNode);
|
|
257
|
+
var prevVariables = this._variables;
|
|
258
|
+
this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);
|
|
259
|
+
|
|
260
|
+
this._traverseSelections(operation.selections, record);
|
|
237
261
|
|
|
238
|
-
this.
|
|
262
|
+
this._variables = prevVariables;
|
|
239
263
|
} // Otherwise, if the operation is not available, we assume that the data
|
|
240
264
|
// cannot have been processed yet and therefore isn't in the store to
|
|
241
265
|
// begin with.
|
|
@@ -286,26 +310,26 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
286
310
|
return;
|
|
287
311
|
}
|
|
288
312
|
|
|
289
|
-
var
|
|
313
|
+
var reachableExecutableDefinitions = RelayModernRecord.getValue(reactFlightClientResponseRecord, RelayStoreReactFlightUtils.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);
|
|
290
314
|
|
|
291
|
-
if (!Array.isArray(
|
|
315
|
+
if (!Array.isArray(reachableExecutableDefinitions)) {
|
|
292
316
|
return;
|
|
293
317
|
}
|
|
294
318
|
|
|
295
319
|
var operationLoader = this._operationLoader;
|
|
296
|
-
!(operationLoader !== null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using ' + 'React Flight') : invariant(false) : void 0; // In Flight, the variables that are in scope for reachable
|
|
297
|
-
// the same as what's in scope for the outer query.
|
|
320
|
+
!(operationLoader !== null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using ' + 'React Flight') : invariant(false) : void 0; // In Flight, the variables that are in scope for reachable executable
|
|
321
|
+
// definitions aren't the same as what's in scope for the outer query.
|
|
298
322
|
|
|
299
323
|
var prevVariables = this._variables; // $FlowFixMe[incompatible-cast]
|
|
300
324
|
|
|
301
|
-
var _iterator = (0, _createForOfIteratorHelper2["default"])(
|
|
325
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(reachableExecutableDefinitions),
|
|
302
326
|
_step;
|
|
303
327
|
|
|
304
328
|
try {
|
|
305
329
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
306
|
-
var
|
|
307
|
-
this._variables =
|
|
308
|
-
var operationReference =
|
|
330
|
+
var definition = _step.value;
|
|
331
|
+
this._variables = definition.variables;
|
|
332
|
+
var operationReference = definition.module;
|
|
309
333
|
var normalizationRootNode = operationLoader.get(operationReference);
|
|
310
334
|
|
|
311
335
|
if (normalizationRootNode != null) {
|