relay-runtime 12.0.0 → 13.0.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/LICENSE +1 -1
- package/README.md +67 -0
- package/handlers/RelayDefaultHandlerProvider.js.flow +3 -3
- package/handlers/connection/ConnectionHandler.js.flow +9 -18
- package/handlers/connection/ConnectionInterface.js.flow +1 -1
- package/handlers/connection/MutationHandlers.js.flow +8 -12
- package/index.js +2 -2
- package/index.js.flow +43 -34
- package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
- package/lib/handlers/connection/ConnectionHandler.js +13 -19
- package/lib/handlers/connection/ConnectionInterface.js +1 -1
- package/lib/handlers/connection/MutationHandlers.js +4 -7
- package/lib/index.js +49 -46
- package/lib/multi-actor-environment/ActorIdentifier.js +1 -1
- package/lib/multi-actor-environment/ActorSpecificEnvironment.js +9 -5
- package/lib/multi-actor-environment/ActorUtils.js +1 -1
- package/lib/multi-actor-environment/MultiActorEnvironment.js +36 -23
- package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +1 -1
- package/lib/multi-actor-environment/index.js +3 -3
- package/lib/mutations/RelayDeclarativeMutationConfig.js +5 -2
- package/lib/mutations/RelayRecordProxy.js +4 -3
- package/lib/mutations/RelayRecordSourceMutator.js +4 -3
- package/lib/mutations/RelayRecordSourceProxy.js +13 -5
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +13 -5
- package/lib/mutations/applyOptimisticMutation.js +7 -7
- package/lib/mutations/commitLocalUpdate.js +1 -1
- package/lib/mutations/commitMutation.js +16 -15
- package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +242 -0
- package/lib/mutations/validateMutation.js +7 -7
- package/lib/network/ConvertToExecuteFunction.js +3 -2
- package/lib/network/RelayNetwork.js +4 -3
- package/lib/network/RelayNetworkTypes.js +1 -1
- package/lib/network/RelayObservable.js +2 -4
- package/lib/network/RelayQueryResponseCache.js +3 -3
- package/lib/network/wrapNetworkWithLogObserver.js +3 -2
- package/lib/query/GraphQLTag.js +3 -2
- package/lib/query/PreloadableQueryRegistry.js +1 -1
- package/lib/query/fetchQuery.js +7 -6
- package/lib/query/fetchQueryInternal.js +1 -1
- package/lib/query/fetchQuery_DEPRECATED.js +3 -2
- package/lib/store/ClientID.js +8 -2
- package/lib/store/DataChecker.js +17 -18
- package/lib/store/OperationExecutor.js +14 -14
- package/lib/store/RelayConcreteVariables.js +7 -10
- package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
- package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
- package/lib/store/RelayModernEnvironment.js +67 -43
- package/lib/store/RelayModernFragmentSpecResolver.js +9 -9
- package/lib/store/RelayModernOperationDescriptor.js +3 -2
- package/lib/store/RelayModernRecord.js +13 -12
- package/lib/store/RelayModernSelector.js +15 -9
- package/lib/store/RelayModernStore.js +15 -16
- package/lib/store/RelayOperationTracker.js +1 -1
- package/lib/store/RelayOptimisticRecordSource.js +1 -1
- package/lib/store/RelayPublishQueue.js +12 -6
- package/lib/store/RelayReader.js +131 -40
- package/lib/store/RelayRecordSource.js +1 -1
- package/lib/store/RelayRecordState.js +1 -1
- package/lib/store/RelayReferenceMarker.js +11 -12
- package/lib/store/RelayResponseNormalizer.js +26 -23
- package/lib/store/RelayStoreReactFlightUtils.js +4 -4
- package/lib/store/RelayStoreSubscriptions.js +7 -5
- package/lib/store/RelayStoreTypes.js +1 -1
- package/lib/store/RelayStoreUtils.js +6 -6
- package/lib/store/ResolverCache.js +7 -7
- package/lib/store/ResolverFragments.js +12 -8
- package/lib/store/StoreInspector.js +1 -1
- package/lib/store/TypeID.js +1 -1
- package/lib/store/ViewerPattern.js +1 -1
- package/lib/store/cloneRelayHandleSourceField.js +6 -5
- package/lib/store/cloneRelayScalarHandleSourceField.js +6 -5
- package/lib/store/createFragmentSpecResolver.js +1 -1
- package/lib/store/createRelayContext.js +4 -2
- package/lib/store/defaultGetDataID.js +1 -1
- package/lib/store/defaultRequiredFieldLogger.js +1 -1
- package/lib/store/hasOverlappingIDs.js +1 -1
- package/lib/store/isRelayModernEnvironment.js +1 -1
- package/lib/store/normalizeRelayPayload.js +1 -1
- package/lib/store/readInlineData.js +7 -3
- package/lib/subscription/requestSubscription.js +4 -6
- package/lib/util/JSResourceTypes.flow.js +1 -1
- package/lib/util/NormalizationNode.js +1 -1
- package/lib/util/ReaderNode.js +1 -1
- package/lib/util/RelayConcreteNode.js +2 -1
- package/lib/util/RelayDefaultHandleKey.js +1 -1
- package/lib/util/RelayError.js +1 -1
- package/lib/util/RelayFeatureFlags.js +8 -3
- package/lib/util/RelayProfiler.js +1 -1
- package/lib/util/RelayReplaySubject.js +1 -1
- package/lib/util/RelayRuntimeTypes.js +1 -7
- package/lib/util/StringInterner.js +71 -0
- package/lib/util/createPayloadFor3DField.js +1 -1
- package/lib/util/deepFreeze.js +1 -1
- package/lib/util/generateID.js +1 -1
- package/lib/util/getAllRootVariables.js +29 -0
- package/lib/util/getFragmentIdentifier.js +16 -8
- package/lib/util/getOperation.js +3 -2
- package/lib/util/getPaginationMetadata.js +1 -1
- package/lib/util/getPaginationVariables.js +3 -4
- package/lib/util/getPendingOperationsForFragment.js +1 -1
- package/lib/util/getRefetchMetadata.js +1 -1
- package/lib/util/getRelayHandleKey.js +3 -3
- package/lib/util/getRequestIdentifier.js +3 -3
- package/lib/util/getValueAtPath.js +1 -1
- package/lib/util/isEmptyObject.js +1 -1
- package/lib/util/isPromise.js +1 -1
- package/lib/util/isScalarAndEqual.js +1 -1
- package/lib/util/recycleNodesInto.js +1 -1
- package/lib/util/registerEnvironmentWithDevTools.js +1 -1
- package/lib/util/reportMissingRequiredFields.js +1 -1
- package/lib/util/resolveImmediate.js +1 -1
- package/lib/util/stableCopy.js +1 -1
- package/lib/util/withDuration.js +1 -1
- package/multi-actor-environment/ActorIdentifier.js.flow +1 -1
- package/multi-actor-environment/ActorSpecificEnvironment.js.flow +28 -20
- package/multi-actor-environment/ActorUtils.js.flow +3 -3
- package/multi-actor-environment/MultiActorEnvironment.js.flow +46 -25
- package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +28 -12
- package/multi-actor-environment/index.js.flow +2 -3
- package/mutations/RelayDeclarativeMutationConfig.js.flow +33 -28
- package/mutations/RelayRecordProxy.js.flow +5 -6
- package/mutations/RelayRecordSourceMutator.js.flow +5 -7
- package/mutations/RelayRecordSourceProxy.js.flow +20 -11
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +16 -6
- package/mutations/applyOptimisticMutation.js.flow +14 -15
- package/mutations/commitLocalUpdate.js.flow +2 -2
- package/mutations/commitMutation.js.flow +36 -49
- package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +318 -0
- package/mutations/validateMutation.js.flow +20 -18
- package/network/ConvertToExecuteFunction.js.flow +3 -3
- package/network/RelayNetwork.js.flow +5 -6
- package/network/RelayNetworkTypes.js.flow +1 -1
- package/network/RelayObservable.js.flow +2 -4
- package/network/RelayQueryResponseCache.js.flow +4 -4
- package/network/wrapNetworkWithLogObserver.js.flow +9 -9
- package/package.json +2 -2
- package/query/GraphQLTag.js.flow +11 -11
- package/query/PreloadableQueryRegistry.js.flow +5 -3
- package/query/fetchQuery.js.flow +19 -19
- package/query/fetchQueryInternal.js.flow +7 -10
- package/query/fetchQuery_DEPRECATED.js.flow +7 -7
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +3 -3
- package/store/ClientID.js.flow +10 -3
- package/store/DataChecker.js.flow +21 -30
- package/store/OperationExecutor.js.flow +55 -63
- package/store/RelayConcreteVariables.js.flow +5 -11
- package/store/RelayExperimentalGraphResponseHandler.js.flow +121 -0
- package/store/RelayExperimentalGraphResponseTransform.js.flow +470 -0
- package/store/RelayModernEnvironment.js.flow +57 -28
- package/store/RelayModernFragmentSpecResolver.js.flow +18 -20
- package/store/RelayModernOperationDescriptor.js.flow +11 -12
- package/store/RelayModernRecord.js.flow +20 -13
- package/store/RelayModernSelector.js.flow +25 -15
- package/store/RelayModernStore.js.flow +22 -26
- package/store/RelayOperationTracker.js.flow +12 -18
- package/store/RelayOptimisticRecordSource.js.flow +3 -3
- package/store/RelayPublishQueue.js.flow +43 -24
- package/store/RelayReader.js.flow +181 -68
- package/store/RelayRecordSource.js.flow +3 -3
- package/store/RelayRecordState.js.flow +1 -1
- package/store/RelayReferenceMarker.js.flow +13 -16
- package/store/RelayResponseNormalizer.js.flow +44 -42
- package/store/RelayStoreReactFlightUtils.js.flow +4 -5
- package/store/RelayStoreSubscriptions.js.flow +10 -9
- package/store/RelayStoreTypes.js.flow +73 -30
- package/store/RelayStoreUtils.js.flow +9 -10
- package/store/ResolverCache.js.flow +17 -15
- package/store/ResolverFragments.js.flow +18 -25
- package/store/StoreInspector.js.flow +3 -3
- package/store/TypeID.js.flow +2 -2
- package/store/ViewerPattern.js.flow +3 -3
- package/store/cloneRelayHandleSourceField.js.flow +6 -7
- package/store/cloneRelayScalarHandleSourceField.js.flow +6 -7
- package/store/createFragmentSpecResolver.js.flow +4 -5
- package/store/createRelayContext.js.flow +3 -3
- package/store/defaultGetDataID.js.flow +1 -1
- package/store/defaultRequiredFieldLogger.js.flow +1 -1
- package/store/hasOverlappingIDs.js.flow +1 -1
- package/store/isRelayModernEnvironment.js.flow +1 -1
- package/store/normalizeRelayPayload.js.flow +7 -8
- package/store/readInlineData.js.flow +8 -9
- package/subscription/requestSubscription.js.flow +16 -25
- package/util/JSResourceTypes.flow.js.flow +1 -1
- package/util/NormalizationNode.js.flow +1 -1
- package/util/ReaderNode.js.flow +10 -1
- package/util/RelayConcreteNode.js.flow +4 -1
- package/util/RelayDefaultHandleKey.js.flow +1 -1
- package/util/RelayError.js.flow +1 -1
- package/util/RelayFeatureFlags.js.flow +15 -5
- package/util/RelayProfiler.js.flow +1 -1
- package/util/RelayReplaySubject.js.flow +3 -4
- package/util/RelayRuntimeTypes.js.flow +70 -3
- package/util/StringInterner.js.flow +69 -0
- package/util/createPayloadFor3DField.js.flow +4 -4
- package/util/deepFreeze.js.flow +1 -1
- package/util/generateID.js.flow +1 -1
- package/util/getAllRootVariables.js.flow +36 -0
- package/util/getFragmentIdentifier.js.flow +28 -16
- package/util/getOperation.js.flow +3 -3
- package/util/getPaginationMetadata.js.flow +6 -11
- package/util/getPaginationVariables.js.flow +6 -10
- package/util/getPendingOperationsForFragment.js.flow +3 -3
- package/util/getRefetchMetadata.js.flow +8 -12
- package/util/getRelayHandleKey.js.flow +2 -3
- package/util/getRequestIdentifier.js.flow +4 -4
- package/util/getValueAtPath.js.flow +1 -1
- package/util/isEmptyObject.js.flow +1 -1
- package/util/isPromise.js.flow +1 -1
- package/util/isScalarAndEqual.js.flow +1 -1
- package/util/recycleNodesInto.js.flow +1 -1
- package/util/registerEnvironmentWithDevTools.js.flow +1 -1
- package/util/reportMissingRequiredFields.js.flow +1 -1
- package/util/resolveImmediate.js.flow +2 -2
- package/util/stableCopy.js.flow +1 -1
- package/util/withDuration.js.flow +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -15,33 +15,33 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
15
15
|
|
|
16
16
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
17
17
|
|
|
18
|
-
var OperationExecutor = require('./OperationExecutor');
|
|
19
|
-
|
|
20
18
|
var RelayDefaultHandlerProvider = require('../handlers/RelayDefaultHandlerProvider');
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _require = require('../multi-actor-environment/ActorIdentifier'),
|
|
21
|
+
INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
|
|
22
|
+
assertInternalActorIndentifier = _require.assertInternalActorIndentifier;
|
|
23
23
|
|
|
24
24
|
var RelayObservable = require('../network/RelayObservable');
|
|
25
25
|
|
|
26
|
+
var wrapNetworkWithLogObserver = require('../network/wrapNetworkWithLogObserver');
|
|
27
|
+
|
|
26
28
|
var RelayOperationTracker = require('../store/RelayOperationTracker');
|
|
27
29
|
|
|
28
|
-
var
|
|
30
|
+
var registerEnvironmentWithDevTools = require('../util/registerEnvironmentWithDevTools');
|
|
29
31
|
|
|
30
|
-
var
|
|
32
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
31
33
|
|
|
32
34
|
var defaultGetDataID = require('./defaultGetDataID');
|
|
33
35
|
|
|
34
36
|
var defaultRequiredFieldLogger = require('./defaultRequiredFieldLogger');
|
|
35
37
|
|
|
36
|
-
var
|
|
38
|
+
var OperationExecutor = require('./OperationExecutor');
|
|
37
39
|
|
|
38
|
-
var
|
|
40
|
+
var RelayPublishQueue = require('./RelayPublishQueue');
|
|
39
41
|
|
|
40
|
-
var
|
|
42
|
+
var RelayRecordSource = require('./RelayRecordSource');
|
|
41
43
|
|
|
42
|
-
var
|
|
43
|
-
INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
|
|
44
|
-
assertInternalActorIndentifier = _require.assertInternalActorIndentifier;
|
|
44
|
+
var invariant = require('invariant');
|
|
45
45
|
|
|
46
46
|
var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
47
47
|
function RelayModernEnvironment(config) {
|
|
@@ -277,7 +277,7 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
277
277
|
}
|
|
278
278
|
/**
|
|
279
279
|
* Returns an Observable of GraphQLResponse resulting from executing the
|
|
280
|
-
* provided Query
|
|
280
|
+
* provided Query operation, each result of which is then
|
|
281
281
|
* normalized and committed to the publish queue.
|
|
282
282
|
*
|
|
283
283
|
* Note: Observables are lazy, so calling this method will do nothing until
|
|
@@ -288,8 +288,7 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
288
288
|
_proto.execute = function execute(_ref) {
|
|
289
289
|
var _this7 = this;
|
|
290
290
|
|
|
291
|
-
var operation = _ref.operation
|
|
292
|
-
updater = _ref.updater;
|
|
291
|
+
var operation = _ref.operation;
|
|
293
292
|
return this._execute({
|
|
294
293
|
createSource: function createSource() {
|
|
295
294
|
return _this7._network.execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null);
|
|
@@ -297,6 +296,31 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
297
296
|
isClientPayload: false,
|
|
298
297
|
operation: operation,
|
|
299
298
|
optimisticConfig: null,
|
|
299
|
+
updater: null
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Returns an Observable of GraphQLResponse resulting from executing the
|
|
304
|
+
* provided Subscription operation, each result of which is then
|
|
305
|
+
* normalized and committed to the publish queue.
|
|
306
|
+
*
|
|
307
|
+
* Note: Observables are lazy, so calling this method will do nothing until
|
|
308
|
+
* the result is subscribed to: environment.execute({...}).subscribe({...}).
|
|
309
|
+
*/
|
|
310
|
+
;
|
|
311
|
+
|
|
312
|
+
_proto.executeSubscription = function executeSubscription(_ref2) {
|
|
313
|
+
var _this8 = this;
|
|
314
|
+
|
|
315
|
+
var operation = _ref2.operation,
|
|
316
|
+
updater = _ref2.updater;
|
|
317
|
+
return this._execute({
|
|
318
|
+
createSource: function createSource() {
|
|
319
|
+
return _this8._network.execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null);
|
|
320
|
+
},
|
|
321
|
+
isClientPayload: false,
|
|
322
|
+
operation: operation,
|
|
323
|
+
optimisticConfig: null,
|
|
300
324
|
updater: updater
|
|
301
325
|
});
|
|
302
326
|
}
|
|
@@ -312,14 +336,14 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
312
336
|
*/
|
|
313
337
|
;
|
|
314
338
|
|
|
315
|
-
_proto.executeMutation = function executeMutation(
|
|
316
|
-
var
|
|
339
|
+
_proto.executeMutation = function executeMutation(_ref3) {
|
|
340
|
+
var _this9 = this;
|
|
317
341
|
|
|
318
|
-
var operation =
|
|
319
|
-
optimisticResponse =
|
|
320
|
-
optimisticUpdater =
|
|
321
|
-
updater =
|
|
322
|
-
uploadables =
|
|
342
|
+
var operation = _ref3.operation,
|
|
343
|
+
optimisticResponse = _ref3.optimisticResponse,
|
|
344
|
+
optimisticUpdater = _ref3.optimisticUpdater,
|
|
345
|
+
updater = _ref3.updater,
|
|
346
|
+
uploadables = _ref3.uploadables;
|
|
323
347
|
var optimisticConfig;
|
|
324
348
|
|
|
325
349
|
if (optimisticResponse || optimisticUpdater) {
|
|
@@ -332,7 +356,7 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
332
356
|
|
|
333
357
|
return this._execute({
|
|
334
358
|
createSource: function createSource() {
|
|
335
|
-
return
|
|
359
|
+
return _this9._network.execute(operation.request.node.params, operation.request.variables, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, operation.request.cacheConfig), {}, {
|
|
336
360
|
force: true
|
|
337
361
|
}), uploadables);
|
|
338
362
|
},
|
|
@@ -353,9 +377,9 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
353
377
|
*/
|
|
354
378
|
;
|
|
355
379
|
|
|
356
|
-
_proto.executeWithSource = function executeWithSource(
|
|
357
|
-
var operation =
|
|
358
|
-
source =
|
|
380
|
+
_proto.executeWithSource = function executeWithSource(_ref4) {
|
|
381
|
+
var operation = _ref4.operation,
|
|
382
|
+
source = _ref4.source;
|
|
359
383
|
return this._execute({
|
|
360
384
|
createSource: function createSource() {
|
|
361
385
|
return source;
|
|
@@ -373,35 +397,35 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
373
397
|
return "RelayModernEnvironment(".concat((_this$configName = this.configName) !== null && _this$configName !== void 0 ? _this$configName : '', ")");
|
|
374
398
|
};
|
|
375
399
|
|
|
376
|
-
_proto._execute = function _execute(
|
|
377
|
-
var
|
|
400
|
+
_proto._execute = function _execute(_ref5) {
|
|
401
|
+
var _this10 = this;
|
|
378
402
|
|
|
379
|
-
var createSource =
|
|
380
|
-
isClientPayload =
|
|
381
|
-
operation =
|
|
382
|
-
optimisticConfig =
|
|
383
|
-
updater =
|
|
403
|
+
var createSource = _ref5.createSource,
|
|
404
|
+
isClientPayload = _ref5.isClientPayload,
|
|
405
|
+
operation = _ref5.operation,
|
|
406
|
+
optimisticConfig = _ref5.optimisticConfig,
|
|
407
|
+
updater = _ref5.updater;
|
|
384
408
|
var publishQueue = this._publishQueue;
|
|
385
409
|
var store = this._store;
|
|
386
410
|
return RelayObservable.create(function (sink) {
|
|
387
411
|
var executor = OperationExecutor.execute({
|
|
388
412
|
actorIdentifier: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
|
|
389
|
-
getDataID:
|
|
413
|
+
getDataID: _this10._getDataID,
|
|
390
414
|
isClientPayload: isClientPayload,
|
|
391
|
-
log:
|
|
415
|
+
log: _this10.__log,
|
|
392
416
|
operation: operation,
|
|
393
|
-
operationExecutions:
|
|
394
|
-
operationLoader:
|
|
395
|
-
operationTracker:
|
|
417
|
+
operationExecutions: _this10._operationExecutions,
|
|
418
|
+
operationLoader: _this10._operationLoader,
|
|
419
|
+
operationTracker: _this10._operationTracker,
|
|
396
420
|
optimisticConfig: optimisticConfig,
|
|
397
421
|
getPublishQueue: function getPublishQueue(actorIdentifier) {
|
|
398
422
|
assertInternalActorIndentifier(actorIdentifier);
|
|
399
423
|
return publishQueue;
|
|
400
424
|
},
|
|
401
|
-
reactFlightPayloadDeserializer:
|
|
402
|
-
reactFlightServerErrorHandler:
|
|
403
|
-
scheduler:
|
|
404
|
-
shouldProcessClientComponents:
|
|
425
|
+
reactFlightPayloadDeserializer: _this10._reactFlightPayloadDeserializer,
|
|
426
|
+
reactFlightServerErrorHandler: _this10._reactFlightServerErrorHandler,
|
|
427
|
+
scheduler: _this10._scheduler,
|
|
428
|
+
shouldProcessClientComponents: _this10._shouldProcessClientComponents,
|
|
405
429
|
sink: sink,
|
|
406
430
|
// NOTE: Some product tests expect `Network.execute` to be called only
|
|
407
431
|
// when the Observable is executed.
|
|
@@ -410,7 +434,7 @@ var RelayModernEnvironment = /*#__PURE__*/function () {
|
|
|
410
434
|
assertInternalActorIndentifier(actorIdentifier);
|
|
411
435
|
return store;
|
|
412
436
|
},
|
|
413
|
-
treatMissingFieldsAsNull:
|
|
437
|
+
treatMissingFieldsAsNull: _this10._treatMissingFieldsAsNull,
|
|
414
438
|
updater: updater
|
|
415
439
|
});
|
|
416
440
|
return function () {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -16,21 +16,15 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
16
16
|
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
18
|
|
|
19
|
-
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
20
|
-
|
|
21
|
-
var areEqual = require("fbjs/lib/areEqual");
|
|
22
|
-
|
|
23
19
|
var getPendingOperationsForFragment = require('../util/getPendingOperationsForFragment');
|
|
24
20
|
|
|
25
|
-
var invariant = require('invariant');
|
|
26
|
-
|
|
27
21
|
var isScalarAndEqual = require('../util/isScalarAndEqual');
|
|
28
22
|
|
|
29
23
|
var recycleNodesInto = require('../util/recycleNodesInto');
|
|
30
24
|
|
|
31
|
-
var
|
|
25
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
32
26
|
|
|
33
|
-
var
|
|
27
|
+
var reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
|
|
34
28
|
|
|
35
29
|
var _require = require('./RelayModernOperationDescriptor'),
|
|
36
30
|
createRequestDescriptor = _require.createRequestDescriptor;
|
|
@@ -40,6 +34,12 @@ var _require2 = require('./RelayModernSelector'),
|
|
|
40
34
|
createReaderSelector = _require2.createReaderSelector,
|
|
41
35
|
getSelectorsFromObject = _require2.getSelectorsFromObject;
|
|
42
36
|
|
|
37
|
+
var areEqual = require("fbjs/lib/areEqual");
|
|
38
|
+
|
|
39
|
+
var invariant = require('invariant');
|
|
40
|
+
|
|
41
|
+
var warning = require("fbjs/lib/warning");
|
|
42
|
+
|
|
43
43
|
/**
|
|
44
44
|
* A utility for resolving and subscribing to the results of a fragment spec
|
|
45
45
|
* (key -> fragment mapping) given some "props" that determine the root ID
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -23,13 +23,14 @@ var _require2 = require('./RelayModernSelector'),
|
|
|
23
23
|
|
|
24
24
|
var _require3 = require('./RelayStoreUtils'),
|
|
25
25
|
ROOT_ID = _require3.ROOT_ID;
|
|
26
|
-
|
|
27
26
|
/**
|
|
28
27
|
* Creates an instance of the `OperationDescriptor` type defined in
|
|
29
28
|
* `RelayStoreTypes` given an operation and some variables. The input variables
|
|
30
29
|
* are filtered to exclude variables that do not match defined arguments on the
|
|
31
30
|
* operation, and default values are populated for null values.
|
|
32
31
|
*/
|
|
32
|
+
|
|
33
|
+
|
|
33
34
|
function createOperationDescriptor(request, variables, cacheConfig) {
|
|
34
35
|
var dataID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOT_ID;
|
|
35
36
|
var operation = request.operation;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -14,26 +14,25 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
14
14
|
|
|
15
15
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
16
16
|
|
|
17
|
-
var areEqual = require("fbjs/lib/areEqual");
|
|
18
|
-
|
|
19
17
|
var deepFreeze = require('../util/deepFreeze');
|
|
20
18
|
|
|
21
|
-
var invariant = require('invariant');
|
|
22
|
-
|
|
23
|
-
var warning = require("fbjs/lib/warning");
|
|
24
|
-
|
|
25
19
|
var _require = require('./ClientID'),
|
|
26
20
|
isClientID = _require.isClientID;
|
|
27
21
|
|
|
28
22
|
var _require2 = require('./RelayStoreUtils'),
|
|
29
23
|
ACTOR_IDENTIFIER_KEY = _require2.ACTOR_IDENTIFIER_KEY,
|
|
30
24
|
ID_KEY = _require2.ID_KEY,
|
|
25
|
+
INVALIDATED_AT_KEY = _require2.INVALIDATED_AT_KEY,
|
|
31
26
|
REF_KEY = _require2.REF_KEY,
|
|
32
27
|
REFS_KEY = _require2.REFS_KEY,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
ROOT_ID = _require2.ROOT_ID;
|
|
28
|
+
ROOT_ID = _require2.ROOT_ID,
|
|
29
|
+
TYPENAME_KEY = _require2.TYPENAME_KEY;
|
|
36
30
|
|
|
31
|
+
var areEqual = require("fbjs/lib/areEqual");
|
|
32
|
+
|
|
33
|
+
var invariant = require('invariant');
|
|
34
|
+
|
|
35
|
+
var warning = require("fbjs/lib/warning");
|
|
37
36
|
/**
|
|
38
37
|
* @public
|
|
39
38
|
*
|
|
@@ -83,6 +82,8 @@ var _require2 = require('./RelayStoreUtils'),
|
|
|
83
82
|
*
|
|
84
83
|
* Clone a record.
|
|
85
84
|
*/
|
|
85
|
+
|
|
86
|
+
|
|
86
87
|
function clone(record) {
|
|
87
88
|
return (0, _objectSpread2["default"])({}, record);
|
|
88
89
|
}
|
|
@@ -172,7 +173,7 @@ function getLinkedRecordID(record, storageKey) {
|
|
|
172
173
|
return link;
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
!(typeof link === 'object' && link && typeof link[REF_KEY] === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, ' + 'was `%s
|
|
176
|
+
!(typeof link === 'object' && link && typeof link[REF_KEY] === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, ' + 'was `%s`.%s', record[ID_KEY], storageKey, JSON.stringify(link), typeof link === 'object' && link[REFS_KEY] !== undefined ? ' It appears to be a plural linked record: did you mean to call ' + 'getLinkedRecords() instead of getLinkedRecord()?' : '') : invariant(false) : void 0;
|
|
176
177
|
return link[REF_KEY];
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
@@ -190,7 +191,7 @@ function getLinkedRecordIDs(record, storageKey) {
|
|
|
190
191
|
return links;
|
|
191
192
|
}
|
|
192
193
|
|
|
193
|
-
!(typeof links === 'object' && Array.isArray(links[REFS_KEY])) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array ' + 'of linked IDs, got `%s
|
|
194
|
+
!(typeof links === 'object' && Array.isArray(links[REFS_KEY])) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array ' + 'of linked IDs, got `%s`.%s', record[ID_KEY], storageKey, JSON.stringify(links), typeof links === 'object' && links[REF_KEY] !== undefined ? ' It appears to be a singular linked record: did you mean to call ' + 'getLinkedRecord() instead of getLinkedRecords()?' : '') : invariant(false) : void 0; // assume items of the array are ids
|
|
194
195
|
|
|
195
196
|
return links[REFS_KEY];
|
|
196
197
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,21 +10,21 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
var areEqual = require("fbjs/lib/areEqual");
|
|
14
|
-
|
|
15
|
-
var invariant = require('invariant');
|
|
16
|
-
|
|
17
|
-
var warning = require("fbjs/lib/warning");
|
|
18
|
-
|
|
19
13
|
var _require = require('./RelayConcreteVariables'),
|
|
20
14
|
getFragmentVariables = _require.getFragmentVariables;
|
|
21
15
|
|
|
22
16
|
var _require2 = require('./RelayStoreUtils'),
|
|
17
|
+
CLIENT_EDGE_TRAVERSAL_PATH = _require2.CLIENT_EDGE_TRAVERSAL_PATH,
|
|
23
18
|
FRAGMENT_OWNER_KEY = _require2.FRAGMENT_OWNER_KEY,
|
|
24
19
|
FRAGMENTS_KEY = _require2.FRAGMENTS_KEY,
|
|
25
20
|
ID_KEY = _require2.ID_KEY,
|
|
26
21
|
IS_WITHIN_UNMATCHED_TYPE_REFINEMENT = _require2.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT;
|
|
27
22
|
|
|
23
|
+
var areEqual = require("fbjs/lib/areEqual");
|
|
24
|
+
|
|
25
|
+
var invariant = require('invariant');
|
|
26
|
+
|
|
27
|
+
var warning = require("fbjs/lib/warning");
|
|
28
28
|
/**
|
|
29
29
|
* @public
|
|
30
30
|
*
|
|
@@ -54,18 +54,22 @@ var _require2 = require('./RelayStoreUtils'),
|
|
|
54
54
|
* const childData = environment.lookup(childSelector).data;
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
+
|
|
58
|
+
|
|
57
59
|
function getSingularSelector(fragment, item) {
|
|
58
60
|
!(typeof item === 'object' && item !== null && !Array.isArray(item)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got ' + '`%s`.', fragment.name, JSON.stringify(item)) : invariant(false) : void 0;
|
|
59
61
|
var dataID = item[ID_KEY];
|
|
60
62
|
var fragments = item[FRAGMENTS_KEY];
|
|
61
63
|
var mixedOwner = item[FRAGMENT_OWNER_KEY];
|
|
62
64
|
var isWithinUnmatchedTypeRefinement = item[IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] === true;
|
|
65
|
+
var mixedClientEdgeTraversalPath = item[CLIENT_EDGE_TRAVERSAL_PATH];
|
|
63
66
|
|
|
64
|
-
if (typeof dataID === 'string' && typeof fragments === 'object' && fragments !== null && typeof fragments[fragment.name] === 'object' && fragments[fragment.name] !== null && typeof mixedOwner === 'object' && mixedOwner !== null) {
|
|
67
|
+
if (typeof dataID === 'string' && typeof fragments === 'object' && fragments !== null && typeof fragments[fragment.name] === 'object' && fragments[fragment.name] !== null && typeof mixedOwner === 'object' && mixedOwner !== null && (mixedClientEdgeTraversalPath == null || Array.isArray(mixedClientEdgeTraversalPath))) {
|
|
65
68
|
var owner = mixedOwner;
|
|
69
|
+
var clientEdgeTraversalPath = mixedClientEdgeTraversalPath;
|
|
66
70
|
var argumentVariables = fragments[fragment.name];
|
|
67
71
|
var fragmentVariables = getFragmentVariables(fragment, owner.variables, argumentVariables);
|
|
68
|
-
return createReaderSelector(fragment, dataID, fragmentVariables, owner, isWithinUnmatchedTypeRefinement);
|
|
72
|
+
return createReaderSelector(fragment, dataID, fragmentVariables, owner, isWithinUnmatchedTypeRefinement, clientEdgeTraversalPath);
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -295,10 +299,12 @@ function areEqualSelectors(thisSelector, thatSelector) {
|
|
|
295
299
|
|
|
296
300
|
function createReaderSelector(fragment, dataID, variables, request) {
|
|
297
301
|
var isWithinUnmatchedTypeRefinement = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
302
|
+
var clientEdgeTraversalPath = arguments.length > 5 ? arguments[5] : undefined;
|
|
298
303
|
return {
|
|
299
304
|
kind: 'SingularReaderSelector',
|
|
300
305
|
dataID: dataID,
|
|
301
306
|
isWithinUnmatchedTypeRefinement: isWithinUnmatchedTypeRefinement,
|
|
307
|
+
clientEdgeTraversalPath: clientEdgeTraversalPath !== null && clientEdgeTraversalPath !== void 0 ? clientEdgeTraversalPath : null,
|
|
302
308
|
node: fragment,
|
|
303
309
|
variables: variables,
|
|
304
310
|
owner: request
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -16,10 +16,20 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _require = require('../multi-actor-environment/ActorIdentifier'),
|
|
20
|
+
INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
|
|
21
|
+
assertInternalActorIndentifier = _require.assertInternalActorIndentifier;
|
|
22
|
+
|
|
23
|
+
var deepFreeze = require('../util/deepFreeze');
|
|
20
24
|
|
|
21
25
|
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
22
26
|
|
|
27
|
+
var resolveImmediate = require('../util/resolveImmediate');
|
|
28
|
+
|
|
29
|
+
var DataChecker = require('./DataChecker');
|
|
30
|
+
|
|
31
|
+
var defaultGetDataID = require('./defaultGetDataID');
|
|
32
|
+
|
|
23
33
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
24
34
|
|
|
25
35
|
var RelayOptimisticRecordSource = require('./RelayOptimisticRecordSource');
|
|
@@ -34,18 +44,6 @@ var RelayStoreSubscriptions = require('./RelayStoreSubscriptions');
|
|
|
34
44
|
|
|
35
45
|
var RelayStoreUtils = require('./RelayStoreUtils');
|
|
36
46
|
|
|
37
|
-
var deepFreeze = require('../util/deepFreeze');
|
|
38
|
-
|
|
39
|
-
var defaultGetDataID = require('./defaultGetDataID');
|
|
40
|
-
|
|
41
|
-
var invariant = require('invariant');
|
|
42
|
-
|
|
43
|
-
var resolveImmediate = require('../util/resolveImmediate');
|
|
44
|
-
|
|
45
|
-
var _require = require('../multi-actor-environment/ActorIdentifier'),
|
|
46
|
-
INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
|
|
47
|
-
assertInternalActorIndentifier = _require.assertInternalActorIndentifier;
|
|
48
|
-
|
|
49
47
|
var _require2 = require('./RelayStoreUtils'),
|
|
50
48
|
ROOT_ID = _require2.ROOT_ID,
|
|
51
49
|
ROOT_TYPE = _require2.ROOT_TYPE;
|
|
@@ -53,6 +51,8 @@ var _require2 = require('./RelayStoreUtils'),
|
|
|
53
51
|
var _require3 = require('./ResolverCache'),
|
|
54
52
|
RecordResolverCache = _require3.RecordResolverCache;
|
|
55
53
|
|
|
54
|
+
var invariant = require('invariant');
|
|
55
|
+
|
|
56
56
|
var DEFAULT_RELEASE_BUFFER_SIZE = 10;
|
|
57
57
|
/**
|
|
58
58
|
* @public
|
|
@@ -680,8 +680,7 @@ function updateTargetFromSource(target, source, currentWriteEpoch, idsMarkedForI
|
|
|
680
680
|
}
|
|
681
681
|
|
|
682
682
|
RelayModernRecord.setValue(nextRecord, RelayStoreUtils.INVALIDATED_AT_KEY, currentWriteEpoch);
|
|
683
|
-
invalidatedRecordIDs.add(dataID);
|
|
684
|
-
|
|
683
|
+
invalidatedRecordIDs.add(dataID);
|
|
685
684
|
target.set(dataID, nextRecord);
|
|
686
685
|
});
|
|
687
686
|
} // Update the target based on the changes present in source
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
|
|
13
13
|
var _global$ErrorUtils$ap, _global, _global$ErrorUtils;
|
|
14
14
|
|
|
15
|
-
var RelayReader = require('./RelayReader');
|
|
16
|
-
|
|
17
|
-
var RelayRecordSource = require('./RelayRecordSource');
|
|
18
|
-
|
|
19
15
|
var RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');
|
|
20
16
|
|
|
21
17
|
var RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');
|
|
22
18
|
|
|
23
19
|
var RelayRecordSourceSelectorProxy = require('../mutations/RelayRecordSourceSelectorProxy');
|
|
24
20
|
|
|
21
|
+
var RelayReader = require('./RelayReader');
|
|
22
|
+
|
|
23
|
+
var RelayRecordSource = require('./RelayRecordSource');
|
|
24
|
+
|
|
25
25
|
var invariant = require('invariant');
|
|
26
26
|
|
|
27
27
|
var warning = require("fbjs/lib/warning");
|
|
@@ -45,9 +45,15 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
45
45
|
// True if the next `run()` should apply the backup and rerun all optimistic
|
|
46
46
|
// updates performing a rebase.
|
|
47
47
|
// Payloads to apply or Sources to publish to the store with the next `run()`.
|
|
48
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
48
49
|
// Optimistic updaters to add with the next `run()`.
|
|
50
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
49
51
|
// Optimistic updaters that are already added and might be rerun in order to
|
|
50
52
|
// rebase them.
|
|
53
|
+
// $FlowFixMe[unclear-type] See explanation below.
|
|
54
|
+
// For _pendingOptimisticUpdates, _appliedOptimisticUpdates, and _pendingData,
|
|
55
|
+
// we want to parametrize by "any" since the type is effectively
|
|
56
|
+
// "the union of all T's that PublishQueue's methods were called with".
|
|
51
57
|
// Garbage collection hold, should rerun gc on dispose
|
|
52
58
|
function RelayPublishQueue(store, handlerProvider, getDataID) {
|
|
53
59
|
this._hasStoreSnapshot = false;
|
|
@@ -301,7 +307,7 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
301
307
|
|
|
302
308
|
var sink = RelayRecordSource.create();
|
|
303
309
|
var mutator = new RelayRecordSourceMutator(this._store.getSource(), sink);
|
|
304
|
-
var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider);
|
|
310
|
+
var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider); // $FlowFixMe[unclear-type] see explanation above.
|
|
305
311
|
|
|
306
312
|
var processUpdate = function processUpdate(optimisticUpdate) {
|
|
307
313
|
if (optimisticUpdate.storeUpdater) {
|