relay-runtime 9.0.0 → 10.1.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 +47 -0
- package/handlers/connection/ConnectionHandler.js.flow +549 -0
- package/handlers/connection/ConnectionInterface.js.flow +92 -0
- package/handlers/connection/MutationHandlers.js.flow +199 -0
- package/index.js +1 -1
- package/index.js.flow +335 -0
- package/lib/handlers/RelayDefaultHandlerProvider.js +20 -0
- package/lib/handlers/connection/ConnectionHandler.js +1 -3
- package/lib/handlers/connection/MutationHandlers.js +212 -0
- package/lib/index.js +14 -2
- package/lib/mutations/RelayDeclarativeMutationConfig.js +22 -45
- package/lib/mutations/RelayRecordProxy.js +1 -3
- package/lib/mutations/RelayRecordSourceMutator.js +1 -3
- package/lib/mutations/RelayRecordSourceProxy.js +1 -3
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +1 -3
- package/lib/mutations/commitMutation.js +2 -3
- package/lib/mutations/validateMutation.js +40 -9
- package/lib/network/RelayObservable.js +9 -9
- package/lib/network/RelayQueryResponseCache.js +8 -6
- package/lib/query/GraphQLTag.js +2 -1
- package/lib/query/PreloadableQueryRegistry.js +70 -0
- package/lib/query/fetchQuery.js +2 -3
- package/lib/query/fetchQueryInternal.js +5 -14
- package/lib/store/DataChecker.js +200 -71
- package/lib/store/RelayConcreteVariables.js +6 -2
- package/lib/store/RelayModernEnvironment.js +124 -65
- package/lib/store/RelayModernFragmentSpecResolver.js +19 -14
- package/lib/store/RelayModernOperationDescriptor.js +6 -5
- package/lib/store/RelayModernQueryExecutor.js +122 -73
- package/lib/store/RelayModernRecord.js +14 -9
- package/lib/store/RelayModernSelector.js +6 -2
- package/lib/store/RelayModernStore.js +281 -131
- package/lib/store/RelayOperationTracker.js +35 -78
- package/lib/store/RelayOptimisticRecordSource.js +7 -5
- package/lib/store/RelayPublishQueue.js +2 -4
- package/lib/store/RelayReader.js +304 -52
- package/lib/store/RelayRecordSource.js +1 -3
- package/lib/store/RelayRecordSourceMapImpl.js +13 -18
- package/lib/store/RelayReferenceMarker.js +125 -14
- package/lib/store/RelayResponseNormalizer.js +261 -66
- package/lib/store/RelayStoreReactFlightUtils.js +47 -0
- package/lib/store/RelayStoreUtils.js +1 -0
- package/lib/store/StoreInspector.js +8 -8
- package/lib/store/TypeID.js +28 -0
- package/lib/store/cloneRelayScalarHandleSourceField.js +44 -0
- package/lib/store/defaultRequiredFieldLogger.js +18 -0
- package/lib/store/normalizeRelayPayload.js +6 -2
- package/lib/store/readInlineData.js +1 -1
- package/lib/subscription/requestSubscription.js +4 -3
- package/lib/util/NormalizationNode.js +1 -5
- package/lib/util/RelayConcreteNode.js +11 -6
- package/lib/util/RelayError.js +39 -9
- package/lib/util/RelayFeatureFlags.js +6 -3
- package/lib/util/RelayReplaySubject.js +3 -3
- package/lib/util/createPayloadFor3DField.js +7 -2
- package/lib/util/getFragmentIdentifier.js +12 -3
- package/lib/util/getOperation.js +33 -0
- package/lib/util/getRequestIdentifier.js +2 -2
- package/lib/util/isEmptyObject.js +25 -0
- package/lib/util/recycleNodesInto.js +6 -7
- package/lib/util/reportMissingRequiredFields.js +48 -0
- package/mutations/RelayDeclarativeMutationConfig.js.flow +380 -0
- package/mutations/RelayRecordProxy.js.flow +165 -0
- package/mutations/RelayRecordSourceMutator.js.flow +238 -0
- package/mutations/RelayRecordSourceProxy.js.flow +164 -0
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +119 -0
- package/mutations/applyOptimisticMutation.js.flow +76 -0
- package/mutations/commitLocalUpdate.js.flow +24 -0
- package/mutations/commitMutation.js.flow +181 -0
- package/mutations/validateMutation.js.flow +242 -0
- package/network/ConvertToExecuteFunction.js.flow +49 -0
- package/network/RelayNetwork.js.flow +84 -0
- package/network/RelayNetworkTypes.js.flow +145 -0
- package/network/RelayObservable.js.flow +634 -0
- package/network/RelayQueryResponseCache.js.flow +111 -0
- package/package.json +2 -2
- package/query/GraphQLTag.js.flow +168 -0
- package/query/PreloadableQueryRegistry.js.flow +65 -0
- package/query/fetchQuery.js.flow +47 -0
- package/query/fetchQueryInternal.js.flow +343 -0
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/ClientID.js.flow +43 -0
- package/store/DataChecker.js.flow +568 -0
- package/store/RelayConcreteVariables.js.flow +96 -0
- package/store/RelayModernEnvironment.js.flow +571 -0
- package/store/RelayModernFragmentSpecResolver.js.flow +438 -0
- package/store/RelayModernOperationDescriptor.js.flow +92 -0
- package/store/RelayModernQueryExecutor.js.flow +1345 -0
- package/store/RelayModernRecord.js.flow +403 -0
- package/store/RelayModernSelector.js.flow +455 -0
- package/store/RelayModernStore.js.flow +858 -0
- package/store/RelayOperationTracker.js.flow +164 -0
- package/store/RelayOptimisticRecordSource.js.flow +119 -0
- package/store/RelayPublishQueue.js.flow +401 -0
- package/store/RelayReader.js.flow +638 -0
- package/store/RelayRecordSource.js.flow +29 -0
- package/store/RelayRecordSourceMapImpl.js.flow +87 -0
- package/store/RelayRecordState.js.flow +37 -0
- package/store/RelayReferenceMarker.js.flow +324 -0
- package/store/RelayResponseNormalizer.js.flow +791 -0
- package/store/RelayStoreReactFlightUtils.js.flow +64 -0
- package/store/RelayStoreTypes.js.flow +958 -0
- package/store/RelayStoreUtils.js.flow +219 -0
- package/store/StoreInspector.js.flow +171 -0
- package/store/TypeID.js.flow +28 -0
- package/store/ViewerPattern.js.flow +26 -0
- package/store/cloneRelayHandleSourceField.js.flow +66 -0
- package/store/cloneRelayScalarHandleSourceField.js.flow +62 -0
- package/store/createFragmentSpecResolver.js.flow +55 -0
- package/store/createRelayContext.js.flow +44 -0
- package/store/defaultGetDataID.js.flow +27 -0
- package/store/defaultRequiredFieldLogger.js.flow +23 -0
- package/store/hasOverlappingIDs.js.flow +34 -0
- package/store/isRelayModernEnvironment.js.flow +27 -0
- package/store/normalizeRelayPayload.js.flow +51 -0
- package/store/readInlineData.js.flow +75 -0
- package/subscription/requestSubscription.js.flow +103 -0
- package/util/JSResourceTypes.flow.js.flow +20 -0
- package/util/NormalizationNode.js.flow +213 -0
- package/util/ReaderNode.js.flow +227 -0
- package/util/RelayConcreteNode.js.flow +99 -0
- package/util/RelayDefaultHandleKey.js.flow +17 -0
- package/util/RelayError.js.flow +62 -0
- package/util/RelayFeatureFlags.js.flow +37 -0
- package/util/RelayProfiler.js.flow +284 -0
- package/util/RelayReplaySubject.js.flow +135 -0
- package/util/RelayRuntimeTypes.js.flow +72 -0
- package/util/createPayloadFor3DField.js.flow +43 -0
- package/util/deepFreeze.js.flow +36 -0
- package/util/generateID.js.flow +21 -0
- package/util/getFragmentIdentifier.js.flow +76 -0
- package/util/getOperation.js.flow +40 -0
- package/util/getRelayHandleKey.js.flow +41 -0
- package/util/getRequestIdentifier.js.flow +42 -0
- package/util/isEmptyObject.js.flow +25 -0
- package/util/isPromise.js.flow +21 -0
- package/util/isScalarAndEqual.js.flow +26 -0
- package/util/recycleNodesInto.js.flow +87 -0
- package/util/reportMissingRequiredFields.js.flow +51 -0
- package/util/resolveImmediate.js.flow +30 -0
- package/util/stableCopy.js.flow +35 -0
|
@@ -11,6 +11,14 @@
|
|
|
11
11
|
// flowlint ambiguous-object-type:error
|
|
12
12
|
'use strict';
|
|
13
13
|
|
|
14
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
+
|
|
14
22
|
var RelayDefaultHandlerProvider = require('../handlers/RelayDefaultHandlerProvider');
|
|
15
23
|
|
|
16
24
|
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
@@ -27,29 +35,36 @@ var RelayRecordSource = require('./RelayRecordSource');
|
|
|
27
35
|
|
|
28
36
|
var defaultGetDataID = require('./defaultGetDataID');
|
|
29
37
|
|
|
38
|
+
var defaultRequiredFieldLogger = require('./defaultRequiredFieldLogger');
|
|
39
|
+
|
|
30
40
|
var generateID = require('../util/generateID');
|
|
31
41
|
|
|
32
42
|
var invariant = require("fbjs/lib/invariant");
|
|
33
43
|
|
|
34
|
-
var RelayModernEnvironment =
|
|
35
|
-
/*#__PURE__*/
|
|
36
|
-
function () {
|
|
44
|
+
var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
37
45
|
function RelayModernEnvironment(config) {
|
|
38
46
|
var _this = this;
|
|
39
47
|
|
|
40
|
-
var _config$log, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$operationTrac;
|
|
48
|
+
var _config$log, _config$requiredField, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$isServer, _config$operationTrac;
|
|
41
49
|
|
|
42
50
|
this.configName = config.configName;
|
|
43
51
|
var handlerProvider = config.handlerProvider ? config.handlerProvider : RelayDefaultHandlerProvider;
|
|
52
|
+
this._treatMissingFieldsAsNull = config.treatMissingFieldsAsNull === true;
|
|
44
53
|
var operationLoader = config.operationLoader;
|
|
54
|
+
var reactFlightPayloadDeserializer = config.reactFlightPayloadDeserializer;
|
|
45
55
|
|
|
46
56
|
if (process.env.NODE_ENV !== "production") {
|
|
47
57
|
if (operationLoader != null) {
|
|
48
58
|
!(typeof operationLoader === 'object' && typeof operationLoader.get === 'function' && typeof operationLoader.load === 'function') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernEnvironment: Expected `operationLoader` to be an object ' + 'with get() and load() functions, got `%s`.', operationLoader) : invariant(false) : void 0;
|
|
49
59
|
}
|
|
60
|
+
|
|
61
|
+
if (reactFlightPayloadDeserializer != null) {
|
|
62
|
+
!(typeof reactFlightPayloadDeserializer === 'function') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernEnvironment: Expected `reactFlightPayloadDeserializer` ' + ' to be a function, got `%s`.', reactFlightPayloadDeserializer) : invariant(false) : void 0;
|
|
63
|
+
}
|
|
50
64
|
}
|
|
51
65
|
|
|
52
66
|
this.__log = (_config$log = config.log) !== null && _config$log !== void 0 ? _config$log : emptyFunction;
|
|
67
|
+
this.requiredFieldLogger = (_config$requiredField = config.requiredFieldLogger) !== null && _config$requiredField !== void 0 ? _config$requiredField : defaultRequiredFieldLogger;
|
|
53
68
|
this._defaultRenderPolicy = ((_config$UNSTABLE_defa = config.UNSTABLE_defaultRenderPolicy) !== null && _config$UNSTABLE_defa !== void 0 ? _config$UNSTABLE_defa : RelayFeatureFlags.ENABLE_PARTIAL_RENDERING_DEFAULT === true) ? 'partial' : 'full';
|
|
54
69
|
this._operationLoader = operationLoader;
|
|
55
70
|
this._operationExecutions = new Map();
|
|
@@ -59,6 +74,7 @@ function () {
|
|
|
59
74
|
this._scheduler = (_config$scheduler = config.scheduler) !== null && _config$scheduler !== void 0 ? _config$scheduler : null;
|
|
60
75
|
this._store = config.store;
|
|
61
76
|
this.options = config.options;
|
|
77
|
+
this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;
|
|
62
78
|
|
|
63
79
|
this.__setNet = function (newNet) {
|
|
64
80
|
return _this._network = newNet;
|
|
@@ -85,6 +101,7 @@ function () {
|
|
|
85
101
|
|
|
86
102
|
this._missingFieldHandlers = config.missingFieldHandlers;
|
|
87
103
|
this._operationTracker = (_config$operationTrac = config.operationTracker) !== null && _config$operationTrac !== void 0 ? _config$operationTrac : new RelayOperationTracker();
|
|
104
|
+
this._reactFlightPayloadDeserializer = reactFlightPayloadDeserializer;
|
|
88
105
|
}
|
|
89
106
|
|
|
90
107
|
var _proto = RelayModernEnvironment.prototype;
|
|
@@ -115,14 +132,18 @@ function () {
|
|
|
115
132
|
var _this2 = this;
|
|
116
133
|
|
|
117
134
|
var dispose = function dispose() {
|
|
118
|
-
_this2.
|
|
135
|
+
_this2._scheduleUpdates(function () {
|
|
136
|
+
_this2._publishQueue.revertUpdate(optimisticUpdate);
|
|
119
137
|
|
|
120
|
-
|
|
138
|
+
_this2._publishQueue.run();
|
|
139
|
+
});
|
|
121
140
|
};
|
|
122
141
|
|
|
123
|
-
this.
|
|
142
|
+
this._scheduleUpdates(function () {
|
|
143
|
+
_this2._publishQueue.applyUpdate(optimisticUpdate);
|
|
124
144
|
|
|
125
|
-
|
|
145
|
+
_this2._publishQueue.run();
|
|
146
|
+
});
|
|
126
147
|
|
|
127
148
|
return {
|
|
128
149
|
dispose: dispose
|
|
@@ -130,37 +151,47 @@ function () {
|
|
|
130
151
|
};
|
|
131
152
|
|
|
132
153
|
_proto.revertUpdate = function revertUpdate(update) {
|
|
133
|
-
this
|
|
154
|
+
var _this3 = this;
|
|
134
155
|
|
|
135
|
-
this.
|
|
156
|
+
this._scheduleUpdates(function () {
|
|
157
|
+
_this3._publishQueue.revertUpdate(update);
|
|
158
|
+
|
|
159
|
+
_this3._publishQueue.run();
|
|
160
|
+
});
|
|
136
161
|
};
|
|
137
162
|
|
|
138
163
|
_proto.replaceUpdate = function replaceUpdate(update, newUpdate) {
|
|
139
|
-
this
|
|
164
|
+
var _this4 = this;
|
|
165
|
+
|
|
166
|
+
this._scheduleUpdates(function () {
|
|
167
|
+
_this4._publishQueue.revertUpdate(update);
|
|
140
168
|
|
|
141
|
-
|
|
169
|
+
_this4._publishQueue.applyUpdate(newUpdate);
|
|
142
170
|
|
|
143
|
-
|
|
171
|
+
_this4._publishQueue.run();
|
|
172
|
+
});
|
|
144
173
|
};
|
|
145
174
|
|
|
146
175
|
_proto.applyMutation = function applyMutation(optimisticConfig) {
|
|
147
|
-
var
|
|
176
|
+
var _this5 = this;
|
|
148
177
|
|
|
149
178
|
var subscription = RelayObservable.create(function (sink) {
|
|
150
179
|
var source = RelayObservable.create(function (_sink) {});
|
|
151
180
|
var executor = RelayModernQueryExecutor.execute({
|
|
152
181
|
operation: optimisticConfig.operation,
|
|
153
|
-
operationExecutions:
|
|
154
|
-
operationLoader:
|
|
182
|
+
operationExecutions: _this5._operationExecutions,
|
|
183
|
+
operationLoader: _this5._operationLoader,
|
|
155
184
|
optimisticConfig: optimisticConfig,
|
|
156
|
-
publishQueue:
|
|
157
|
-
|
|
185
|
+
publishQueue: _this5._publishQueue,
|
|
186
|
+
reactFlightPayloadDeserializer: _this5._reactFlightPayloadDeserializer,
|
|
187
|
+
scheduler: _this5._scheduler,
|
|
158
188
|
sink: sink,
|
|
159
189
|
source: source,
|
|
160
|
-
store:
|
|
190
|
+
store: _this5._store,
|
|
161
191
|
updater: null,
|
|
162
|
-
operationTracker:
|
|
163
|
-
getDataID:
|
|
192
|
+
operationTracker: _this5._operationTracker,
|
|
193
|
+
getDataID: _this5._getDataID,
|
|
194
|
+
treatMissingFieldsAsNull: _this5._treatMissingFieldsAsNull
|
|
164
195
|
});
|
|
165
196
|
return function () {
|
|
166
197
|
return executor.cancel();
|
|
@@ -182,26 +213,27 @@ function () {
|
|
|
182
213
|
};
|
|
183
214
|
|
|
184
215
|
_proto.commitPayload = function commitPayload(operation, payload) {
|
|
185
|
-
var
|
|
216
|
+
var _this6 = this;
|
|
186
217
|
|
|
187
218
|
RelayObservable.create(function (sink) {
|
|
188
219
|
var executor = RelayModernQueryExecutor.execute({
|
|
189
220
|
operation: operation,
|
|
190
|
-
operationExecutions:
|
|
191
|
-
operationLoader:
|
|
221
|
+
operationExecutions: _this6._operationExecutions,
|
|
222
|
+
operationLoader: _this6._operationLoader,
|
|
192
223
|
optimisticConfig: null,
|
|
193
|
-
publishQueue:
|
|
194
|
-
|
|
195
|
-
|
|
224
|
+
publishQueue: _this6._publishQueue,
|
|
225
|
+
reactFlightPayloadDeserializer: _this6._reactFlightPayloadDeserializer,
|
|
226
|
+
scheduler: _this6._scheduler,
|
|
196
227
|
sink: sink,
|
|
197
228
|
source: RelayObservable.from({
|
|
198
229
|
data: payload
|
|
199
230
|
}),
|
|
200
|
-
store:
|
|
231
|
+
store: _this6._store,
|
|
201
232
|
updater: null,
|
|
202
|
-
operationTracker:
|
|
203
|
-
getDataID:
|
|
204
|
-
isClientPayload: true
|
|
233
|
+
operationTracker: _this6._operationTracker,
|
|
234
|
+
getDataID: _this6._getDataID,
|
|
235
|
+
isClientPayload: true,
|
|
236
|
+
treatMissingFieldsAsNull: _this6._treatMissingFieldsAsNull
|
|
205
237
|
});
|
|
206
238
|
return function () {
|
|
207
239
|
return executor.cancel();
|
|
@@ -210,9 +242,13 @@ function () {
|
|
|
210
242
|
};
|
|
211
243
|
|
|
212
244
|
_proto.commitUpdate = function commitUpdate(updater) {
|
|
213
|
-
this
|
|
245
|
+
var _this7 = this;
|
|
246
|
+
|
|
247
|
+
this._scheduleUpdates(function () {
|
|
248
|
+
_this7._publishQueue.commitUpdate(updater);
|
|
214
249
|
|
|
215
|
-
|
|
250
|
+
_this7._publishQueue.run();
|
|
251
|
+
});
|
|
216
252
|
};
|
|
217
253
|
|
|
218
254
|
_proto.lookup = function lookup(readSelector) {
|
|
@@ -227,7 +263,13 @@ function () {
|
|
|
227
263
|
return this._store.retain(operation);
|
|
228
264
|
};
|
|
229
265
|
|
|
266
|
+
_proto.isServer = function isServer() {
|
|
267
|
+
return this._isServer;
|
|
268
|
+
};
|
|
269
|
+
|
|
230
270
|
_proto._checkSelectorAndHandleMissingFields = function _checkSelectorAndHandleMissingFields(operation, handlers) {
|
|
271
|
+
var _this8 = this;
|
|
272
|
+
|
|
231
273
|
var target = RelayRecordSource.create();
|
|
232
274
|
|
|
233
275
|
var result = this._store.check(operation, {
|
|
@@ -236,12 +278,24 @@ function () {
|
|
|
236
278
|
});
|
|
237
279
|
|
|
238
280
|
if (target.size() > 0) {
|
|
239
|
-
this.
|
|
281
|
+
this._scheduleUpdates(function () {
|
|
282
|
+
_this8._publishQueue.commitSource(target);
|
|
240
283
|
|
|
241
|
-
|
|
284
|
+
_this8._publishQueue.run();
|
|
285
|
+
});
|
|
242
286
|
}
|
|
243
287
|
|
|
244
288
|
return result;
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
_proto._scheduleUpdates = function _scheduleUpdates(task) {
|
|
292
|
+
var scheduler = this._scheduler;
|
|
293
|
+
|
|
294
|
+
if (scheduler != null) {
|
|
295
|
+
scheduler.schedule(task);
|
|
296
|
+
} else {
|
|
297
|
+
task();
|
|
298
|
+
}
|
|
245
299
|
}
|
|
246
300
|
/**
|
|
247
301
|
* Returns an Observable of GraphQLResponse resulting from executing the
|
|
@@ -254,10 +308,9 @@ function () {
|
|
|
254
308
|
;
|
|
255
309
|
|
|
256
310
|
_proto.execute = function execute(_ref) {
|
|
257
|
-
var
|
|
311
|
+
var _this9 = this;
|
|
258
312
|
|
|
259
313
|
var operation = _ref.operation,
|
|
260
|
-
cacheConfig = _ref.cacheConfig,
|
|
261
314
|
updater = _ref.updater;
|
|
262
315
|
|
|
263
316
|
var _this$__createLogObse = this.__createLogObserver(operation.request.node.params, operation.request.variables),
|
|
@@ -265,26 +318,28 @@ function () {
|
|
|
265
318
|
logRequestInfo = _this$__createLogObse[1];
|
|
266
319
|
|
|
267
320
|
return RelayObservable.create(function (sink) {
|
|
268
|
-
var source =
|
|
321
|
+
var source = _this9._network.execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null, logRequestInfo)["do"](logObserver);
|
|
269
322
|
|
|
270
323
|
var executor = RelayModernQueryExecutor.execute({
|
|
271
324
|
operation: operation,
|
|
272
|
-
operationExecutions:
|
|
273
|
-
operationLoader:
|
|
325
|
+
operationExecutions: _this9._operationExecutions,
|
|
326
|
+
operationLoader: _this9._operationLoader,
|
|
274
327
|
optimisticConfig: null,
|
|
275
|
-
publishQueue:
|
|
276
|
-
|
|
328
|
+
publishQueue: _this9._publishQueue,
|
|
329
|
+
reactFlightPayloadDeserializer: _this9._reactFlightPayloadDeserializer,
|
|
330
|
+
scheduler: _this9._scheduler,
|
|
277
331
|
sink: sink,
|
|
278
332
|
source: source,
|
|
279
|
-
store:
|
|
333
|
+
store: _this9._store,
|
|
280
334
|
updater: updater,
|
|
281
|
-
operationTracker:
|
|
282
|
-
getDataID:
|
|
335
|
+
operationTracker: _this9._operationTracker,
|
|
336
|
+
getDataID: _this9._getDataID,
|
|
337
|
+
treatMissingFieldsAsNull: _this9._treatMissingFieldsAsNull
|
|
283
338
|
});
|
|
284
339
|
return function () {
|
|
285
340
|
return executor.cancel();
|
|
286
341
|
};
|
|
287
|
-
})
|
|
342
|
+
});
|
|
288
343
|
}
|
|
289
344
|
/**
|
|
290
345
|
* Returns an Observable of GraphQLResponse resulting from executing the
|
|
@@ -299,7 +354,7 @@ function () {
|
|
|
299
354
|
;
|
|
300
355
|
|
|
301
356
|
_proto.executeMutation = function executeMutation(_ref2) {
|
|
302
|
-
var
|
|
357
|
+
var _this10 = this;
|
|
303
358
|
|
|
304
359
|
var operation = _ref2.operation,
|
|
305
360
|
optimisticResponse = _ref2.optimisticResponse,
|
|
@@ -322,28 +377,30 @@ function () {
|
|
|
322
377
|
};
|
|
323
378
|
}
|
|
324
379
|
|
|
325
|
-
var source =
|
|
380
|
+
var source = _this10._network.execute(operation.request.node.params, operation.request.variables, _objectSpread(_objectSpread({}, operation.request.cacheConfig), {}, {
|
|
326
381
|
force: true
|
|
327
|
-
}, uploadables, logRequestInfo);
|
|
382
|
+
}), uploadables, logRequestInfo)["do"](logObserver);
|
|
328
383
|
|
|
329
384
|
var executor = RelayModernQueryExecutor.execute({
|
|
330
385
|
operation: operation,
|
|
331
|
-
operationExecutions:
|
|
332
|
-
operationLoader:
|
|
386
|
+
operationExecutions: _this10._operationExecutions,
|
|
387
|
+
operationLoader: _this10._operationLoader,
|
|
333
388
|
optimisticConfig: optimisticConfig,
|
|
334
|
-
publishQueue:
|
|
335
|
-
|
|
389
|
+
publishQueue: _this10._publishQueue,
|
|
390
|
+
reactFlightPayloadDeserializer: _this10._reactFlightPayloadDeserializer,
|
|
391
|
+
scheduler: _this10._scheduler,
|
|
336
392
|
sink: sink,
|
|
337
393
|
source: source,
|
|
338
|
-
store:
|
|
394
|
+
store: _this10._store,
|
|
339
395
|
updater: updater,
|
|
340
|
-
operationTracker:
|
|
341
|
-
getDataID:
|
|
396
|
+
operationTracker: _this10._operationTracker,
|
|
397
|
+
getDataID: _this10._getDataID,
|
|
398
|
+
treatMissingFieldsAsNull: _this10._treatMissingFieldsAsNull
|
|
342
399
|
});
|
|
343
400
|
return function () {
|
|
344
401
|
return executor.cancel();
|
|
345
402
|
};
|
|
346
|
-
})
|
|
403
|
+
});
|
|
347
404
|
}
|
|
348
405
|
/**
|
|
349
406
|
* Returns an Observable of GraphQLResponse resulting from executing the
|
|
@@ -357,23 +414,25 @@ function () {
|
|
|
357
414
|
;
|
|
358
415
|
|
|
359
416
|
_proto.executeWithSource = function executeWithSource(_ref3) {
|
|
360
|
-
var
|
|
417
|
+
var _this11 = this;
|
|
361
418
|
|
|
362
419
|
var operation = _ref3.operation,
|
|
363
420
|
source = _ref3.source;
|
|
364
421
|
return RelayObservable.create(function (sink) {
|
|
365
422
|
var executor = RelayModernQueryExecutor.execute({
|
|
366
423
|
operation: operation,
|
|
367
|
-
operationExecutions:
|
|
368
|
-
operationLoader:
|
|
369
|
-
operationTracker:
|
|
424
|
+
operationExecutions: _this11._operationExecutions,
|
|
425
|
+
operationLoader: _this11._operationLoader,
|
|
426
|
+
operationTracker: _this11._operationTracker,
|
|
370
427
|
optimisticConfig: null,
|
|
371
|
-
publishQueue:
|
|
372
|
-
|
|
428
|
+
publishQueue: _this11._publishQueue,
|
|
429
|
+
reactFlightPayloadDeserializer: _this11._reactFlightPayloadDeserializer,
|
|
430
|
+
scheduler: _this11._scheduler,
|
|
373
431
|
sink: sink,
|
|
374
432
|
source: source,
|
|
375
|
-
store:
|
|
376
|
-
getDataID:
|
|
433
|
+
store: _this11._store,
|
|
434
|
+
getDataID: _this11._getDataID,
|
|
435
|
+
treatMissingFieldsAsNull: _this11._treatMissingFieldsAsNull
|
|
377
436
|
});
|
|
378
437
|
return function () {
|
|
379
438
|
return executor.cancel();
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
14
14
|
|
|
15
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
16
|
-
|
|
17
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
16
|
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
20
|
+
|
|
19
21
|
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
20
22
|
|
|
21
23
|
var areEqual = require("fbjs/lib/areEqual");
|
|
@@ -24,6 +26,8 @@ var invariant = require("fbjs/lib/invariant");
|
|
|
24
26
|
|
|
25
27
|
var isScalarAndEqual = require('../util/isScalarAndEqual');
|
|
26
28
|
|
|
29
|
+
var reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
|
|
30
|
+
|
|
27
31
|
var warning = require("fbjs/lib/warning");
|
|
28
32
|
|
|
29
33
|
var _require = require('../query/fetchQueryInternal'),
|
|
@@ -56,9 +60,7 @@ var _require3 = require('./RelayModernSelector'),
|
|
|
56
60
|
* the resolver as stale and notify the caller, and the actual results are
|
|
57
61
|
* recomputed the first time `resolve()` is called.
|
|
58
62
|
*/
|
|
59
|
-
var RelayModernFragmentSpecResolver =
|
|
60
|
-
/*#__PURE__*/
|
|
61
|
-
function () {
|
|
63
|
+
var RelayModernFragmentSpecResolver = /*#__PURE__*/function () {
|
|
62
64
|
function RelayModernFragmentSpecResolver(context, fragments, props, callback) {
|
|
63
65
|
var _this = this;
|
|
64
66
|
|
|
@@ -105,7 +107,7 @@ function () {
|
|
|
105
107
|
var nextItem = resolver.resolve();
|
|
106
108
|
|
|
107
109
|
if (nextData || nextItem !== prevItem) {
|
|
108
|
-
nextData = nextData || (
|
|
110
|
+
nextData = nextData || _objectSpread({}, prevData);
|
|
109
111
|
nextData[_key2] = nextItem;
|
|
110
112
|
}
|
|
111
113
|
} else {
|
|
@@ -114,7 +116,7 @@ function () {
|
|
|
114
116
|
var _nextItem = prop !== undefined ? prop : null;
|
|
115
117
|
|
|
116
118
|
if (nextData || !isScalarAndEqual(_nextItem, prevItem)) {
|
|
117
|
-
nextData = nextData || (
|
|
119
|
+
nextData = nextData || _objectSpread({}, prevData);
|
|
118
120
|
nextData[_key2] = _nextItem;
|
|
119
121
|
}
|
|
120
122
|
}
|
|
@@ -192,15 +194,14 @@ function () {
|
|
|
192
194
|
*/
|
|
193
195
|
|
|
194
196
|
|
|
195
|
-
var SelectorResolver =
|
|
196
|
-
/*#__PURE__*/
|
|
197
|
-
function () {
|
|
197
|
+
var SelectorResolver = /*#__PURE__*/function () {
|
|
198
198
|
function SelectorResolver(environment, selector, callback) {
|
|
199
199
|
var _this2 = this;
|
|
200
200
|
|
|
201
201
|
(0, _defineProperty2["default"])(this, "_onChange", function (snapshot) {
|
|
202
202
|
_this2._data = snapshot.data;
|
|
203
203
|
_this2._isMissingData = snapshot.isMissingData;
|
|
204
|
+
_this2._missingRequiredFields = snapshot.missingRequiredFields;
|
|
204
205
|
|
|
205
206
|
_this2._callback();
|
|
206
207
|
});
|
|
@@ -210,6 +211,7 @@ function () {
|
|
|
210
211
|
this._callback = callback;
|
|
211
212
|
this._data = _snapshot.data;
|
|
212
213
|
this._isMissingData = _snapshot.isMissingData;
|
|
214
|
+
this._missingRequiredFields = _snapshot.missingRequiredFields;
|
|
213
215
|
this._environment = environment;
|
|
214
216
|
this._selector = selector;
|
|
215
217
|
this._subscription = environment.subscribe(_snapshot, this._onChange);
|
|
@@ -258,6 +260,10 @@ function () {
|
|
|
258
260
|
}
|
|
259
261
|
}
|
|
260
262
|
|
|
263
|
+
if (this._missingRequiredFields != null) {
|
|
264
|
+
reportMissingRequiredFields(this._environment, this._missingRequiredFields);
|
|
265
|
+
}
|
|
266
|
+
|
|
261
267
|
return this._data;
|
|
262
268
|
};
|
|
263
269
|
|
|
@@ -272,6 +278,7 @@ function () {
|
|
|
272
278
|
|
|
273
279
|
this._data = snapshot.data;
|
|
274
280
|
this._isMissingData = snapshot.isMissingData;
|
|
281
|
+
this._missingRequiredFields = snapshot.missingRequiredFields;
|
|
275
282
|
this._selector = selector;
|
|
276
283
|
this._subscription = this._environment.subscribe(snapshot, this._onChange);
|
|
277
284
|
};
|
|
@@ -289,7 +296,7 @@ function () {
|
|
|
289
296
|
} // NOTE: We manually create the request descriptor here instead of
|
|
290
297
|
// calling createOperationDescriptor() because we want to set a
|
|
291
298
|
// descriptor with *unaltered* variables as the fragment owner.
|
|
292
|
-
// This is a hack that allows us to preserve
|
|
299
|
+
// This is a hack that allows us to preserve existing (broken)
|
|
293
300
|
// behavior of RelayModern containers while using fragment ownership
|
|
294
301
|
// to propagate variables instead of Context.
|
|
295
302
|
// For more details, see the summary of D13999308
|
|
@@ -307,9 +314,7 @@ function () {
|
|
|
307
314
|
*/
|
|
308
315
|
|
|
309
316
|
|
|
310
|
-
var SelectorListResolver =
|
|
311
|
-
/*#__PURE__*/
|
|
312
|
-
function () {
|
|
317
|
+
var SelectorListResolver = /*#__PURE__*/function () {
|
|
313
318
|
function SelectorListResolver(environment, selector, callback) {
|
|
314
319
|
var _this3 = this;
|
|
315
320
|
|
|
@@ -30,11 +30,11 @@ var _require3 = require('./RelayStoreUtils'),
|
|
|
30
30
|
* are filtered to exclude variables that do not match defined arguments on the
|
|
31
31
|
* operation, and default values are populated for null values.
|
|
32
32
|
*/
|
|
33
|
-
function createOperationDescriptor(request, variables) {
|
|
34
|
-
var dataID = arguments.length >
|
|
33
|
+
function createOperationDescriptor(request, variables, cacheConfig) {
|
|
34
|
+
var dataID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOT_ID;
|
|
35
35
|
var operation = request.operation;
|
|
36
36
|
var operationVariables = getOperationVariables(operation, variables);
|
|
37
|
-
var requestDescriptor = createRequestDescriptor(request, operationVariables);
|
|
37
|
+
var requestDescriptor = createRequestDescriptor(request, operationVariables, cacheConfig);
|
|
38
38
|
var operationDescriptor = {
|
|
39
39
|
fragment: createReaderSelector(request.fragment, dataID, operationVariables, requestDescriptor),
|
|
40
40
|
request: requestDescriptor,
|
|
@@ -53,11 +53,12 @@ function createOperationDescriptor(request, variables) {
|
|
|
53
53
|
return operationDescriptor;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
function createRequestDescriptor(request, variables) {
|
|
56
|
+
function createRequestDescriptor(request, variables, cacheConfig) {
|
|
57
57
|
var requestDescriptor = {
|
|
58
58
|
identifier: getRequestIdentifier(request.params, variables),
|
|
59
59
|
node: request,
|
|
60
|
-
variables: variables
|
|
60
|
+
variables: variables,
|
|
61
|
+
cacheConfig: cacheConfig
|
|
61
62
|
};
|
|
62
63
|
|
|
63
64
|
if (process.env.NODE_ENV !== "production") {
|