relay-runtime 9.0.0 → 9.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 +34 -0
- package/handlers/connection/ConnectionHandler.js.flow +549 -0
- package/handlers/connection/ConnectionInterface.js.flow +92 -0
- package/index.js +1 -1
- package/index.js.flow +314 -0
- package/lib/handlers/connection/ConnectionHandler.js +1 -3
- package/lib/index.js +1 -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 -0
- package/lib/mutations/validateMutation.js +13 -4
- package/lib/network/RelayObservable.js +9 -9
- package/lib/network/RelayQueryResponseCache.js +8 -6
- package/lib/query/fetchQueryInternal.js +1 -8
- package/lib/store/DataChecker.js +23 -51
- package/lib/store/RelayConcreteVariables.js +6 -2
- package/lib/store/RelayModernEnvironment.js +30 -12
- package/lib/store/RelayModernFragmentSpecResolver.js +9 -13
- package/lib/store/RelayModernQueryExecutor.js +73 -37
- package/lib/store/RelayModernRecord.js +14 -9
- package/lib/store/RelayModernStore.js +107 -70
- package/lib/store/RelayOperationTracker.js +35 -78
- package/lib/store/RelayOptimisticRecordSource.js +7 -5
- package/lib/store/RelayPublishQueue.js +1 -3
- package/lib/store/RelayReader.js +1 -3
- package/lib/store/RelayRecordSource.js +1 -3
- package/lib/store/RelayRecordSourceMapImpl.js +13 -18
- package/lib/store/RelayReferenceMarker.js +2 -6
- package/lib/store/RelayResponseNormalizer.js +9 -10
- package/lib/store/StoreInspector.js +7 -5
- package/lib/store/normalizeRelayPayload.js +6 -2
- package/lib/subscription/requestSubscription.js +4 -2
- package/lib/util/RelayFeatureFlags.js +1 -1
- package/lib/util/RelayReplaySubject.js +1 -3
- package/lib/util/createPayloadFor3DField.js +7 -2
- 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 +184 -0
- package/mutations/validateMutation.js.flow +211 -0
- package/network/ConvertToExecuteFunction.js.flow +49 -0
- package/network/RelayNetwork.js.flow +84 -0
- package/network/RelayNetworkTypes.js.flow +123 -0
- package/network/RelayObservable.js.flow +634 -0
- package/network/RelayQueryResponseCache.js.flow +111 -0
- package/package.json +1 -1
- package/query/GraphQLTag.js.flow +166 -0
- package/query/fetchQuery.js.flow +47 -0
- package/query/fetchQueryInternal.js.flow +349 -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 +426 -0
- package/store/RelayConcreteVariables.js.flow +96 -0
- package/store/RelayModernEnvironment.js.flow +526 -0
- package/store/RelayModernFragmentSpecResolver.js.flow +426 -0
- package/store/RelayModernOperationDescriptor.js.flow +88 -0
- package/store/RelayModernQueryExecutor.js.flow +1327 -0
- package/store/RelayModernRecord.js.flow +403 -0
- package/store/RelayModernSelector.js.flow +444 -0
- package/store/RelayModernStore.js.flow +757 -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 +376 -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 +236 -0
- package/store/RelayResponseNormalizer.js.flow +556 -0
- package/store/RelayStoreTypes.js.flow +873 -0
- package/store/RelayStoreUtils.js.flow +218 -0
- package/store/StoreInspector.js.flow +173 -0
- package/store/ViewerPattern.js.flow +26 -0
- package/store/cloneRelayHandleSourceField.js.flow +66 -0
- package/store/createFragmentSpecResolver.js.flow +55 -0
- package/store/createRelayContext.js.flow +44 -0
- package/store/defaultGetDataID.js.flow +27 -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 +100 -0
- package/util/JSResourceTypes.flow.js.flow +20 -0
- package/util/NormalizationNode.js.flow +191 -0
- package/util/ReaderNode.js.flow +208 -0
- package/util/RelayConcreteNode.js.flow +80 -0
- package/util/RelayDefaultHandleKey.js.flow +17 -0
- package/util/RelayError.js.flow +33 -0
- package/util/RelayFeatureFlags.js.flow +30 -0
- package/util/RelayProfiler.js.flow +284 -0
- package/util/RelayReplaySubject.js.flow +134 -0
- package/util/RelayRuntimeTypes.js.flow +70 -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 +52 -0
- package/util/getRelayHandleKey.js.flow +41 -0
- package/util/getRequestIdentifier.js.flow +41 -0
- package/util/isPromise.js.flow +21 -0
- package/util/isScalarAndEqual.js.flow +26 -0
- package/util/recycleNodesInto.js.flow +80 -0
- package/util/resolveImmediate.js.flow +30 -0
- package/util/stableCopy.js.flow +35 -0
|
@@ -256,12 +256,6 @@ function getObservableForActiveRequest(environment, request) {
|
|
|
256
256
|
|
|
257
257
|
return getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest);
|
|
258
258
|
}
|
|
259
|
-
|
|
260
|
-
function isRequestActive(environment, request) {
|
|
261
|
-
var requestCache = getRequestCache(environment);
|
|
262
|
-
var cachedRequest = requestCache.get(request.identifier);
|
|
263
|
-
return cachedRequest != null && environment.isRequestActive(cachedRequest.identifier);
|
|
264
|
-
}
|
|
265
259
|
/**
|
|
266
260
|
* @private
|
|
267
261
|
*/
|
|
@@ -293,6 +287,5 @@ module.exports = {
|
|
|
293
287
|
fetchQuery: fetchQuery,
|
|
294
288
|
fetchQueryDeduped: fetchQueryDeduped,
|
|
295
289
|
getPromiseForActiveRequest: getPromiseForActiveRequest,
|
|
296
|
-
getObservableForActiveRequest: getObservableForActiveRequest
|
|
297
|
-
isRequestActive: isRequestActive
|
|
290
|
+
getObservableForActiveRequest: getObservableForActiveRequest
|
|
298
291
|
};
|
package/lib/store/DataChecker.js
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
// flowlint ambiguous-object-type:error
|
|
12
12
|
'use strict';
|
|
13
13
|
|
|
14
|
+
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
15
|
+
|
|
16
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
17
|
+
|
|
18
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
19
|
+
|
|
14
20
|
var RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
15
21
|
|
|
16
22
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
@@ -69,17 +75,13 @@ function check(source, target, selector, handlers, operationLoader, getDataID) {
|
|
|
69
75
|
*/
|
|
70
76
|
|
|
71
77
|
|
|
72
|
-
var DataChecker =
|
|
73
|
-
/*#__PURE__*/
|
|
74
|
-
function () {
|
|
78
|
+
var DataChecker = /*#__PURE__*/function () {
|
|
75
79
|
function DataChecker(source, target, variables, handlers, operationLoader, getDataID) {
|
|
76
|
-
var _operationLoader;
|
|
77
|
-
|
|
78
80
|
var mutator = new RelayRecordSourceMutator(source, target);
|
|
79
81
|
this._mostRecentlyInvalidatedAt = null;
|
|
80
82
|
this._handlers = handlers;
|
|
81
83
|
this._mutator = mutator;
|
|
82
|
-
this._operationLoader =
|
|
84
|
+
this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;
|
|
83
85
|
this._recordSourceProxy = new RelayRecordSourceProxy(mutator, getDataID);
|
|
84
86
|
this._recordWasMissing = false;
|
|
85
87
|
this._source = source;
|
|
@@ -131,12 +133,11 @@ function () {
|
|
|
131
133
|
args = _this$_getDataForHand.args,
|
|
132
134
|
record = _this$_getDataForHand.record;
|
|
133
135
|
|
|
134
|
-
var
|
|
135
|
-
|
|
136
|
-
var _iteratorError = undefined;
|
|
136
|
+
var _iterator = _createForOfIteratorHelper(this._handlers),
|
|
137
|
+
_step;
|
|
137
138
|
|
|
138
139
|
try {
|
|
139
|
-
for (
|
|
140
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
140
141
|
var handler = _step.value;
|
|
141
142
|
|
|
142
143
|
if (handler.kind === 'scalar') {
|
|
@@ -148,18 +149,9 @@ function () {
|
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
} catch (err) {
|
|
151
|
-
|
|
152
|
-
_iteratorError = err;
|
|
152
|
+
_iterator.e(err);
|
|
153
153
|
} finally {
|
|
154
|
-
|
|
155
|
-
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
|
156
|
-
_iterator["return"]();
|
|
157
|
-
}
|
|
158
|
-
} finally {
|
|
159
|
-
if (_didIteratorError) {
|
|
160
|
-
throw _iteratorError;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
154
|
+
_iterator.f();
|
|
163
155
|
}
|
|
164
156
|
|
|
165
157
|
this._handleMissing();
|
|
@@ -170,12 +162,11 @@ function () {
|
|
|
170
162
|
args = _this$_getDataForHand2.args,
|
|
171
163
|
record = _this$_getDataForHand2.record;
|
|
172
164
|
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
var _iteratorError2 = undefined;
|
|
165
|
+
var _iterator2 = _createForOfIteratorHelper(this._handlers),
|
|
166
|
+
_step2;
|
|
176
167
|
|
|
177
168
|
try {
|
|
178
|
-
for (
|
|
169
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
179
170
|
var handler = _step2.value;
|
|
180
171
|
|
|
181
172
|
if (handler.kind === 'linked') {
|
|
@@ -187,18 +178,9 @@ function () {
|
|
|
187
178
|
}
|
|
188
179
|
}
|
|
189
180
|
} catch (err) {
|
|
190
|
-
|
|
191
|
-
_iteratorError2 = err;
|
|
181
|
+
_iterator2.e(err);
|
|
192
182
|
} finally {
|
|
193
|
-
|
|
194
|
-
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
|
195
|
-
_iterator2["return"]();
|
|
196
|
-
}
|
|
197
|
-
} finally {
|
|
198
|
-
if (_didIteratorError2) {
|
|
199
|
-
throw _iteratorError2;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
183
|
+
_iterator2.f();
|
|
202
184
|
}
|
|
203
185
|
|
|
204
186
|
this._handleMissing();
|
|
@@ -211,12 +193,11 @@ function () {
|
|
|
211
193
|
args = _this$_getDataForHand3.args,
|
|
212
194
|
record = _this$_getDataForHand3.record;
|
|
213
195
|
|
|
214
|
-
var
|
|
215
|
-
|
|
216
|
-
var _iteratorError3 = undefined;
|
|
196
|
+
var _iterator3 = _createForOfIteratorHelper(this._handlers),
|
|
197
|
+
_step3;
|
|
217
198
|
|
|
218
199
|
try {
|
|
219
|
-
for (
|
|
200
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
220
201
|
var handler = _step3.value;
|
|
221
202
|
|
|
222
203
|
if (handler.kind === 'pluralLinked') {
|
|
@@ -234,18 +215,9 @@ function () {
|
|
|
234
215
|
}
|
|
235
216
|
}
|
|
236
217
|
} catch (err) {
|
|
237
|
-
|
|
238
|
-
_iteratorError3 = err;
|
|
218
|
+
_iterator3.e(err);
|
|
239
219
|
} finally {
|
|
240
|
-
|
|
241
|
-
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
|
242
|
-
_iterator3["return"]();
|
|
243
|
-
}
|
|
244
|
-
} finally {
|
|
245
|
-
if (_didIteratorError3) {
|
|
246
|
-
throw _iteratorError3;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
220
|
+
_iterator3.f();
|
|
249
221
|
}
|
|
250
222
|
|
|
251
223
|
this._handleMissing();
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
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; }
|
|
16
20
|
|
|
17
21
|
var invariant = require("fbjs/lib/invariant");
|
|
18
22
|
|
|
@@ -30,7 +34,7 @@ function getFragmentVariables(fragment, rootVariables, argumentVariables) {
|
|
|
30
34
|
return;
|
|
31
35
|
}
|
|
32
36
|
|
|
33
|
-
variables = variables || (
|
|
37
|
+
variables = variables || _objectSpread({}, argumentVariables);
|
|
34
38
|
|
|
35
39
|
switch (definition.kind) {
|
|
36
40
|
case 'LocalArgument':
|
|
@@ -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');
|
|
@@ -31,16 +39,15 @@ var generateID = require('../util/generateID');
|
|
|
31
39
|
|
|
32
40
|
var invariant = require("fbjs/lib/invariant");
|
|
33
41
|
|
|
34
|
-
var RelayModernEnvironment =
|
|
35
|
-
/*#__PURE__*/
|
|
36
|
-
function () {
|
|
42
|
+
var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
37
43
|
function RelayModernEnvironment(config) {
|
|
38
44
|
var _this = this;
|
|
39
45
|
|
|
40
|
-
var _config$log, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$operationTrac;
|
|
46
|
+
var _config$log, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$isServer, _config$operationTrac;
|
|
41
47
|
|
|
42
48
|
this.configName = config.configName;
|
|
43
49
|
var handlerProvider = config.handlerProvider ? config.handlerProvider : RelayDefaultHandlerProvider;
|
|
50
|
+
this._treatMissingFieldsAsNull = config.treatMissingFieldsAsNull === true;
|
|
44
51
|
var operationLoader = config.operationLoader;
|
|
45
52
|
|
|
46
53
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -59,6 +66,7 @@ function () {
|
|
|
59
66
|
this._scheduler = (_config$scheduler = config.scheduler) !== null && _config$scheduler !== void 0 ? _config$scheduler : null;
|
|
60
67
|
this._store = config.store;
|
|
61
68
|
this.options = config.options;
|
|
69
|
+
this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;
|
|
62
70
|
|
|
63
71
|
this.__setNet = function (newNet) {
|
|
64
72
|
return _this._network = newNet;
|
|
@@ -160,7 +168,8 @@ function () {
|
|
|
160
168
|
store: _this3._store,
|
|
161
169
|
updater: null,
|
|
162
170
|
operationTracker: _this3._operationTracker,
|
|
163
|
-
getDataID: _this3._getDataID
|
|
171
|
+
getDataID: _this3._getDataID,
|
|
172
|
+
treatMissingFieldsAsNull: _this3._treatMissingFieldsAsNull
|
|
164
173
|
});
|
|
165
174
|
return function () {
|
|
166
175
|
return executor.cancel();
|
|
@@ -201,7 +210,8 @@ function () {
|
|
|
201
210
|
updater: null,
|
|
202
211
|
operationTracker: _this4._operationTracker,
|
|
203
212
|
getDataID: _this4._getDataID,
|
|
204
|
-
isClientPayload: true
|
|
213
|
+
isClientPayload: true,
|
|
214
|
+
treatMissingFieldsAsNull: _this4._treatMissingFieldsAsNull
|
|
205
215
|
});
|
|
206
216
|
return function () {
|
|
207
217
|
return executor.cancel();
|
|
@@ -227,6 +237,10 @@ function () {
|
|
|
227
237
|
return this._store.retain(operation);
|
|
228
238
|
};
|
|
229
239
|
|
|
240
|
+
_proto.isServer = function isServer() {
|
|
241
|
+
return this._isServer;
|
|
242
|
+
};
|
|
243
|
+
|
|
230
244
|
_proto._checkSelectorAndHandleMissingFields = function _checkSelectorAndHandleMissingFields(operation, handlers) {
|
|
231
245
|
var target = RelayRecordSource.create();
|
|
232
246
|
|
|
@@ -279,7 +293,8 @@ function () {
|
|
|
279
293
|
store: _this5._store,
|
|
280
294
|
updater: updater,
|
|
281
295
|
operationTracker: _this5._operationTracker,
|
|
282
|
-
getDataID: _this5._getDataID
|
|
296
|
+
getDataID: _this5._getDataID,
|
|
297
|
+
treatMissingFieldsAsNull: _this5._treatMissingFieldsAsNull
|
|
283
298
|
});
|
|
284
299
|
return function () {
|
|
285
300
|
return executor.cancel();
|
|
@@ -301,7 +316,8 @@ function () {
|
|
|
301
316
|
_proto.executeMutation = function executeMutation(_ref2) {
|
|
302
317
|
var _this6 = this;
|
|
303
318
|
|
|
304
|
-
var
|
|
319
|
+
var cacheConfig = _ref2.cacheConfig,
|
|
320
|
+
operation = _ref2.operation,
|
|
305
321
|
optimisticResponse = _ref2.optimisticResponse,
|
|
306
322
|
optimisticUpdater = _ref2.optimisticUpdater,
|
|
307
323
|
updater = _ref2.updater,
|
|
@@ -322,9 +338,9 @@ function () {
|
|
|
322
338
|
};
|
|
323
339
|
}
|
|
324
340
|
|
|
325
|
-
var source = _this6._network.execute(operation.request.node.params, operation.request.variables, {
|
|
341
|
+
var source = _this6._network.execute(operation.request.node.params, operation.request.variables, _objectSpread({}, cacheConfig, {
|
|
326
342
|
force: true
|
|
327
|
-
}, uploadables, logRequestInfo);
|
|
343
|
+
}), uploadables, logRequestInfo);
|
|
328
344
|
|
|
329
345
|
var executor = RelayModernQueryExecutor.execute({
|
|
330
346
|
operation: operation,
|
|
@@ -338,7 +354,8 @@ function () {
|
|
|
338
354
|
store: _this6._store,
|
|
339
355
|
updater: updater,
|
|
340
356
|
operationTracker: _this6._operationTracker,
|
|
341
|
-
getDataID: _this6._getDataID
|
|
357
|
+
getDataID: _this6._getDataID,
|
|
358
|
+
treatMissingFieldsAsNull: _this6._treatMissingFieldsAsNull
|
|
342
359
|
});
|
|
343
360
|
return function () {
|
|
344
361
|
return executor.cancel();
|
|
@@ -373,7 +390,8 @@ function () {
|
|
|
373
390
|
sink: sink,
|
|
374
391
|
source: source,
|
|
375
392
|
store: _this7._store,
|
|
376
|
-
getDataID: _this7._getDataID
|
|
393
|
+
getDataID: _this7._getDataID,
|
|
394
|
+
treatMissingFieldsAsNull: _this7._treatMissingFieldsAsNull
|
|
377
395
|
});
|
|
378
396
|
return function () {
|
|
379
397
|
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");
|
|
@@ -56,9 +58,7 @@ var _require3 = require('./RelayModernSelector'),
|
|
|
56
58
|
* the resolver as stale and notify the caller, and the actual results are
|
|
57
59
|
* recomputed the first time `resolve()` is called.
|
|
58
60
|
*/
|
|
59
|
-
var RelayModernFragmentSpecResolver =
|
|
60
|
-
/*#__PURE__*/
|
|
61
|
-
function () {
|
|
61
|
+
var RelayModernFragmentSpecResolver = /*#__PURE__*/function () {
|
|
62
62
|
function RelayModernFragmentSpecResolver(context, fragments, props, callback) {
|
|
63
63
|
var _this = this;
|
|
64
64
|
|
|
@@ -105,7 +105,7 @@ function () {
|
|
|
105
105
|
var nextItem = resolver.resolve();
|
|
106
106
|
|
|
107
107
|
if (nextData || nextItem !== prevItem) {
|
|
108
|
-
nextData = nextData || (
|
|
108
|
+
nextData = nextData || _objectSpread({}, prevData);
|
|
109
109
|
nextData[_key2] = nextItem;
|
|
110
110
|
}
|
|
111
111
|
} else {
|
|
@@ -114,7 +114,7 @@ function () {
|
|
|
114
114
|
var _nextItem = prop !== undefined ? prop : null;
|
|
115
115
|
|
|
116
116
|
if (nextData || !isScalarAndEqual(_nextItem, prevItem)) {
|
|
117
|
-
nextData = nextData || (
|
|
117
|
+
nextData = nextData || _objectSpread({}, prevData);
|
|
118
118
|
nextData[_key2] = _nextItem;
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -192,9 +192,7 @@ function () {
|
|
|
192
192
|
*/
|
|
193
193
|
|
|
194
194
|
|
|
195
|
-
var SelectorResolver =
|
|
196
|
-
/*#__PURE__*/
|
|
197
|
-
function () {
|
|
195
|
+
var SelectorResolver = /*#__PURE__*/function () {
|
|
198
196
|
function SelectorResolver(environment, selector, callback) {
|
|
199
197
|
var _this2 = this;
|
|
200
198
|
|
|
@@ -307,9 +305,7 @@ function () {
|
|
|
307
305
|
*/
|
|
308
306
|
|
|
309
307
|
|
|
310
|
-
var SelectorListResolver =
|
|
311
|
-
/*#__PURE__*/
|
|
312
|
-
function () {
|
|
308
|
+
var SelectorListResolver = /*#__PURE__*/function () {
|
|
313
309
|
function SelectorListResolver(environment, selector, callback) {
|
|
314
310
|
var _this3 = this;
|
|
315
311
|
|
|
@@ -13,10 +13,20 @@
|
|
|
13
13
|
|
|
14
14
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
|
|
18
18
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
19
19
|
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
25
|
+
|
|
26
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
+
|
|
28
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
+
|
|
20
30
|
var RelayError = require('../util/RelayError');
|
|
21
31
|
|
|
22
32
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
@@ -54,9 +64,7 @@ function execute(config) {
|
|
|
54
64
|
*/
|
|
55
65
|
|
|
56
66
|
|
|
57
|
-
var Executor =
|
|
58
|
-
/*#__PURE__*/
|
|
59
|
-
function () {
|
|
67
|
+
var Executor = /*#__PURE__*/function () {
|
|
60
68
|
function Executor(_ref) {
|
|
61
69
|
var _this = this;
|
|
62
70
|
|
|
@@ -71,9 +79,11 @@ function () {
|
|
|
71
79
|
store = _ref.store,
|
|
72
80
|
updater = _ref.updater,
|
|
73
81
|
operationTracker = _ref.operationTracker,
|
|
82
|
+
treatMissingFieldsAsNull = _ref.treatMissingFieldsAsNull,
|
|
74
83
|
getDataID = _ref.getDataID,
|
|
75
84
|
isClientPayload = _ref.isClientPayload;
|
|
76
85
|
this._getDataID = getDataID;
|
|
86
|
+
this._treatMissingFieldsAsNull = treatMissingFieldsAsNull;
|
|
77
87
|
this._incrementalPayloadsPending = false;
|
|
78
88
|
this._incrementalResults = new Map();
|
|
79
89
|
this._nextSubscriptionId = 0;
|
|
@@ -116,7 +126,7 @@ function () {
|
|
|
116
126
|
if (optimisticConfig != null) {
|
|
117
127
|
this._processOptimisticResponse(optimisticConfig.response != null ? {
|
|
118
128
|
data: optimisticConfig.response
|
|
119
|
-
} : null, optimisticConfig.updater);
|
|
129
|
+
} : null, optimisticConfig.updater, false);
|
|
120
130
|
}
|
|
121
131
|
} // Cancel any pending execution tasks and mark the executor as completed.
|
|
122
132
|
|
|
@@ -266,26 +276,32 @@ function () {
|
|
|
266
276
|
_proto._handleErrorResponse = function _handleErrorResponse(responses) {
|
|
267
277
|
var _this5 = this;
|
|
268
278
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
279
|
+
var results = [];
|
|
280
|
+
responses.forEach(function (response) {
|
|
281
|
+
if (response.data === null && response.extensions != null && !response.hasOwnProperty('errors')) {
|
|
282
|
+
// Skip extensions-only payloads
|
|
283
|
+
return;
|
|
284
|
+
} else if (response.data == null) {
|
|
285
|
+
// Error if any other payload in the batch is missing data, regardless of whether
|
|
286
|
+
// it had `errors` or not.
|
|
287
|
+
var errors = response.hasOwnProperty('errors') && response.errors != null ? response.errors : null;
|
|
288
|
+
var messages = errors ? errors.map(function (_ref2) {
|
|
274
289
|
var message = _ref2.message;
|
|
275
290
|
return message;
|
|
276
291
|
}).join('\n') : '(No errors)';
|
|
277
292
|
var error = RelayError.create('RelayNetwork', 'No data returned for operation `' + _this5._operation.request.node.params.name + '`, got error(s):\n' + messages + '\n\nSee the error `source` property for more information.');
|
|
278
293
|
error.source = {
|
|
279
|
-
errors:
|
|
294
|
+
errors: errors,
|
|
280
295
|
operation: _this5._operation.request.node,
|
|
281
296
|
variables: _this5._operation.request.variables
|
|
282
297
|
};
|
|
283
298
|
throw error;
|
|
299
|
+
} else {
|
|
300
|
+
var responseWithData = response;
|
|
301
|
+
results.push(responseWithData);
|
|
284
302
|
}
|
|
285
|
-
|
|
286
|
-
var responseWithData = response;
|
|
287
|
-
return responseWithData;
|
|
288
303
|
});
|
|
304
|
+
return results;
|
|
289
305
|
}
|
|
290
306
|
/**
|
|
291
307
|
* This method return boolean to indicate if the optimistic
|
|
@@ -316,7 +332,7 @@ function () {
|
|
|
316
332
|
}
|
|
317
333
|
|
|
318
334
|
if (isOptimistic) {
|
|
319
|
-
this._processOptimisticResponse(response, null);
|
|
335
|
+
this._processOptimisticResponse(response, null, this._treatMissingFieldsAsNull);
|
|
320
336
|
|
|
321
337
|
this._sink.next(response);
|
|
322
338
|
|
|
@@ -331,7 +347,31 @@ function () {
|
|
|
331
347
|
return;
|
|
332
348
|
}
|
|
333
349
|
|
|
334
|
-
var
|
|
350
|
+
var responses = Array.isArray(response) ? response : [response];
|
|
351
|
+
|
|
352
|
+
var responsesWithData = this._handleErrorResponse(responses);
|
|
353
|
+
|
|
354
|
+
if (responsesWithData.length === 0) {
|
|
355
|
+
// no results with data, nothing to process
|
|
356
|
+
// this can occur with extensions-only payloads
|
|
357
|
+
var isFinal = responses.some(function (x) {
|
|
358
|
+
var _x$extensions;
|
|
359
|
+
|
|
360
|
+
return ((_x$extensions = x.extensions) === null || _x$extensions === void 0 ? void 0 : _x$extensions.is_final) === true;
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
if (isFinal) {
|
|
364
|
+
this._state = 'loading_final';
|
|
365
|
+
|
|
366
|
+
this._updateActiveState();
|
|
367
|
+
|
|
368
|
+
this._incrementalPayloadsPending = false;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
this._sink.next(response);
|
|
372
|
+
|
|
373
|
+
return;
|
|
374
|
+
} // Next, handle optimistic responses
|
|
335
375
|
|
|
336
376
|
|
|
337
377
|
var isOptimistic = this._handleOptimisticResponses(responsesWithData);
|
|
@@ -380,7 +420,7 @@ function () {
|
|
|
380
420
|
this._sink.next(response);
|
|
381
421
|
};
|
|
382
422
|
|
|
383
|
-
_proto._processOptimisticResponse = function _processOptimisticResponse(response, updater) {
|
|
423
|
+
_proto._processOptimisticResponse = function _processOptimisticResponse(response, updater, treatMissingFieldsAsNull) {
|
|
384
424
|
var _this6 = this;
|
|
385
425
|
|
|
386
426
|
!(this._optimisticUpdates === null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'environment.execute: only support one optimistic response per ' + 'execute.') : invariant(false) : void 0;
|
|
@@ -395,7 +435,8 @@ function () {
|
|
|
395
435
|
var payload = normalizeResponse(response, this._operation.root, ROOT_TYPE, {
|
|
396
436
|
getDataID: this._getDataID,
|
|
397
437
|
path: [],
|
|
398
|
-
request: this._operation.request
|
|
438
|
+
request: this._operation.request,
|
|
439
|
+
treatMissingFieldsAsNull: treatMissingFieldsAsNull
|
|
399
440
|
});
|
|
400
441
|
validateOptimisticResponsePayload(payload);
|
|
401
442
|
optimisticUpdates.push({
|
|
@@ -433,12 +474,12 @@ function () {
|
|
|
433
474
|
var moduleImportPayloads = payload.moduleImportPayloads;
|
|
434
475
|
var operationLoader = this._operationLoader;
|
|
435
476
|
!operationLoader ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernEnvironment: Expected an operationLoader to be ' + 'configured when using `@match`.') : invariant(false) : void 0;
|
|
436
|
-
|
|
437
|
-
var
|
|
438
|
-
|
|
477
|
+
|
|
478
|
+
var _iterator = _createForOfIteratorHelper(moduleImportPayloads),
|
|
479
|
+
_step;
|
|
439
480
|
|
|
440
481
|
try {
|
|
441
|
-
for (
|
|
482
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
442
483
|
var moduleImportPayload = _step.value;
|
|
443
484
|
var operation = operationLoader.get(moduleImportPayload.operationReference);
|
|
444
485
|
|
|
@@ -451,18 +492,9 @@ function () {
|
|
|
451
492
|
}
|
|
452
493
|
}
|
|
453
494
|
} catch (err) {
|
|
454
|
-
|
|
455
|
-
_iteratorError = err;
|
|
495
|
+
_iterator.e(err);
|
|
456
496
|
} finally {
|
|
457
|
-
|
|
458
|
-
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
|
459
|
-
_iterator["return"]();
|
|
460
|
-
}
|
|
461
|
-
} finally {
|
|
462
|
-
if (_didIteratorError) {
|
|
463
|
-
throw _iteratorError;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
497
|
+
_iterator.f();
|
|
466
498
|
}
|
|
467
499
|
}
|
|
468
500
|
};
|
|
@@ -474,7 +506,8 @@ function () {
|
|
|
474
506
|
}, selector, moduleImportPayload.typeName, {
|
|
475
507
|
getDataID: this._getDataID,
|
|
476
508
|
path: moduleImportPayload.path,
|
|
477
|
-
request: this._operation.request
|
|
509
|
+
request: this._operation.request,
|
|
510
|
+
treatMissingFieldsAsNull: this._treatMissingFieldsAsNull
|
|
478
511
|
});
|
|
479
512
|
};
|
|
480
513
|
|
|
@@ -541,6 +574,7 @@ function () {
|
|
|
541
574
|
return responses.map(function (payloadPart) {
|
|
542
575
|
var relayPayload = normalizeResponse(payloadPart, _this8._operation.root, ROOT_TYPE, {
|
|
543
576
|
getDataID: _this8._getDataID,
|
|
577
|
+
treatMissingFieldsAsNull: _this8._treatMissingFieldsAsNull,
|
|
544
578
|
path: [],
|
|
545
579
|
request: _this8._operation.request
|
|
546
580
|
});
|
|
@@ -889,7 +923,8 @@ function () {
|
|
|
889
923
|
var relayPayload = normalizeResponse(response, placeholder.selector, placeholder.typeName, {
|
|
890
924
|
getDataID: this._getDataID,
|
|
891
925
|
path: placeholder.path,
|
|
892
|
-
request: this._operation.request
|
|
926
|
+
request: this._operation.request,
|
|
927
|
+
treatMissingFieldsAsNull: this._treatMissingFieldsAsNull
|
|
893
928
|
});
|
|
894
929
|
|
|
895
930
|
this._publishQueue.commitPayload(this._operation, relayPayload); // Load the version of the parent record from which this incremental data
|
|
@@ -1040,7 +1075,8 @@ function () {
|
|
|
1040
1075
|
var relayPayload = normalizeResponse(response, selector, typeName, {
|
|
1041
1076
|
getDataID: this._getDataID,
|
|
1042
1077
|
path: [].concat((0, _toConsumableArray2["default"])(normalizationPath), [responseKey, String(itemIndex)]),
|
|
1043
|
-
request: this._operation.request
|
|
1078
|
+
request: this._operation.request,
|
|
1079
|
+
treatMissingFieldsAsNull: this._treatMissingFieldsAsNull
|
|
1044
1080
|
});
|
|
1045
1081
|
return {
|
|
1046
1082
|
fieldPayloads: fieldPayloads,
|
|
@@ -1100,7 +1136,7 @@ function normalizeResponse(response, selector, typeName, options) {
|
|
|
1100
1136
|
var record = RelayModernRecord.create(selector.dataID, typeName);
|
|
1101
1137
|
source.set(selector.dataID, record);
|
|
1102
1138
|
var relayPayload = RelayResponseNormalizer.normalize(source, selector, data, options);
|
|
1103
|
-
return (
|
|
1139
|
+
return _objectSpread({}, relayPayload, {
|
|
1104
1140
|
errors: errors,
|
|
1105
1141
|
isFinal: ((_response$extensions3 = response.extensions) === null || _response$extensions3 === void 0 ? void 0 : _response$extensions3.is_final) === true
|
|
1106
1142
|
});
|