relay-runtime 8.0.0 → 10.0.1

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.
Files changed (135) hide show
  1. package/handlers/RelayDefaultHandlerProvider.js.flow +41 -0
  2. package/handlers/connection/ConnectionHandler.js.flow +549 -0
  3. package/handlers/connection/ConnectionInterface.js.flow +92 -0
  4. package/handlers/connection/MutationHandlers.js.flow +88 -0
  5. package/index.js +1 -1
  6. package/index.js.flow +320 -0
  7. package/lib/handlers/RelayDefaultHandlerProvider.js +13 -2
  8. package/lib/handlers/connection/{RelayConnectionHandler.js → ConnectionHandler.js} +33 -35
  9. package/lib/handlers/connection/{RelayConnectionInterface.js → ConnectionInterface.js} +2 -2
  10. package/lib/handlers/connection/MutationHandlers.js +86 -0
  11. package/lib/index.js +15 -19
  12. package/lib/mutations/RelayDeclarativeMutationConfig.js +29 -52
  13. package/lib/mutations/RelayRecordProxy.js +1 -3
  14. package/lib/mutations/RelayRecordSourceMutator.js +2 -9
  15. package/lib/mutations/RelayRecordSourceProxy.js +2 -4
  16. package/lib/mutations/RelayRecordSourceSelectorProxy.js +1 -13
  17. package/lib/mutations/commitMutation.js +13 -3
  18. package/lib/mutations/validateMutation.js +16 -9
  19. package/lib/network/RelayObservable.js +9 -9
  20. package/lib/network/RelayQueryResponseCache.js +8 -6
  21. package/lib/query/PreloadableQueryRegistry.js +70 -0
  22. package/lib/query/fetchQueryInternal.js +31 -23
  23. package/lib/store/DataChecker.js +122 -110
  24. package/lib/store/RelayConcreteVariables.js +6 -2
  25. package/lib/store/RelayModernEnvironment.js +121 -67
  26. package/lib/store/RelayModernFragmentSpecResolver.js +12 -16
  27. package/lib/store/RelayModernQueryExecutor.js +389 -314
  28. package/lib/store/RelayModernRecord.js +14 -9
  29. package/lib/store/RelayModernSelector.js +7 -3
  30. package/lib/store/RelayModernStore.js +289 -484
  31. package/lib/store/RelayOperationTracker.js +35 -78
  32. package/lib/store/RelayOptimisticRecordSource.js +7 -5
  33. package/lib/store/RelayPublishQueue.js +6 -33
  34. package/lib/store/RelayReader.js +113 -45
  35. package/lib/store/RelayRecordSource.js +2 -9
  36. package/lib/store/RelayRecordSourceMapImpl.js +13 -18
  37. package/lib/store/RelayReferenceMarker.js +40 -60
  38. package/lib/store/RelayResponseNormalizer.js +158 -193
  39. package/lib/store/RelayStoreUtils.js +1 -0
  40. package/lib/store/StoreInspector.js +8 -8
  41. package/lib/store/TypeID.js +28 -0
  42. package/lib/store/cloneRelayScalarHandleSourceField.js +44 -0
  43. package/lib/store/normalizeRelayPayload.js +6 -2
  44. package/lib/store/readInlineData.js +1 -1
  45. package/lib/subscription/requestSubscription.js +5 -3
  46. package/lib/util/RelayConcreteNode.js +9 -6
  47. package/lib/util/RelayError.js +39 -9
  48. package/lib/util/RelayFeatureFlags.js +2 -5
  49. package/lib/util/RelayReplaySubject.js +3 -3
  50. package/lib/util/createPayloadFor3DField.js +7 -2
  51. package/lib/util/getRequestIdentifier.js +2 -2
  52. package/lib/util/recycleNodesInto.js +2 -6
  53. package/mutations/RelayDeclarativeMutationConfig.js.flow +380 -0
  54. package/mutations/RelayRecordProxy.js.flow +165 -0
  55. package/mutations/RelayRecordSourceMutator.js.flow +238 -0
  56. package/mutations/RelayRecordSourceProxy.js.flow +164 -0
  57. package/mutations/RelayRecordSourceSelectorProxy.js.flow +119 -0
  58. package/mutations/applyOptimisticMutation.js.flow +76 -0
  59. package/mutations/commitLocalUpdate.js.flow +24 -0
  60. package/mutations/commitMutation.js.flow +182 -0
  61. package/mutations/validateMutation.js.flow +213 -0
  62. package/network/ConvertToExecuteFunction.js.flow +49 -0
  63. package/network/RelayNetwork.js.flow +84 -0
  64. package/network/RelayNetworkTypes.js.flow +123 -0
  65. package/network/RelayObservable.js.flow +634 -0
  66. package/network/RelayQueryResponseCache.js.flow +111 -0
  67. package/package.json +1 -1
  68. package/query/GraphQLTag.js.flow +166 -0
  69. package/query/PreloadableQueryRegistry.js.flow +65 -0
  70. package/query/fetchQuery.js.flow +47 -0
  71. package/query/fetchQueryInternal.js.flow +348 -0
  72. package/relay-runtime.js +2 -2
  73. package/relay-runtime.min.js +2 -2
  74. package/store/ClientID.js.flow +43 -0
  75. package/store/DataChecker.js.flow +502 -0
  76. package/store/RelayConcreteVariables.js.flow +96 -0
  77. package/store/RelayModernEnvironment.js.flow +551 -0
  78. package/store/RelayModernFragmentSpecResolver.js.flow +426 -0
  79. package/store/RelayModernOperationDescriptor.js.flow +88 -0
  80. package/store/RelayModernQueryExecutor.js.flow +1321 -0
  81. package/store/RelayModernRecord.js.flow +403 -0
  82. package/store/RelayModernSelector.js.flow +455 -0
  83. package/store/RelayModernStore.js.flow +842 -0
  84. package/store/RelayOperationTracker.js.flow +164 -0
  85. package/store/RelayOptimisticRecordSource.js.flow +119 -0
  86. package/store/RelayPublishQueue.js.flow +401 -0
  87. package/store/RelayReader.js.flow +473 -0
  88. package/store/RelayRecordSource.js.flow +29 -0
  89. package/store/RelayRecordSourceMapImpl.js.flow +87 -0
  90. package/store/RelayRecordState.js.flow +37 -0
  91. package/store/RelayReferenceMarker.js.flow +257 -0
  92. package/store/RelayResponseNormalizer.js.flow +680 -0
  93. package/store/RelayStoreTypes.js.flow +899 -0
  94. package/store/RelayStoreUtils.js.flow +219 -0
  95. package/store/StoreInspector.js.flow +171 -0
  96. package/store/TypeID.js.flow +28 -0
  97. package/store/ViewerPattern.js.flow +26 -0
  98. package/store/cloneRelayHandleSourceField.js.flow +66 -0
  99. package/store/cloneRelayScalarHandleSourceField.js.flow +62 -0
  100. package/store/createFragmentSpecResolver.js.flow +55 -0
  101. package/store/createRelayContext.js.flow +44 -0
  102. package/store/defaultGetDataID.js.flow +27 -0
  103. package/store/hasOverlappingIDs.js.flow +34 -0
  104. package/store/isRelayModernEnvironment.js.flow +27 -0
  105. package/store/normalizeRelayPayload.js.flow +51 -0
  106. package/store/readInlineData.js.flow +75 -0
  107. package/subscription/requestSubscription.js.flow +100 -0
  108. package/util/JSResourceTypes.flow.js.flow +20 -0
  109. package/util/NormalizationNode.js.flow +198 -0
  110. package/util/ReaderNode.js.flow +208 -0
  111. package/util/RelayConcreteNode.js.flow +93 -0
  112. package/util/RelayDefaultHandleKey.js.flow +17 -0
  113. package/util/RelayError.js.flow +62 -0
  114. package/util/RelayFeatureFlags.js.flow +30 -0
  115. package/util/RelayProfiler.js.flow +284 -0
  116. package/util/RelayReplaySubject.js.flow +135 -0
  117. package/util/RelayRuntimeTypes.js.flow +72 -0
  118. package/util/createPayloadFor3DField.js.flow +43 -0
  119. package/util/deepFreeze.js.flow +36 -0
  120. package/util/generateID.js.flow +21 -0
  121. package/util/getFragmentIdentifier.js.flow +52 -0
  122. package/util/getRelayHandleKey.js.flow +41 -0
  123. package/util/getRequestIdentifier.js.flow +42 -0
  124. package/util/isPromise.js.flow +21 -0
  125. package/util/isScalarAndEqual.js.flow +26 -0
  126. package/util/recycleNodesInto.js.flow +76 -0
  127. package/util/resolveImmediate.js.flow +30 -0
  128. package/util/stableCopy.js.flow +35 -0
  129. package/lib/handlers/RelayDefaultMissingFieldHandlers.js +0 -26
  130. package/lib/handlers/getRelayDefaultMissingFieldHandlers.js +0 -36
  131. package/lib/query/RelayModernGraphQLTag.js +0 -104
  132. package/lib/store/RelayConnection.js +0 -37
  133. package/lib/store/RelayConnectionResolver.js +0 -178
  134. package/lib/store/RelayRecordSourceObjectImpl.js +0 -79
  135. package/lib/util/getFragmentSpecIdentifier.js +0 -27
@@ -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');
@@ -29,20 +37,17 @@ var defaultGetDataID = require('./defaultGetDataID');
29
37
 
30
38
  var generateID = require('../util/generateID');
31
39
 
32
- var getRelayDefaultMissingFieldHandlers = require('../handlers/getRelayDefaultMissingFieldHandlers');
33
-
34
40
  var invariant = require("fbjs/lib/invariant");
35
41
 
36
- var RelayModernEnvironment =
37
- /*#__PURE__*/
38
- function () {
42
+ var RelayModernEnvironment = /*#__PURE__*/function () {
39
43
  function RelayModernEnvironment(config) {
40
44
  var _this = this;
41
45
 
42
- var _config$log, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$missingFieldH, _config$operationTrac;
46
+ var _config$log, _config$UNSTABLE_defa, _config$UNSTABLE_DO_N, _config$scheduler, _config$isServer, _config$operationTrac;
43
47
 
44
48
  this.configName = config.configName;
45
49
  var handlerProvider = config.handlerProvider ? config.handlerProvider : RelayDefaultHandlerProvider;
50
+ this._treatMissingFieldsAsNull = config.treatMissingFieldsAsNull === true;
46
51
  var operationLoader = config.operationLoader;
47
52
 
48
53
  if (process.env.NODE_ENV !== "production") {
@@ -54,12 +59,14 @@ function () {
54
59
  this.__log = (_config$log = config.log) !== null && _config$log !== void 0 ? _config$log : emptyFunction;
55
60
  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';
56
61
  this._operationLoader = operationLoader;
62
+ this._operationExecutions = new Map();
57
63
  this._network = config.network;
58
64
  this._getDataID = (_config$UNSTABLE_DO_N = config.UNSTABLE_DO_NOT_USE_getDataID) !== null && _config$UNSTABLE_DO_N !== void 0 ? _config$UNSTABLE_DO_N : defaultGetDataID;
59
65
  this._publishQueue = new RelayPublishQueue(config.store, handlerProvider, this._getDataID);
60
66
  this._scheduler = (_config$scheduler = config.scheduler) !== null && _config$scheduler !== void 0 ? _config$scheduler : null;
61
67
  this._store = config.store;
62
68
  this.options = config.options;
69
+ this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;
63
70
 
64
71
  this.__setNet = function (newNet) {
65
72
  return _this._network = newNet;
@@ -84,7 +91,7 @@ function () {
84
91
  devToolsHook.registerEnvironment(this);
85
92
  }
86
93
 
87
- this._missingFieldHandlers = (_config$missingFieldH = config.missingFieldHandlers) !== null && _config$missingFieldH !== void 0 ? _config$missingFieldH : getRelayDefaultMissingFieldHandlers();
94
+ this._missingFieldHandlers = config.missingFieldHandlers;
88
95
  this._operationTracker = (_config$operationTrac = config.operationTracker) !== null && _config$operationTrac !== void 0 ? _config$operationTrac : new RelayOperationTracker();
89
96
  }
90
97
 
@@ -102,6 +109,12 @@ function () {
102
109
  return this._operationTracker;
103
110
  };
104
111
 
112
+ _proto.isRequestActive = function isRequestActive(requestIdentifier) {
113
+ var activeState = this._operationExecutions.get(requestIdentifier);
114
+
115
+ return activeState === 'active';
116
+ };
117
+
105
118
  _proto.UNSTABLE_getDefaultRenderPolicy = function UNSTABLE_getDefaultRenderPolicy() {
106
119
  return this._defaultRenderPolicy;
107
120
  };
@@ -110,14 +123,18 @@ function () {
110
123
  var _this2 = this;
111
124
 
112
125
  var dispose = function dispose() {
113
- _this2._publishQueue.revertUpdate(optimisticUpdate);
126
+ _this2._scheduleUpdates(function () {
127
+ _this2._publishQueue.revertUpdate(optimisticUpdate);
114
128
 
115
- _this2._publishQueue.run();
129
+ _this2._publishQueue.run();
130
+ });
116
131
  };
117
132
 
118
- this._publishQueue.applyUpdate(optimisticUpdate);
133
+ this._scheduleUpdates(function () {
134
+ _this2._publishQueue.applyUpdate(optimisticUpdate);
119
135
 
120
- this._publishQueue.run();
136
+ _this2._publishQueue.run();
137
+ });
121
138
 
122
139
  return {
123
140
  dispose: dispose
@@ -125,36 +142,46 @@ function () {
125
142
  };
126
143
 
127
144
  _proto.revertUpdate = function revertUpdate(update) {
128
- this._publishQueue.revertUpdate(update);
145
+ var _this3 = this;
146
+
147
+ this._scheduleUpdates(function () {
148
+ _this3._publishQueue.revertUpdate(update);
129
149
 
130
- this._publishQueue.run();
150
+ _this3._publishQueue.run();
151
+ });
131
152
  };
132
153
 
133
154
  _proto.replaceUpdate = function replaceUpdate(update, newUpdate) {
134
- this._publishQueue.revertUpdate(update);
155
+ var _this4 = this;
156
+
157
+ this._scheduleUpdates(function () {
158
+ _this4._publishQueue.revertUpdate(update);
135
159
 
136
- this._publishQueue.applyUpdate(newUpdate);
160
+ _this4._publishQueue.applyUpdate(newUpdate);
137
161
 
138
- this._publishQueue.run();
162
+ _this4._publishQueue.run();
163
+ });
139
164
  };
140
165
 
141
166
  _proto.applyMutation = function applyMutation(optimisticConfig) {
142
- var _this3 = this;
167
+ var _this5 = this;
143
168
 
144
169
  var subscription = RelayObservable.create(function (sink) {
145
170
  var source = RelayObservable.create(function (_sink) {});
146
171
  var executor = RelayModernQueryExecutor.execute({
147
172
  operation: optimisticConfig.operation,
148
- operationLoader: _this3._operationLoader,
173
+ operationExecutions: _this5._operationExecutions,
174
+ operationLoader: _this5._operationLoader,
149
175
  optimisticConfig: optimisticConfig,
150
- publishQueue: _this3._publishQueue,
151
- scheduler: _this3._scheduler,
176
+ publishQueue: _this5._publishQueue,
177
+ scheduler: _this5._scheduler,
152
178
  sink: sink,
153
179
  source: source,
154
- store: _this3._store,
180
+ store: _this5._store,
155
181
  updater: null,
156
- operationTracker: _this3._operationTracker,
157
- getDataID: _this3._getDataID
182
+ operationTracker: _this5._operationTracker,
183
+ getDataID: _this5._getDataID,
184
+ treatMissingFieldsAsNull: _this5._treatMissingFieldsAsNull
158
185
  });
159
186
  return function () {
160
187
  return executor.cancel();
@@ -176,28 +203,26 @@ function () {
176
203
  };
177
204
 
178
205
  _proto.commitPayload = function commitPayload(operation, payload) {
179
- var _this4 = this;
206
+ var _this6 = this;
180
207
 
181
208
  RelayObservable.create(function (sink) {
182
209
  var executor = RelayModernQueryExecutor.execute({
183
210
  operation: operation,
184
- operationLoader: _this4._operationLoader,
211
+ operationExecutions: _this6._operationExecutions,
212
+ operationLoader: _this6._operationLoader,
185
213
  optimisticConfig: null,
186
- publishQueue: _this4._publishQueue,
187
- scheduler: null,
188
- // make sure the first payload is sync
214
+ publishQueue: _this6._publishQueue,
215
+ scheduler: _this6._scheduler,
189
216
  sink: sink,
190
217
  source: RelayObservable.from({
191
- data: payload,
192
- extensions: {
193
- is_final: true
194
- }
218
+ data: payload
195
219
  }),
196
- store: _this4._store,
220
+ store: _this6._store,
197
221
  updater: null,
198
- operationTracker: _this4._operationTracker,
199
- getDataID: _this4._getDataID,
200
- isClientPayload: true
222
+ operationTracker: _this6._operationTracker,
223
+ getDataID: _this6._getDataID,
224
+ isClientPayload: true,
225
+ treatMissingFieldsAsNull: _this6._treatMissingFieldsAsNull
201
226
  });
202
227
  return function () {
203
228
  return executor.cancel();
@@ -206,9 +231,13 @@ function () {
206
231
  };
207
232
 
208
233
  _proto.commitUpdate = function commitUpdate(updater) {
209
- this._publishQueue.commitUpdate(updater);
234
+ var _this7 = this;
210
235
 
211
- this._publishQueue.run();
236
+ this._scheduleUpdates(function () {
237
+ _this7._publishQueue.commitUpdate(updater);
238
+
239
+ _this7._publishQueue.run();
240
+ });
212
241
  };
213
242
 
214
243
  _proto.lookup = function lookup(readSelector) {
@@ -223,7 +252,13 @@ function () {
223
252
  return this._store.retain(operation);
224
253
  };
225
254
 
255
+ _proto.isServer = function isServer() {
256
+ return this._isServer;
257
+ };
258
+
226
259
  _proto._checkSelectorAndHandleMissingFields = function _checkSelectorAndHandleMissingFields(operation, handlers) {
260
+ var _this8 = this;
261
+
227
262
  var target = RelayRecordSource.create();
228
263
 
229
264
  var result = this._store.check(operation, {
@@ -232,12 +267,24 @@ function () {
232
267
  });
233
268
 
234
269
  if (target.size() > 0) {
235
- this._publishQueue.commitSource(target);
270
+ this._scheduleUpdates(function () {
271
+ _this8._publishQueue.commitSource(target);
236
272
 
237
- this._publishQueue.run();
273
+ _this8._publishQueue.run();
274
+ });
238
275
  }
239
276
 
240
277
  return result;
278
+ };
279
+
280
+ _proto._scheduleUpdates = function _scheduleUpdates(task) {
281
+ var scheduler = this._scheduler;
282
+
283
+ if (scheduler != null) {
284
+ scheduler.schedule(task);
285
+ } else {
286
+ task();
287
+ }
241
288
  }
242
289
  /**
243
290
  * Returns an Observable of GraphQLResponse resulting from executing the
@@ -250,7 +297,7 @@ function () {
250
297
  ;
251
298
 
252
299
  _proto.execute = function execute(_ref) {
253
- var _this5 = this;
300
+ var _this9 = this;
254
301
 
255
302
  var operation = _ref.operation,
256
303
  cacheConfig = _ref.cacheConfig,
@@ -261,25 +308,27 @@ function () {
261
308
  logRequestInfo = _this$__createLogObse[1];
262
309
 
263
310
  return RelayObservable.create(function (sink) {
264
- var source = _this5._network.execute(operation.request.node.params, operation.request.variables, cacheConfig || {}, null, logRequestInfo);
311
+ var source = _this9._network.execute(operation.request.node.params, operation.request.variables, cacheConfig || {}, null, logRequestInfo)["do"](logObserver);
265
312
 
266
313
  var executor = RelayModernQueryExecutor.execute({
267
314
  operation: operation,
268
- operationLoader: _this5._operationLoader,
315
+ operationExecutions: _this9._operationExecutions,
316
+ operationLoader: _this9._operationLoader,
269
317
  optimisticConfig: null,
270
- publishQueue: _this5._publishQueue,
271
- scheduler: _this5._scheduler,
318
+ publishQueue: _this9._publishQueue,
319
+ scheduler: _this9._scheduler,
272
320
  sink: sink,
273
321
  source: source,
274
- store: _this5._store,
322
+ store: _this9._store,
275
323
  updater: updater,
276
- operationTracker: _this5._operationTracker,
277
- getDataID: _this5._getDataID
324
+ operationTracker: _this9._operationTracker,
325
+ getDataID: _this9._getDataID,
326
+ treatMissingFieldsAsNull: _this9._treatMissingFieldsAsNull
278
327
  });
279
328
  return function () {
280
329
  return executor.cancel();
281
330
  };
282
- })["do"](logObserver);
331
+ });
283
332
  }
284
333
  /**
285
334
  * Returns an Observable of GraphQLResponse resulting from executing the
@@ -294,9 +343,10 @@ function () {
294
343
  ;
295
344
 
296
345
  _proto.executeMutation = function executeMutation(_ref2) {
297
- var _this6 = this;
346
+ var _this10 = this;
298
347
 
299
- var operation = _ref2.operation,
348
+ var cacheConfig = _ref2.cacheConfig,
349
+ operation = _ref2.operation,
300
350
  optimisticResponse = _ref2.optimisticResponse,
301
351
  optimisticUpdater = _ref2.optimisticUpdater,
302
352
  updater = _ref2.updater,
@@ -317,27 +367,29 @@ function () {
317
367
  };
318
368
  }
319
369
 
320
- var source = _this6._network.execute(operation.request.node.params, operation.request.variables, {
370
+ var source = _this10._network.execute(operation.request.node.params, operation.request.variables, _objectSpread({}, cacheConfig, {
321
371
  force: true
322
- }, uploadables, logRequestInfo);
372
+ }), uploadables, logRequestInfo)["do"](logObserver);
323
373
 
324
374
  var executor = RelayModernQueryExecutor.execute({
325
375
  operation: operation,
326
- operationLoader: _this6._operationLoader,
376
+ operationExecutions: _this10._operationExecutions,
377
+ operationLoader: _this10._operationLoader,
327
378
  optimisticConfig: optimisticConfig,
328
- publishQueue: _this6._publishQueue,
329
- scheduler: _this6._scheduler,
379
+ publishQueue: _this10._publishQueue,
380
+ scheduler: _this10._scheduler,
330
381
  sink: sink,
331
382
  source: source,
332
- store: _this6._store,
383
+ store: _this10._store,
333
384
  updater: updater,
334
- operationTracker: _this6._operationTracker,
335
- getDataID: _this6._getDataID
385
+ operationTracker: _this10._operationTracker,
386
+ getDataID: _this10._getDataID,
387
+ treatMissingFieldsAsNull: _this10._treatMissingFieldsAsNull
336
388
  });
337
389
  return function () {
338
390
  return executor.cancel();
339
391
  };
340
- })["do"](logObserver);
392
+ });
341
393
  }
342
394
  /**
343
395
  * Returns an Observable of GraphQLResponse resulting from executing the
@@ -351,22 +403,24 @@ function () {
351
403
  ;
352
404
 
353
405
  _proto.executeWithSource = function executeWithSource(_ref3) {
354
- var _this7 = this;
406
+ var _this11 = this;
355
407
 
356
408
  var operation = _ref3.operation,
357
409
  source = _ref3.source;
358
410
  return RelayObservable.create(function (sink) {
359
411
  var executor = RelayModernQueryExecutor.execute({
360
412
  operation: operation,
361
- operationLoader: _this7._operationLoader,
362
- operationTracker: _this7._operationTracker,
413
+ operationExecutions: _this11._operationExecutions,
414
+ operationLoader: _this11._operationLoader,
415
+ operationTracker: _this11._operationTracker,
363
416
  optimisticConfig: null,
364
- publishQueue: _this7._publishQueue,
365
- scheduler: _this7._scheduler,
417
+ publishQueue: _this11._publishQueue,
418
+ scheduler: _this11._scheduler,
366
419
  sink: sink,
367
420
  source: source,
368
- store: _this7._store,
369
- getDataID: _this7._getDataID
421
+ store: _this11._store,
422
+ getDataID: _this11._getDataID,
423
+ treatMissingFieldsAsNull: _this11._treatMissingFieldsAsNull
370
424
  });
371
425
  return function () {
372
426
  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");
@@ -27,7 +29,7 @@ var isScalarAndEqual = require('../util/isScalarAndEqual');
27
29
  var warning = require("fbjs/lib/warning");
28
30
 
29
31
  var _require = require('../query/fetchQueryInternal'),
30
- getPromiseForRequestInFlight = _require.getPromiseForRequestInFlight;
32
+ getPromiseForActiveRequest = _require.getPromiseForActiveRequest;
31
33
 
32
34
  var _require2 = require('./RelayModernOperationDescriptor'),
33
35
  createRequestDescriptor = _require2.createRequestDescriptor;
@@ -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 || (0, _objectSpread2["default"])({}, prevData);
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 || (0, _objectSpread2["default"])({}, prevData);
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
 
@@ -227,7 +225,7 @@ function () {
227
225
 
228
226
  _proto2.resolve = function resolve() {
229
227
  if (RelayFeatureFlags.ENABLE_RELAY_CONTAINERS_SUSPENSE === true && this._isMissingData === true) {
230
- var _getPromiseForRequest;
228
+ var _getPromiseForActiveR;
231
229
 
232
230
  // NOTE: This branch exists to handle the case in which:
233
231
  // - A RelayModern container is rendered as a descendant of a Relay Hook
@@ -250,7 +248,7 @@ function () {
250
248
  // This should eventually go away with something like @optional, where we only
251
249
  // suspend at specific boundaries depending on whether the boundary
252
250
  // can be fulfilled or not.
253
- var promise = (_getPromiseForRequest = getPromiseForRequestInFlight(this._environment, this._selector.owner)) !== null && _getPromiseForRequest !== void 0 ? _getPromiseForRequest : this._environment.getOperationTracker().getPromiseForPendingOperationsAffectingOwner(this._selector.owner);
251
+ var promise = (_getPromiseForActiveR = getPromiseForActiveRequest(this._environment, this._selector.owner)) !== null && _getPromiseForActiveR !== void 0 ? _getPromiseForActiveR : this._environment.getOperationTracker().getPromiseForPendingOperationsAffectingOwner(this._selector.owner);
254
252
 
255
253
  if (promise != null) {
256
254
  process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Relay Container for fragment `%s` suspended. When using ' + 'features such as @defer or @module, use `useFragment` instead ' + 'of a Relay Container.', this._selector.node.name) : void 0;
@@ -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