relay-runtime 12.0.0 → 13.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/handlers/RelayDefaultHandlerProvider.js.flow +2 -2
- package/handlers/connection/ConnectionHandler.js.flow +8 -17
- package/handlers/connection/MutationHandlers.js.flow +7 -11
- package/index.js +1 -1
- package/index.js.flow +40 -33
- package/lib/handlers/connection/ConnectionHandler.js +12 -18
- package/lib/handlers/connection/MutationHandlers.js +3 -6
- package/lib/index.js +45 -45
- package/lib/multi-actor-environment/ActorSpecificEnvironment.js +8 -4
- package/lib/multi-actor-environment/MultiActorEnvironment.js +35 -22
- package/lib/multi-actor-environment/index.js +2 -2
- package/lib/mutations/RelayDeclarativeMutationConfig.js +4 -1
- package/lib/mutations/RelayRecordProxy.js +3 -2
- package/lib/mutations/RelayRecordSourceMutator.js +3 -2
- package/lib/mutations/RelayRecordSourceProxy.js +12 -4
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +12 -4
- package/lib/mutations/applyOptimisticMutation.js +6 -6
- package/lib/mutations/commitMutation.js +15 -14
- package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +238 -0
- package/lib/mutations/validateMutation.js +6 -6
- package/lib/network/ConvertToExecuteFunction.js +2 -1
- package/lib/network/RelayNetwork.js +3 -2
- package/lib/network/RelayObservable.js +1 -3
- package/lib/network/RelayQueryResponseCache.js +2 -2
- package/lib/network/wrapNetworkWithLogObserver.js +2 -1
- package/lib/query/GraphQLTag.js +2 -1
- package/lib/query/fetchQuery.js +6 -5
- package/lib/query/fetchQuery_DEPRECATED.js +2 -1
- package/lib/store/ClientID.js +7 -1
- package/lib/store/DataChecker.js +16 -17
- package/lib/store/OperationExecutor.js +13 -13
- package/lib/store/RelayConcreteVariables.js +6 -9
- package/lib/store/RelayModernEnvironment.js +66 -42
- package/lib/store/RelayModernFragmentSpecResolver.js +8 -8
- package/lib/store/RelayModernOperationDescriptor.js +2 -1
- package/lib/store/RelayModernRecord.js +12 -11
- package/lib/store/RelayModernSelector.js +14 -8
- package/lib/store/RelayModernStore.js +14 -15
- package/lib/store/RelayPublishQueue.js +11 -5
- package/lib/store/RelayReader.js +130 -37
- package/lib/store/RelayReferenceMarker.js +10 -11
- package/lib/store/RelayResponseNormalizer.js +25 -22
- package/lib/store/RelayStoreReactFlightUtils.js +3 -3
- package/lib/store/RelayStoreSubscriptions.js +6 -4
- package/lib/store/RelayStoreUtils.js +5 -5
- package/lib/store/ResolverCache.js +6 -6
- package/lib/store/ResolverFragments.js +9 -5
- package/lib/store/cloneRelayHandleSourceField.js +5 -4
- package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
- package/lib/store/createRelayContext.js +3 -1
- package/lib/store/readInlineData.js +6 -2
- package/lib/subscription/requestSubscription.js +5 -5
- package/lib/util/RelayConcreteNode.js +1 -0
- package/lib/util/RelayFeatureFlags.js +7 -1
- package/lib/util/RelayRuntimeTypes.js +0 -6
- package/lib/util/StringInterner.js +71 -0
- package/lib/util/getFragmentIdentifier.js +15 -7
- package/lib/util/getOperation.js +2 -1
- package/lib/util/getPaginationVariables.js +2 -3
- package/lib/util/getRelayHandleKey.js +2 -2
- package/lib/util/getRequestIdentifier.js +2 -2
- package/multi-actor-environment/ActorSpecificEnvironment.js.flow +27 -19
- package/multi-actor-environment/ActorUtils.js.flow +2 -2
- package/multi-actor-environment/MultiActorEnvironment.js.flow +45 -24
- package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +27 -11
- package/multi-actor-environment/index.js.flow +1 -2
- package/mutations/RelayDeclarativeMutationConfig.js.flow +32 -26
- package/mutations/RelayRecordProxy.js.flow +4 -5
- package/mutations/RelayRecordSourceMutator.js.flow +4 -6
- package/mutations/RelayRecordSourceProxy.js.flow +19 -10
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +15 -5
- package/mutations/applyOptimisticMutation.js.flow +13 -14
- package/mutations/commitLocalUpdate.js.flow +1 -1
- package/mutations/commitMutation.js.flow +35 -48
- package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +309 -0
- package/mutations/validateMutation.js.flow +19 -17
- package/network/ConvertToExecuteFunction.js.flow +2 -2
- package/network/RelayNetwork.js.flow +4 -5
- package/network/RelayObservable.js.flow +1 -3
- package/network/RelayQueryResponseCache.js.flow +3 -3
- package/network/wrapNetworkWithLogObserver.js.flow +8 -7
- package/package.json +1 -1
- package/query/GraphQLTag.js.flow +9 -9
- package/query/PreloadableQueryRegistry.js.flow +2 -1
- package/query/fetchQuery.js.flow +11 -13
- package/query/fetchQueryInternal.js.flow +6 -9
- package/query/fetchQuery_DEPRECATED.js.flow +6 -6
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/ClientID.js.flow +9 -2
- package/store/DataChecker.js.flow +20 -29
- package/store/OperationExecutor.js.flow +54 -62
- package/store/RelayConcreteVariables.js.flow +4 -10
- package/store/RelayModernEnvironment.js.flow +56 -27
- package/store/RelayModernFragmentSpecResolver.js.flow +17 -19
- package/store/RelayModernOperationDescriptor.js.flow +10 -11
- package/store/RelayModernRecord.js.flow +19 -12
- package/store/RelayModernSelector.js.flow +24 -14
- package/store/RelayModernStore.js.flow +21 -24
- package/store/RelayOperationTracker.js.flow +11 -17
- package/store/RelayOptimisticRecordSource.js.flow +2 -2
- package/store/RelayPublishQueue.js.flow +42 -23
- package/store/RelayReader.js.flow +180 -60
- package/store/RelayRecordSource.js.flow +2 -2
- package/store/RelayReferenceMarker.js.flow +12 -15
- package/store/RelayResponseNormalizer.js.flow +43 -41
- package/store/RelayStoreReactFlightUtils.js.flow +3 -4
- package/store/RelayStoreSubscriptions.js.flow +9 -8
- package/store/RelayStoreTypes.js.flow +72 -29
- package/store/RelayStoreUtils.js.flow +8 -9
- package/store/ResolverCache.js.flow +16 -14
- package/store/ResolverFragments.js.flow +15 -22
- package/store/StoreInspector.js.flow +2 -2
- package/store/TypeID.js.flow +1 -1
- package/store/ViewerPattern.js.flow +2 -2
- package/store/cloneRelayHandleSourceField.js.flow +5 -6
- package/store/cloneRelayScalarHandleSourceField.js.flow +5 -6
- package/store/createFragmentSpecResolver.js.flow +3 -4
- package/store/createRelayContext.js.flow +2 -2
- package/store/normalizeRelayPayload.js.flow +6 -7
- package/store/readInlineData.js.flow +7 -8
- package/subscription/requestSubscription.js.flow +16 -24
- package/util/ReaderNode.js.flow +9 -0
- package/util/RelayConcreteNode.js.flow +1 -0
- package/util/RelayFeatureFlags.js.flow +14 -2
- package/util/RelayReplaySubject.js.flow +2 -3
- package/util/RelayRuntimeTypes.js.flow +69 -2
- package/util/StringInterner.js.flow +69 -0
- package/util/createPayloadFor3DField.js.flow +3 -3
- package/util/getFragmentIdentifier.js.flow +27 -15
- package/util/getOperation.js.flow +2 -2
- package/util/getPaginationMetadata.js.flow +5 -7
- package/util/getPaginationVariables.js.flow +5 -9
- package/util/getPendingOperationsForFragment.js.flow +2 -2
- package/util/getRefetchMetadata.js.flow +6 -7
- package/util/getRelayHandleKey.js.flow +1 -2
- package/util/getRequestIdentifier.js.flow +3 -3
- package/util/resolveImmediate.js.flow +1 -1
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
var generateID = require('../util/generateID');
|
|
14
|
-
|
|
15
14
|
/**
|
|
16
15
|
* Wraps the network with logging to ensure that network requests are
|
|
17
16
|
* always logged. Relying on each network callsite to be wrapped is
|
|
@@ -20,6 +19,8 @@ var generateID = require('../util/generateID');
|
|
|
20
19
|
* devtools will mutate the `env.__log` method, and the devtools rely
|
|
21
20
|
* on it to receive network events.
|
|
22
21
|
*/
|
|
22
|
+
|
|
23
|
+
|
|
23
24
|
function wrapNetworkWithLogObserver(env, network) {
|
|
24
25
|
return {
|
|
25
26
|
execute: function execute(params, variables, cacheConfig, uploadables) {
|
package/lib/query/GraphQLTag.js
CHANGED
|
@@ -14,7 +14,8 @@ var RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
|
14
14
|
|
|
15
15
|
var invariant = require('invariant');
|
|
16
16
|
|
|
17
|
-
var warning = require("fbjs/lib/warning");
|
|
17
|
+
var warning = require("fbjs/lib/warning"); // The type of a graphql`...` tagged template expression.
|
|
18
|
+
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Runtime function to correspond to the `graphql` tagged template function.
|
package/lib/query/fetchQuery.js
CHANGED
|
@@ -17,18 +17,17 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
17
17
|
|
|
18
18
|
var RelayObservable = require('../network/RelayObservable');
|
|
19
19
|
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var invariant = require('invariant');
|
|
20
|
+
var _require = require('../store/RelayModernOperationDescriptor'),
|
|
21
|
+
createOperationDescriptor = _require.createOperationDescriptor;
|
|
23
22
|
|
|
24
23
|
var reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
|
|
25
24
|
|
|
26
|
-
var
|
|
27
|
-
createOperationDescriptor = _require.createOperationDescriptor;
|
|
25
|
+
var fetchQueryInternal = require('./fetchQueryInternal');
|
|
28
26
|
|
|
29
27
|
var _require2 = require('./GraphQLTag'),
|
|
30
28
|
getRequest = _require2.getRequest;
|
|
31
29
|
|
|
30
|
+
var invariant = require('invariant');
|
|
32
31
|
/**
|
|
33
32
|
* Fetches the given query and variables on the provided environment,
|
|
34
33
|
* and de-dupes identical in-flight requests.
|
|
@@ -106,6 +105,8 @@ var _require2 = require('./GraphQLTag'),
|
|
|
106
105
|
* ```
|
|
107
106
|
* NOTE: When using .toPromise(), the request cannot be cancelled.
|
|
108
107
|
*/
|
|
108
|
+
|
|
109
|
+
|
|
109
110
|
function fetchQuery(environment, query, variables, options) {
|
|
110
111
|
var _options$fetchPolicy;
|
|
111
112
|
|
|
@@ -15,12 +15,13 @@ var _require = require('../store/RelayModernOperationDescriptor'),
|
|
|
15
15
|
|
|
16
16
|
var _require2 = require('./GraphQLTag'),
|
|
17
17
|
getRequest = _require2.getRequest;
|
|
18
|
-
|
|
19
18
|
/**
|
|
20
19
|
* A helper function to fetch the results of a query. Note that results for
|
|
21
20
|
* fragment spreads are masked: fields must be explicitly listed in the query in
|
|
22
21
|
* order to be accessible in the result object.
|
|
23
22
|
*/
|
|
23
|
+
|
|
24
|
+
|
|
24
25
|
function fetchQuery_DEPRECATED(environment, taggedNode, variables, cacheConfig) {
|
|
25
26
|
var query = getRequest(taggedNode);
|
|
26
27
|
|
package/lib/store/ClientID.js
CHANGED
|
@@ -10,10 +10,16 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
14
|
+
|
|
15
|
+
var _require = require('../util/StringInterner'),
|
|
16
|
+
intern = _require.intern;
|
|
17
|
+
|
|
13
18
|
var PREFIX = 'client:';
|
|
14
19
|
|
|
15
20
|
function generateClientID(id, storageKey, index) {
|
|
16
|
-
var
|
|
21
|
+
var internedId = RelayFeatureFlags.STRING_INTERN_LEVEL <= 0 ? id : intern(id, RelayFeatureFlags.MAX_DATA_ID_LENGTH);
|
|
22
|
+
var key = internedId + ':' + storageKey;
|
|
17
23
|
|
|
18
24
|
if (index != null) {
|
|
19
25
|
key += ':' + index;
|
package/lib/store/DataChecker.js
CHANGED
|
@@ -15,41 +15,41 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
15
15
|
|
|
16
16
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
17
17
|
|
|
18
|
-
var RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
19
|
-
|
|
20
|
-
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
21
|
-
|
|
22
|
-
var RelayModernRecord = require('./RelayModernRecord');
|
|
23
|
-
|
|
24
18
|
var RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');
|
|
25
19
|
|
|
26
20
|
var RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');
|
|
27
21
|
|
|
28
|
-
var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
|
|
29
|
-
|
|
30
|
-
var RelayStoreUtils = require('./RelayStoreUtils');
|
|
31
|
-
|
|
32
|
-
var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
|
|
33
|
-
|
|
34
|
-
var cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');
|
|
35
|
-
|
|
36
22
|
var getOperation = require('../util/getOperation');
|
|
37
23
|
|
|
38
|
-
var
|
|
24
|
+
var RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
25
|
+
|
|
26
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
39
27
|
|
|
40
28
|
var _require = require('./ClientID'),
|
|
41
29
|
isClientID = _require.isClientID;
|
|
42
30
|
|
|
31
|
+
var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
|
|
32
|
+
|
|
33
|
+
var cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');
|
|
34
|
+
|
|
43
35
|
var _require2 = require('./RelayConcreteVariables'),
|
|
44
36
|
getLocalVariables = _require2.getLocalVariables;
|
|
45
37
|
|
|
38
|
+
var RelayModernRecord = require('./RelayModernRecord');
|
|
39
|
+
|
|
46
40
|
var _require3 = require('./RelayRecordState'),
|
|
47
41
|
EXISTENT = _require3.EXISTENT,
|
|
48
42
|
UNKNOWN = _require3.UNKNOWN;
|
|
49
43
|
|
|
44
|
+
var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
|
|
45
|
+
|
|
46
|
+
var RelayStoreUtils = require('./RelayStoreUtils');
|
|
47
|
+
|
|
50
48
|
var _require4 = require('./TypeID'),
|
|
51
49
|
generateTypeID = _require4.generateTypeID;
|
|
52
50
|
|
|
51
|
+
var invariant = require('invariant');
|
|
52
|
+
|
|
53
53
|
var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
|
|
54
54
|
CONDITION = RelayConcreteNode.CONDITION,
|
|
55
55
|
CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
|
|
@@ -145,8 +145,7 @@ var DataChecker = /*#__PURE__*/function () {
|
|
|
145
145
|
};
|
|
146
146
|
|
|
147
147
|
_proto._getVariableValue = function _getVariableValue(name) {
|
|
148
|
-
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
149
|
-
|
|
148
|
+
!this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0;
|
|
150
149
|
return this._variables[name];
|
|
151
150
|
};
|
|
152
151
|
|
|
@@ -21,27 +21,17 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
21
21
|
|
|
22
22
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
23
23
|
|
|
24
|
-
var RelayError = require('../util/RelayError');
|
|
25
|
-
|
|
26
|
-
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
27
|
-
|
|
28
|
-
var RelayModernRecord = require('./RelayModernRecord');
|
|
29
|
-
|
|
30
24
|
var RelayObservable = require('../network/RelayObservable');
|
|
31
25
|
|
|
32
|
-
var RelayRecordSource = require('./RelayRecordSource');
|
|
33
|
-
|
|
34
|
-
var RelayResponseNormalizer = require('./RelayResponseNormalizer');
|
|
35
|
-
|
|
36
26
|
var generateID = require('../util/generateID');
|
|
37
27
|
|
|
38
28
|
var getOperation = require('../util/getOperation');
|
|
39
29
|
|
|
40
|
-
var
|
|
30
|
+
var RelayError = require('../util/RelayError');
|
|
41
31
|
|
|
42
|
-
var
|
|
32
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
43
33
|
|
|
44
|
-
var
|
|
34
|
+
var stableCopy = require('../util/stableCopy');
|
|
45
35
|
|
|
46
36
|
var withDuration = require('../util/withDuration');
|
|
47
37
|
|
|
@@ -52,15 +42,25 @@ var _require = require('./ClientID'),
|
|
|
52
42
|
var _require2 = require('./RelayConcreteVariables'),
|
|
53
43
|
getLocalVariables = _require2.getLocalVariables;
|
|
54
44
|
|
|
45
|
+
var RelayModernRecord = require('./RelayModernRecord');
|
|
46
|
+
|
|
55
47
|
var _require3 = require('./RelayModernSelector'),
|
|
56
48
|
createNormalizationSelector = _require3.createNormalizationSelector,
|
|
57
49
|
createReaderSelector = _require3.createReaderSelector;
|
|
58
50
|
|
|
51
|
+
var RelayRecordSource = require('./RelayRecordSource');
|
|
52
|
+
|
|
53
|
+
var RelayResponseNormalizer = require('./RelayResponseNormalizer');
|
|
54
|
+
|
|
59
55
|
var _require4 = require('./RelayStoreUtils'),
|
|
60
56
|
ROOT_TYPE = _require4.ROOT_TYPE,
|
|
61
57
|
TYPENAME_KEY = _require4.TYPENAME_KEY,
|
|
62
58
|
getStorageKey = _require4.getStorageKey;
|
|
63
59
|
|
|
60
|
+
var invariant = require('invariant');
|
|
61
|
+
|
|
62
|
+
var warning = require("fbjs/lib/warning");
|
|
63
|
+
|
|
64
64
|
function execute(config) {
|
|
65
65
|
return new Executor(config);
|
|
66
66
|
}
|
|
@@ -14,11 +14,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
14
14
|
|
|
15
15
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
16
16
|
|
|
17
|
-
var invariant = require('invariant');
|
|
18
|
-
|
|
19
17
|
var _require = require('./RelayStoreUtils'),
|
|
20
18
|
getArgumentValues = _require.getArgumentValues;
|
|
21
19
|
|
|
20
|
+
var invariant = require('invariant');
|
|
22
21
|
/**
|
|
23
22
|
* Determines the variables that are in scope for a fragment given the variables
|
|
24
23
|
* in scope at the root query as well as any arguments applied at the fragment
|
|
@@ -26,13 +25,14 @@ var _require = require('./RelayStoreUtils'),
|
|
|
26
25
|
*
|
|
27
26
|
* Note that this is analagous to determining function arguments given a function call.
|
|
28
27
|
*/
|
|
28
|
+
|
|
29
|
+
|
|
29
30
|
function getFragmentVariables(fragment, rootVariables, argumentVariables) {
|
|
30
31
|
var variables;
|
|
31
32
|
fragment.argumentDefinitions.forEach(function (definition) {
|
|
32
33
|
if (argumentVariables.hasOwnProperty(definition.name)) {
|
|
33
34
|
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
35
|
+
}
|
|
36
36
|
|
|
37
37
|
variables = variables || (0, _objectSpread2["default"])({}, argumentVariables);
|
|
38
38
|
|
|
@@ -52,12 +52,9 @@ function getFragmentVariables(fragment, rootVariables, argumentVariables) {
|
|
|
52
52
|
* RelayStoreUtils.getStableVariableValue() that variable keys are all
|
|
53
53
|
* present.
|
|
54
54
|
*/
|
|
55
|
-
// $FlowFixMe[incompatible-use]
|
|
56
55
|
variables[definition.name] = undefined;
|
|
57
56
|
break;
|
|
58
|
-
}
|
|
59
|
-
// $FlowFixMe[cannot-write]
|
|
60
|
-
|
|
57
|
+
}
|
|
61
58
|
|
|
62
59
|
variables[definition.name] = rootVariables[definition.name];
|
|
63
60
|
break;
|
|
@@ -80,7 +77,7 @@ function getFragmentVariables(fragment, rootVariables, argumentVariables) {
|
|
|
80
77
|
function getOperationVariables(operation, variables) {
|
|
81
78
|
var operationVariables = {};
|
|
82
79
|
operation.argumentDefinitions.forEach(function (def) {
|
|
83
|
-
var value = def.defaultValue;
|
|
80
|
+
var value = def.defaultValue;
|
|
84
81
|
|
|
85
82
|
if (variables[def.name] != null) {
|
|
86
83
|
value = variables[def.name];
|
|
@@ -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 () {
|
|
@@ -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
|
|
@@ -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;
|
|
@@ -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
|
}
|
|
@@ -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
|