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,13 +14,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
14
14
|
|
|
15
15
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
16
16
|
|
|
17
|
-
var invariant = require(
|
|
17
|
+
var invariant = require('invariant');
|
|
18
18
|
|
|
19
19
|
var RelayOperationTracker = /*#__PURE__*/function () {
|
|
20
20
|
function RelayOperationTracker() {
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
21
|
+
this._ownersToPendingOperations = new Map();
|
|
22
|
+
this._pendingOperationsToOwners = new Map();
|
|
23
|
+
this._ownersToPendingPromise = new Map();
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Update the map of current processing operations with the set of
|
|
@@ -46,19 +46,19 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
46
46
|
var owner = _step.value;
|
|
47
47
|
var ownerIdentifier = owner.identifier;
|
|
48
48
|
|
|
49
|
-
var pendingOperationsAffectingOwner = this.
|
|
49
|
+
var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);
|
|
50
50
|
|
|
51
51
|
if (pendingOperationsAffectingOwner != null) {
|
|
52
52
|
// In this case the `ownerIdentifier` already affected by some operations
|
|
53
53
|
// We just need to detect, is it the same operation that we already
|
|
54
54
|
// have in the list, or it's a new operation
|
|
55
55
|
if (!pendingOperationsAffectingOwner.has(pendingOperationIdentifier)) {
|
|
56
|
-
pendingOperationsAffectingOwner.
|
|
56
|
+
pendingOperationsAffectingOwner.set(pendingOperationIdentifier, pendingOperation);
|
|
57
57
|
newlyAffectedOwnersIdentifier.add(ownerIdentifier);
|
|
58
58
|
}
|
|
59
59
|
} else {
|
|
60
60
|
// This is a new `ownerIdentifier` that is affected by the operation
|
|
61
|
-
this.
|
|
61
|
+
this._ownersToPendingOperations.set(ownerIdentifier, new Map([[pendingOperationIdentifier, pendingOperation]]));
|
|
62
62
|
|
|
63
63
|
newlyAffectedOwnersIdentifier.add(ownerIdentifier);
|
|
64
64
|
}
|
|
@@ -73,10 +73,10 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
73
73
|
if (newlyAffectedOwnersIdentifier.size === 0) {
|
|
74
74
|
return;
|
|
75
75
|
} // But, if some owners were affected we need to add them to
|
|
76
|
-
// the `
|
|
76
|
+
// the `_pendingOperationsToOwners` set
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
var
|
|
79
|
+
var ownersAffectedByPendingOperation = this._pendingOperationsToOwners.get(pendingOperationIdentifier) || new Set();
|
|
80
80
|
|
|
81
81
|
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(newlyAffectedOwnersIdentifier),
|
|
82
82
|
_step2;
|
|
@@ -87,7 +87,7 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
87
87
|
|
|
88
88
|
this._resolveOwnerResolvers(_ownerIdentifier);
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
ownersAffectedByPendingOperation.add(_ownerIdentifier);
|
|
91
91
|
}
|
|
92
92
|
} catch (err) {
|
|
93
93
|
_iterator2.e(err);
|
|
@@ -95,7 +95,7 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
95
95
|
_iterator2.f();
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
this.
|
|
98
|
+
this._pendingOperationsToOwners.set(pendingOperationIdentifier, ownersAffectedByPendingOperation);
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
101
|
* Once pending operation is completed we need to remove it
|
|
@@ -106,7 +106,7 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
106
106
|
_proto.complete = function complete(pendingOperation) {
|
|
107
107
|
var pendingOperationIdentifier = pendingOperation.identifier;
|
|
108
108
|
|
|
109
|
-
var affectedOwnersIdentifier = this.
|
|
109
|
+
var affectedOwnersIdentifier = this._pendingOperationsToOwners.get(pendingOperationIdentifier);
|
|
110
110
|
|
|
111
111
|
if (affectedOwnersIdentifier == null) {
|
|
112
112
|
return;
|
|
@@ -125,7 +125,7 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
125
125
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
126
126
|
var ownerIdentifier = _step3.value;
|
|
127
127
|
|
|
128
|
-
var pendingOperationsAffectingOwner = this.
|
|
128
|
+
var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);
|
|
129
129
|
|
|
130
130
|
if (!pendingOperationsAffectingOwner) {
|
|
131
131
|
continue;
|
|
@@ -155,7 +155,7 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
155
155
|
|
|
156
156
|
this._resolveOwnerResolvers(_ownerIdentifier2);
|
|
157
157
|
|
|
158
|
-
this.
|
|
158
|
+
this._ownersToPendingOperations["delete"](_ownerIdentifier2);
|
|
159
159
|
} // Update all ownerIdentifier that were updated by `pendingOperationIdentifier` but still
|
|
160
160
|
// are affected by other operations
|
|
161
161
|
|
|
@@ -181,30 +181,35 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
181
181
|
_iterator5.f();
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
this.
|
|
184
|
+
this._pendingOperationsToOwners["delete"](pendingOperationIdentifier);
|
|
185
185
|
};
|
|
186
186
|
|
|
187
187
|
_proto._resolveOwnerResolvers = function _resolveOwnerResolvers(ownerIdentifier) {
|
|
188
|
-
var promiseEntry = this.
|
|
188
|
+
var promiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);
|
|
189
189
|
|
|
190
190
|
if (promiseEntry != null) {
|
|
191
191
|
promiseEntry.resolve();
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
this.
|
|
194
|
+
this._ownersToPendingPromise["delete"](ownerIdentifier);
|
|
195
195
|
};
|
|
196
196
|
|
|
197
|
-
_proto.
|
|
197
|
+
_proto.getPendingOperationsAffectingOwner = function getPendingOperationsAffectingOwner(owner) {
|
|
198
198
|
var ownerIdentifier = owner.identifier;
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
var pendingOperationsForOwner = this._ownersToPendingOperations.get(ownerIdentifier);
|
|
201
|
+
|
|
202
|
+
if (pendingOperationsForOwner == null || pendingOperationsForOwner.size === 0) {
|
|
201
203
|
return null;
|
|
202
204
|
}
|
|
203
205
|
|
|
204
|
-
var cachedPromiseEntry = this.
|
|
206
|
+
var cachedPromiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);
|
|
205
207
|
|
|
206
208
|
if (cachedPromiseEntry != null) {
|
|
207
|
-
return
|
|
209
|
+
return {
|
|
210
|
+
promise: cachedPromiseEntry.promise,
|
|
211
|
+
pendingOperations: cachedPromiseEntry.pendingOperations
|
|
212
|
+
};
|
|
208
213
|
}
|
|
209
214
|
|
|
210
215
|
var resolve;
|
|
@@ -212,13 +217,18 @@ var RelayOperationTracker = /*#__PURE__*/function () {
|
|
|
212
217
|
resolve = r;
|
|
213
218
|
});
|
|
214
219
|
!(resolve != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayOperationTracker: Expected resolver to be defined. If you' + 'are seeing this, it is likely a bug in Relay.') : invariant(false) : void 0;
|
|
220
|
+
var pendingOperations = Array.from(pendingOperationsForOwner.values());
|
|
215
221
|
|
|
216
|
-
this.
|
|
222
|
+
this._ownersToPendingPromise.set(ownerIdentifier, {
|
|
217
223
|
promise: promise,
|
|
218
|
-
resolve: resolve
|
|
224
|
+
resolve: resolve,
|
|
225
|
+
pendingOperations: pendingOperations
|
|
219
226
|
});
|
|
220
227
|
|
|
221
|
-
return
|
|
228
|
+
return {
|
|
229
|
+
promise: promise,
|
|
230
|
+
pendingOperations: pendingOperations
|
|
231
|
+
};
|
|
222
232
|
};
|
|
223
233
|
|
|
224
234
|
return RelayOperationTracker;
|
|
@@ -10,11 +10,7 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
var ErrorUtils
|
|
14
|
-
|
|
15
|
-
var RelayReader = require('./RelayReader');
|
|
16
|
-
|
|
17
|
-
var RelayRecordSource = require('./RelayRecordSource');
|
|
13
|
+
var _global$ErrorUtils$ap, _global, _global$ErrorUtils;
|
|
18
14
|
|
|
19
15
|
var RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');
|
|
20
16
|
|
|
@@ -22,10 +18,17 @@ var RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');
|
|
|
22
18
|
|
|
23
19
|
var RelayRecordSourceSelectorProxy = require('../mutations/RelayRecordSourceSelectorProxy');
|
|
24
20
|
|
|
25
|
-
var
|
|
21
|
+
var RelayReader = require('./RelayReader');
|
|
22
|
+
|
|
23
|
+
var RelayRecordSource = require('./RelayRecordSource');
|
|
24
|
+
|
|
25
|
+
var invariant = require('invariant');
|
|
26
26
|
|
|
27
27
|
var warning = require("fbjs/lib/warning");
|
|
28
28
|
|
|
29
|
+
var applyWithGuard = (_global$ErrorUtils$ap = (_global = global) === null || _global === void 0 ? void 0 : (_global$ErrorUtils = _global.ErrorUtils) === null || _global$ErrorUtils === void 0 ? void 0 : _global$ErrorUtils.applyWithGuard) !== null && _global$ErrorUtils$ap !== void 0 ? _global$ErrorUtils$ap : function (callback, context, args, onError, name) {
|
|
30
|
+
return callback.apply(context, args);
|
|
31
|
+
};
|
|
29
32
|
/**
|
|
30
33
|
* Coordinates the concurrent modification of a `Store` due to optimistic and
|
|
31
34
|
* non-revertable client updates and server payloads:
|
|
@@ -37,13 +40,20 @@ var warning = require("fbjs/lib/warning");
|
|
|
37
40
|
* - Executes handlers for "handle" fields.
|
|
38
41
|
* - Reverts and reapplies pending optimistic updates.
|
|
39
42
|
*/
|
|
43
|
+
|
|
40
44
|
var RelayPublishQueue = /*#__PURE__*/function () {
|
|
41
45
|
// True if the next `run()` should apply the backup and rerun all optimistic
|
|
42
46
|
// updates performing a rebase.
|
|
43
47
|
// Payloads to apply or Sources to publish to the store with the next `run()`.
|
|
48
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
44
49
|
// Optimistic updaters to add with the next `run()`.
|
|
50
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
45
51
|
// Optimistic updaters that are already added and might be rerun in order to
|
|
46
52
|
// rebase them.
|
|
53
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
54
|
+
// For _pendingOptimisticUpdates, _appliedOptimisticUpdates, and _pendingData,
|
|
55
|
+
// we want to parametrize by "any" since the type is effectively
|
|
56
|
+
// "the union of all T's that PublishQueue's methods were called with".
|
|
47
57
|
// Garbage collection hold, should rerun gc on dispose
|
|
48
58
|
function RelayPublishQueue(store, handlerProvider, getDataID) {
|
|
49
59
|
this._hasStoreSnapshot = false;
|
|
@@ -145,11 +155,25 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
145
155
|
;
|
|
146
156
|
|
|
147
157
|
_proto.run = function run(sourceOperation) {
|
|
158
|
+
var runWillClearGcHold = this._appliedOptimisticUpdates === 0 && !!this._gcHold;
|
|
159
|
+
var runIsANoop = // this._pendingBackupRebase is true if an applied optimistic
|
|
160
|
+
// update has potentially been reverted or if this._pendingData is not empty.
|
|
161
|
+
!this._pendingBackupRebase && this._pendingOptimisticUpdates.size === 0 && !runWillClearGcHold;
|
|
162
|
+
|
|
148
163
|
if (process.env.NODE_ENV !== "production") {
|
|
164
|
+
process.env.NODE_ENV !== "production" ? warning(!runIsANoop, 'RelayPublishQueue.run was called, but the call would have been a noop.') : void 0;
|
|
149
165
|
process.env.NODE_ENV !== "production" ? warning(this._isRunning !== true, 'A store update was detected within another store update. Please ' + "make sure new store updates aren't being executed within an " + 'updater function for a different update.') : void 0;
|
|
150
166
|
this._isRunning = true;
|
|
151
167
|
}
|
|
152
168
|
|
|
169
|
+
if (runIsANoop) {
|
|
170
|
+
if (process.env.NODE_ENV !== "production") {
|
|
171
|
+
this._isRunning = false;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
|
|
153
177
|
if (this._pendingBackupRebase) {
|
|
154
178
|
if (this._hasStoreSnapshot) {
|
|
155
179
|
this._store.restore();
|
|
@@ -259,7 +283,7 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
259
283
|
var sink = RelayRecordSource.create();
|
|
260
284
|
var mutator = new RelayRecordSourceMutator(_this2._store.getSource(), sink);
|
|
261
285
|
var recordSourceProxy = new RelayRecordSourceProxy(mutator, _this2._getDataID);
|
|
262
|
-
|
|
286
|
+
applyWithGuard(updater, null, [recordSourceProxy], null, 'RelayPublishQueue:commitData');
|
|
263
287
|
invalidatedStore = invalidatedStore || recordSourceProxy.isStoreMarkedForInvalidation();
|
|
264
288
|
var idsMarkedForInvalidation = recordSourceProxy.getIDsMarkedForInvalidation();
|
|
265
289
|
|
|
@@ -283,28 +307,32 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
283
307
|
|
|
284
308
|
var sink = RelayRecordSource.create();
|
|
285
309
|
var mutator = new RelayRecordSourceMutator(this._store.getSource(), sink);
|
|
286
|
-
var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider);
|
|
310
|
+
var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider); // $FlowFixMe[unclear-type] see explanation above.
|
|
287
311
|
|
|
288
312
|
var processUpdate = function processUpdate(optimisticUpdate) {
|
|
289
313
|
if (optimisticUpdate.storeUpdater) {
|
|
290
314
|
var storeUpdater = optimisticUpdate.storeUpdater;
|
|
291
|
-
|
|
315
|
+
applyWithGuard(storeUpdater, null, [recordSourceProxy], null, 'RelayPublishQueue:applyUpdates');
|
|
292
316
|
} else {
|
|
293
317
|
var operation = optimisticUpdate.operation,
|
|
294
318
|
payload = optimisticUpdate.payload,
|
|
295
319
|
updater = optimisticUpdate.updater;
|
|
296
320
|
var source = payload.source,
|
|
297
321
|
fieldPayloads = payload.fieldPayloads;
|
|
298
|
-
var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, operation.fragment);
|
|
299
|
-
var selectorData;
|
|
300
322
|
|
|
301
323
|
if (source) {
|
|
302
324
|
recordSourceProxy.publishSource(source, fieldPayloads);
|
|
303
|
-
selectorData = lookupSelector(source, operation.fragment);
|
|
304
325
|
}
|
|
305
326
|
|
|
306
327
|
if (updater) {
|
|
307
|
-
|
|
328
|
+
var selectorData;
|
|
329
|
+
|
|
330
|
+
if (source) {
|
|
331
|
+
selectorData = lookupSelector(source, operation.fragment);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, operation.fragment);
|
|
335
|
+
applyWithGuard(updater, null, [recordSourceSelectorProxy, selectorData], null, 'RelayPublishQueue:applyUpdates');
|
|
308
336
|
}
|
|
309
337
|
}
|
|
310
338
|
}; // rerun all updaters in case we are running a rebase
|