relay-runtime 11.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 -10
- package/handlers/connection/MutationHandlers.js.flow +31 -7
- package/index.js +1 -1
- package/index.js.flow +60 -36
- package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
- package/lib/handlers/connection/ConnectionHandler.js +8 -8
- package/lib/handlers/connection/MutationHandlers.js +61 -5
- package/lib/index.js +58 -43
- package/lib/multi-actor-environment/ActorIdentifier.js +33 -0
- package/lib/multi-actor-environment/ActorSpecificEnvironment.js +152 -0
- package/lib/multi-actor-environment/ActorUtils.js +27 -0
- package/lib/multi-actor-environment/MultiActorEnvironment.js +419 -0
- package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +11 -0
- package/lib/multi-actor-environment/index.js +21 -0
- 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 +18 -5
- package/lib/mutations/applyOptimisticMutation.js +6 -6
- package/lib/mutations/commitMutation.js +14 -10
- package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +238 -0
- package/lib/mutations/validateMutation.js +12 -5
- package/lib/network/ConvertToExecuteFunction.js +2 -1
- package/lib/network/RelayNetwork.js +3 -2
- package/lib/network/RelayQueryResponseCache.js +21 -4
- package/lib/network/wrapNetworkWithLogObserver.js +79 -0
- package/lib/query/GraphQLTag.js +3 -2
- package/lib/query/fetchQuery.js +6 -5
- package/lib/query/fetchQueryInternal.js +1 -1
- package/lib/query/fetchQuery_DEPRECATED.js +2 -1
- package/lib/store/ClientID.js +7 -1
- package/lib/store/DataChecker.js +141 -60
- package/lib/store/{RelayModernQueryExecutor.js → OperationExecutor.js} +532 -195
- package/lib/store/RelayConcreteVariables.js +24 -4
- package/lib/store/RelayModernEnvironment.js +175 -234
- package/lib/store/RelayModernFragmentSpecResolver.js +52 -26
- package/lib/store/RelayModernOperationDescriptor.js +2 -1
- package/lib/store/RelayModernRecord.js +47 -12
- package/lib/store/RelayModernSelector.js +14 -8
- package/lib/store/RelayModernStore.js +58 -29
- package/lib/store/RelayOperationTracker.js +34 -24
- package/lib/store/RelayPublishQueue.js +41 -13
- package/lib/store/RelayReader.js +287 -46
- package/lib/store/RelayRecordSource.js +87 -3
- package/lib/store/RelayReferenceMarker.js +55 -31
- package/lib/store/RelayResponseNormalizer.js +250 -108
- package/lib/store/RelayStoreReactFlightUtils.js +8 -12
- package/lib/store/RelayStoreSubscriptions.js +14 -9
- package/lib/store/RelayStoreUtils.js +11 -5
- package/lib/store/ResolverCache.js +213 -0
- package/lib/store/ResolverFragments.js +61 -0
- package/lib/store/cloneRelayHandleSourceField.js +5 -4
- package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
- package/lib/store/createRelayContext.js +4 -2
- package/lib/store/defaultGetDataID.js +3 -1
- package/lib/store/readInlineData.js +6 -2
- package/lib/subscription/requestSubscription.js +35 -9
- package/lib/util/RelayConcreteNode.js +4 -0
- package/lib/util/RelayFeatureFlags.js +11 -4
- package/lib/util/RelayProfiler.js +17 -187
- package/lib/util/RelayReplaySubject.js +22 -7
- package/lib/util/RelayRuntimeTypes.js +0 -6
- package/lib/util/StringInterner.js +71 -0
- package/lib/util/deepFreeze.js +1 -0
- package/lib/util/getFragmentIdentifier.js +15 -7
- package/lib/util/getOperation.js +2 -1
- package/lib/util/getPaginationMetadata.js +41 -0
- package/lib/util/getPaginationVariables.js +66 -0
- package/lib/util/getPendingOperationsForFragment.js +55 -0
- package/lib/util/getRefetchMetadata.js +36 -0
- package/lib/util/getRelayHandleKey.js +2 -2
- package/lib/util/getRequestIdentifier.js +2 -2
- package/lib/util/getValueAtPath.js +51 -0
- package/lib/util/isEmptyObject.js +1 -1
- package/lib/util/registerEnvironmentWithDevTools.js +26 -0
- package/lib/util/withDuration.js +31 -0
- package/multi-actor-environment/ActorIdentifier.js.flow +43 -0
- package/multi-actor-environment/ActorSpecificEnvironment.js.flow +225 -0
- package/multi-actor-environment/ActorUtils.js.flow +33 -0
- package/multi-actor-environment/MultiActorEnvironment.js.flow +506 -0
- package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +261 -0
- package/multi-actor-environment/index.js.flow +26 -0
- 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 +22 -7
- package/mutations/applyOptimisticMutation.js.flow +13 -14
- package/mutations/commitLocalUpdate.js.flow +1 -1
- package/mutations/commitMutation.js.flow +35 -46
- package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +309 -0
- package/mutations/validateMutation.js.flow +28 -16
- package/network/ConvertToExecuteFunction.js.flow +2 -2
- package/network/RelayNetwork.js.flow +4 -5
- package/network/RelayNetworkTypes.js.flow +17 -8
- package/network/RelayObservable.js.flow +1 -1
- package/network/RelayQueryResponseCache.js.flow +34 -20
- package/network/wrapNetworkWithLogObserver.js.flow +100 -0
- package/package.json +3 -2
- 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 +14 -3
- package/store/DataChecker.js.flow +162 -67
- package/store/{RelayModernQueryExecutor.js.flow → OperationExecutor.js.flow} +616 -283
- package/store/RelayConcreteVariables.js.flow +27 -5
- package/store/RelayModernEnvironment.js.flow +176 -235
- package/store/RelayModernFragmentSpecResolver.js.flow +55 -31
- package/store/RelayModernOperationDescriptor.js.flow +12 -7
- package/store/RelayModernRecord.js.flow +67 -11
- package/store/RelayModernSelector.js.flow +24 -14
- package/store/RelayModernStore.js.flow +72 -36
- package/store/RelayOperationTracker.js.flow +59 -43
- package/store/RelayOptimisticRecordSource.js.flow +2 -2
- package/store/RelayPublishQueue.js.flow +79 -34
- package/store/RelayReader.js.flow +351 -72
- package/store/RelayRecordSource.js.flow +72 -6
- package/store/RelayReferenceMarker.js.flow +60 -33
- package/store/RelayResponseNormalizer.js.flow +288 -102
- package/store/RelayStoreReactFlightUtils.js.flow +9 -13
- package/store/RelayStoreSubscriptions.js.flow +19 -11
- package/store/RelayStoreTypes.js.flow +210 -44
- package/store/RelayStoreUtils.js.flow +25 -11
- package/store/ResolverCache.js.flow +249 -0
- package/store/ResolverFragments.js.flow +121 -0
- 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 +3 -3
- package/store/defaultGetDataID.js.flow +3 -1
- package/store/normalizeRelayPayload.js.flow +6 -7
- package/store/readInlineData.js.flow +7 -8
- package/subscription/requestSubscription.js.flow +54 -27
- package/util/NormalizationNode.js.flow +16 -3
- package/util/ReaderNode.js.flow +38 -2
- package/util/RelayConcreteNode.js.flow +4 -0
- package/util/RelayFeatureFlags.js.flow +24 -8
- package/util/RelayProfiler.js.flow +22 -194
- package/util/RelayReplaySubject.js.flow +9 -9
- package/util/RelayRuntimeTypes.js.flow +73 -4
- package/util/StringInterner.js.flow +69 -0
- package/util/createPayloadFor3DField.js.flow +3 -3
- package/util/deepFreeze.js.flow +2 -1
- package/util/getFragmentIdentifier.js.flow +27 -15
- package/util/getOperation.js.flow +2 -2
- package/util/getPaginationMetadata.js.flow +72 -0
- package/util/getPaginationVariables.js.flow +108 -0
- package/util/getPendingOperationsForFragment.js.flow +62 -0
- package/util/getRefetchMetadata.js.flow +79 -0
- package/util/getRelayHandleKey.js.flow +1 -2
- package/util/getRequestIdentifier.js.flow +3 -3
- package/util/getValueAtPath.js.flow +46 -0
- package/util/isEmptyObject.js.flow +2 -1
- package/util/registerEnvironmentWithDevTools.js.flow +33 -0
- package/util/resolveImmediate.js.flow +1 -1
- package/util/withDuration.js.flow +32 -0
- package/lib/store/RelayRecordSourceMapImpl.js +0 -107
- package/lib/store/RelayStoreSubscriptionsUsingMapByID.js +0 -318
- package/store/RelayRecordSourceMapImpl.js.flow +0 -91
- package/store/RelayStoreSubscriptionsUsingMapByID.js.flow +0 -283
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
+
import type {Handler} from '../store/RelayStoreTypes';
|
|
16
|
+
|
|
15
17
|
const ConnectionHandler = require('./connection/ConnectionHandler');
|
|
16
18
|
const MutationHandlers = require('./connection/MutationHandlers');
|
|
17
|
-
|
|
18
19
|
const invariant = require('invariant');
|
|
19
20
|
|
|
20
|
-
import type {Handler} from '../store/RelayStoreTypes';
|
|
21
21
|
export type HandlerProvider = (name: string) => ?Handler;
|
|
22
22
|
|
|
23
23
|
function RelayDefaultHandlerProvider(handle: string): Handler {
|
|
@@ -12,23 +12,21 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
-
const ConnectionInterface = require('./ConnectionInterface');
|
|
16
|
-
|
|
17
|
-
const getRelayHandleKey = require('../../util/getRelayHandleKey');
|
|
18
|
-
const invariant = require('invariant');
|
|
19
|
-
const warning = require('warning');
|
|
20
|
-
|
|
21
|
-
const {generateClientID} = require('../../store/ClientID');
|
|
22
|
-
const {getStableStorageKey} = require('../../store/RelayStoreUtils');
|
|
23
|
-
|
|
24
15
|
import type {
|
|
25
16
|
HandleFieldPayload,
|
|
26
|
-
RecordProxy,
|
|
27
17
|
ReadOnlyRecordProxy,
|
|
18
|
+
RecordProxy,
|
|
28
19
|
RecordSourceProxy,
|
|
29
20
|
} from '../../store/RelayStoreTypes';
|
|
30
21
|
import type {DataID, Variables} from '../../util/RelayRuntimeTypes';
|
|
31
22
|
|
|
23
|
+
const {generateClientID} = require('../../store/ClientID');
|
|
24
|
+
const {getStableStorageKey} = require('../../store/RelayStoreUtils');
|
|
25
|
+
const getRelayHandleKey = require('../../util/getRelayHandleKey');
|
|
26
|
+
const ConnectionInterface = require('./ConnectionInterface');
|
|
27
|
+
const invariant = require('invariant');
|
|
28
|
+
const warning = require('warning');
|
|
29
|
+
|
|
32
30
|
export type ConnectionMetadata = {
|
|
33
31
|
path: ?Array<string>,
|
|
34
32
|
direction: ?('forward' | 'backward' | 'bidirectional'),
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
-
const ConnectionHandler = require('./ConnectionHandler');
|
|
16
|
-
|
|
17
|
-
const invariant = require('invariant');
|
|
18
|
-
const warning = require('warning');
|
|
19
|
-
|
|
20
15
|
import type {
|
|
21
|
-
RecordProxy,
|
|
22
16
|
HandleFieldPayload,
|
|
23
|
-
RecordSourceProxy,
|
|
24
17
|
Handler,
|
|
18
|
+
RecordProxy,
|
|
19
|
+
RecordSourceProxy,
|
|
25
20
|
} from '../../store/RelayStoreTypes';
|
|
26
21
|
|
|
22
|
+
const ConnectionHandler = require('./ConnectionHandler');
|
|
23
|
+
const ConnectionInterface = require('./ConnectionInterface');
|
|
24
|
+
const invariant = require('invariant');
|
|
25
|
+
const warning = require('warning');
|
|
26
|
+
|
|
27
27
|
const DeleteRecordHandler = {
|
|
28
28
|
update: (store: RecordSourceProxy, payload: HandleFieldPayload) => {
|
|
29
29
|
const record = store.get(payload.dataID);
|
|
@@ -120,11 +120,17 @@ function edgeUpdater(
|
|
|
120
120
|
);
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
|
+
const {NODE, EDGES} = ConnectionInterface.get();
|
|
123
124
|
const serverEdgeList = serverEdges ?? [singleServerEdge];
|
|
124
125
|
for (const serverEdge of serverEdgeList) {
|
|
125
126
|
if (serverEdge == null) {
|
|
126
127
|
continue;
|
|
127
128
|
}
|
|
129
|
+
const serverNode = serverEdge.getLinkedRecord('node');
|
|
130
|
+
if (!serverNode) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const serverNodeId = serverNode.getDataID();
|
|
128
134
|
for (const connectionID of connections) {
|
|
129
135
|
const connection = store.get(connectionID);
|
|
130
136
|
if (connection == null) {
|
|
@@ -134,6 +140,14 @@ function edgeUpdater(
|
|
|
134
140
|
);
|
|
135
141
|
continue;
|
|
136
142
|
}
|
|
143
|
+
const nodeAlreadyExistsInConnection = connection
|
|
144
|
+
.getLinkedRecords(EDGES)
|
|
145
|
+
?.some(
|
|
146
|
+
edge => edge?.getLinkedRecord(NODE)?.getDataID() === serverNodeId,
|
|
147
|
+
);
|
|
148
|
+
if (nodeAlreadyExistsInConnection) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
137
151
|
const clientEdge = ConnectionHandler.buildConnectionEdge(
|
|
138
152
|
store,
|
|
139
153
|
connection,
|
|
@@ -180,11 +194,13 @@ function nodeUpdater(
|
|
|
180
194
|
warning(false, 'MutationHandlers: Expected target node to exist.');
|
|
181
195
|
return;
|
|
182
196
|
}
|
|
197
|
+
const {NODE, EDGES} = ConnectionInterface.get();
|
|
183
198
|
const serverNodeList = serverNodes ?? [singleServerNode];
|
|
184
199
|
for (const serverNode of serverNodeList) {
|
|
185
200
|
if (serverNode == null) {
|
|
186
201
|
continue;
|
|
187
202
|
}
|
|
203
|
+
const serverNodeId = serverNode.getDataID();
|
|
188
204
|
for (const connectionID of connections) {
|
|
189
205
|
const connection = store.get(connectionID);
|
|
190
206
|
if (connection == null) {
|
|
@@ -194,6 +210,14 @@ function nodeUpdater(
|
|
|
194
210
|
);
|
|
195
211
|
continue;
|
|
196
212
|
}
|
|
213
|
+
const nodeAlreadyExistsInConnection = connection
|
|
214
|
+
.getLinkedRecords(EDGES)
|
|
215
|
+
?.some(
|
|
216
|
+
edge => edge?.getLinkedRecord(NODE)?.getDataID() === serverNodeId,
|
|
217
|
+
);
|
|
218
|
+
if (nodeAlreadyExistsInConnection) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
197
221
|
const clientEdge = ConnectionHandler.createEdge(
|
|
198
222
|
store,
|
|
199
223
|
connection,
|
package/index.js
CHANGED
package/index.js.flow
CHANGED
|
@@ -14,59 +14,62 @@
|
|
|
14
14
|
|
|
15
15
|
const ConnectionHandler = require('./handlers/connection/ConnectionHandler');
|
|
16
16
|
const ConnectionInterface = require('./handlers/connection/ConnectionInterface');
|
|
17
|
-
const GraphQLTag = require('./query/GraphQLTag');
|
|
18
17
|
const MutationHandlers = require('./handlers/connection/MutationHandlers');
|
|
18
|
+
const RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
|
|
19
|
+
const applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
|
|
20
|
+
const commitLocalUpdate = require('./mutations/commitLocalUpdate');
|
|
21
|
+
const commitMutation = require('./mutations/commitMutation');
|
|
22
|
+
const RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
|
|
23
|
+
const RelayNetwork = require('./network/RelayNetwork');
|
|
24
|
+
const RelayObservable = require('./network/RelayObservable');
|
|
25
|
+
const RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
|
|
26
|
+
const fetchQuery = require('./query/fetchQuery');
|
|
27
|
+
const fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
|
|
28
|
+
const fetchQueryInternal = require('./query/fetchQueryInternal');
|
|
29
|
+
const GraphQLTag = require('./query/GraphQLTag');
|
|
19
30
|
const PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');
|
|
20
|
-
const
|
|
31
|
+
const {
|
|
32
|
+
generateClientID,
|
|
33
|
+
generateUniqueClientID,
|
|
34
|
+
isClientID,
|
|
35
|
+
} = require('./store/ClientID');
|
|
36
|
+
const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
|
|
37
|
+
const createRelayContext = require('./store/createRelayContext');
|
|
38
|
+
const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
|
|
39
|
+
const readInlineData = require('./store/readInlineData');
|
|
21
40
|
const RelayConcreteVariables = require('./store/RelayConcreteVariables');
|
|
22
|
-
const RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
|
|
23
|
-
const RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
|
|
24
|
-
const RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
|
|
25
|
-
const RelayError = require('./util/RelayError');
|
|
26
|
-
const RelayFeatureFlags = require('./util/RelayFeatureFlags');
|
|
27
41
|
const RelayModernEnvironment = require('./store/RelayModernEnvironment');
|
|
28
42
|
const RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');
|
|
29
43
|
const RelayModernRecord = require('./store/RelayModernRecord');
|
|
30
44
|
const RelayModernSelector = require('./store/RelayModernSelector');
|
|
31
45
|
const RelayModernStore = require('./store/RelayModernStore');
|
|
32
|
-
const RelayNetwork = require('./network/RelayNetwork');
|
|
33
|
-
const RelayObservable = require('./network/RelayObservable');
|
|
34
46
|
const RelayOperationTracker = require('./store/RelayOperationTracker');
|
|
35
|
-
const RelayProfiler = require('./util/RelayProfiler');
|
|
36
|
-
const RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
|
|
37
47
|
const RelayRecordSource = require('./store/RelayRecordSource');
|
|
38
|
-
const RelayReplaySubject = require('./util/RelayReplaySubject');
|
|
39
48
|
const RelayStoreUtils = require('./store/RelayStoreUtils');
|
|
40
49
|
const ViewerPattern = require('./store/ViewerPattern');
|
|
41
|
-
|
|
42
|
-
const applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
|
|
43
|
-
const commitLocalUpdate = require('./mutations/commitLocalUpdate');
|
|
44
|
-
const commitMutation = require('./mutations/commitMutation');
|
|
45
|
-
const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
|
|
50
|
+
const requestSubscription = require('./subscription/requestSubscription');
|
|
46
51
|
const createPayloadFor3DField = require('./util/createPayloadFor3DField');
|
|
47
|
-
const createRelayContext = require('./store/createRelayContext');
|
|
48
52
|
const deepFreeze = require('./util/deepFreeze');
|
|
49
|
-
const fetchQuery = require('./query/fetchQuery');
|
|
50
|
-
const fetchQueryInternal = require('./query/fetchQueryInternal');
|
|
51
|
-
const fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
|
|
52
53
|
const getFragmentIdentifier = require('./util/getFragmentIdentifier');
|
|
54
|
+
const getPaginationMetadata = require('./util/getPaginationMetadata');
|
|
55
|
+
const getPaginationVariables = require('./util/getPaginationVariables');
|
|
56
|
+
const getPendingOperationsForFragment = require('./util/getPendingOperationsForFragment');
|
|
57
|
+
const getRefetchMetadata = require('./util/getRefetchMetadata');
|
|
53
58
|
const getRelayHandleKey = require('./util/getRelayHandleKey');
|
|
54
59
|
const getRequestIdentifier = require('./util/getRequestIdentifier');
|
|
60
|
+
const getValueAtPath = require('./util/getValueAtPath');
|
|
55
61
|
const isPromise = require('./util/isPromise');
|
|
56
|
-
const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
|
|
57
62
|
const isScalarAndEqual = require('./util/isScalarAndEqual');
|
|
58
|
-
const readInlineData = require('./store/readInlineData');
|
|
59
63
|
const recycleNodesInto = require('./util/recycleNodesInto');
|
|
64
|
+
const RelayConcreteNode = require('./util/RelayConcreteNode');
|
|
65
|
+
const RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
|
|
66
|
+
const RelayError = require('./util/RelayError');
|
|
67
|
+
const RelayFeatureFlags = require('./util/RelayFeatureFlags');
|
|
68
|
+
const RelayProfiler = require('./util/RelayProfiler');
|
|
69
|
+
const RelayReplaySubject = require('./util/RelayReplaySubject');
|
|
60
70
|
const reportMissingRequiredFields = require('./util/reportMissingRequiredFields');
|
|
61
|
-
const requestSubscription = require('./subscription/requestSubscription');
|
|
62
71
|
const stableCopy = require('./util/stableCopy');
|
|
63
72
|
|
|
64
|
-
const {
|
|
65
|
-
generateClientID,
|
|
66
|
-
generateUniqueClientID,
|
|
67
|
-
isClientID,
|
|
68
|
-
} = require('./store/ClientID');
|
|
69
|
-
|
|
70
73
|
export type {ConnectionMetadata} from './handlers/connection/ConnectionHandler';
|
|
71
74
|
export type {
|
|
72
75
|
EdgeRecord,
|
|
@@ -82,7 +85,6 @@ export type {OptimisticMutationConfig} from './mutations/applyOptimisticMutation
|
|
|
82
85
|
export type {
|
|
83
86
|
DEPRECATED_MutationConfig,
|
|
84
87
|
MutationConfig,
|
|
85
|
-
MutationParameters,
|
|
86
88
|
} from './mutations/commitMutation';
|
|
87
89
|
export type {
|
|
88
90
|
ExecuteFunction,
|
|
@@ -110,12 +112,15 @@ export type {
|
|
|
110
112
|
Subscription,
|
|
111
113
|
} from './network/RelayObservable';
|
|
112
114
|
export type {GraphQLTaggedNode} from './query/GraphQLTag';
|
|
115
|
+
export type {TaskScheduler} from './store/OperationExecutor';
|
|
113
116
|
export type {EnvironmentConfig} from './store/RelayModernEnvironment';
|
|
114
|
-
export type {TaskScheduler} from './store/RelayModernQueryExecutor';
|
|
115
117
|
export type {RecordState} from './store/RelayRecordState';
|
|
116
118
|
export type {
|
|
119
|
+
ExecuteMutationConfig,
|
|
117
120
|
FragmentMap,
|
|
118
|
-
FragmentReference
|
|
121
|
+
// DEPRECATED: use FragmentType instead of FragmentReference
|
|
122
|
+
FragmentType as FragmentReference,
|
|
123
|
+
FragmentType,
|
|
119
124
|
FragmentSpecResolver,
|
|
120
125
|
HandleFieldPayload,
|
|
121
126
|
IEnvironment,
|
|
@@ -125,6 +130,7 @@ export type {
|
|
|
125
130
|
MissingFieldHandler,
|
|
126
131
|
MissingRequiredFields,
|
|
127
132
|
ModuleImportPointer,
|
|
133
|
+
MutationParameters,
|
|
128
134
|
NormalizationSelector,
|
|
129
135
|
OperationAvailability,
|
|
130
136
|
OperationDescriptor,
|
|
@@ -136,9 +142,9 @@ export type {
|
|
|
136
142
|
PluralReaderSelector,
|
|
137
143
|
Props,
|
|
138
144
|
PublishQueue,
|
|
145
|
+
ReactFlightClientResponse,
|
|
139
146
|
ReactFlightPayloadDeserializer,
|
|
140
147
|
ReactFlightServerErrorHandler,
|
|
141
|
-
ReactFlightClientResponse,
|
|
142
148
|
ReaderSelector,
|
|
143
149
|
ReadOnlyRecordProxy,
|
|
144
150
|
RecordProxy,
|
|
@@ -146,13 +152,18 @@ export type {
|
|
|
146
152
|
RecordSourceSelectorProxy,
|
|
147
153
|
RelayContext,
|
|
148
154
|
RequestDescriptor,
|
|
155
|
+
RequiredFieldLogger,
|
|
149
156
|
SelectorData,
|
|
150
157
|
SelectorStoreUpdater,
|
|
151
158
|
SingularReaderSelector,
|
|
152
159
|
Snapshot,
|
|
153
160
|
StoreUpdater,
|
|
154
161
|
} from './store/RelayStoreTypes';
|
|
155
|
-
export type {
|
|
162
|
+
export type {
|
|
163
|
+
DEPRECATED_GraphQLSubscriptionConfig,
|
|
164
|
+
GraphQLSubscriptionConfig,
|
|
165
|
+
SubscriptionParameters,
|
|
166
|
+
} from './subscription/requestSubscription';
|
|
156
167
|
export type {JSResourceReference} from './util/JSResourceTypes.flow';
|
|
157
168
|
export type {
|
|
158
169
|
NormalizationArgument,
|
|
@@ -168,8 +179,8 @@ export type {
|
|
|
168
179
|
NormalizationSplitOperation,
|
|
169
180
|
NormalizationStream,
|
|
170
181
|
NormalizationTypeDiscriminator,
|
|
182
|
+
NormalizationOperation,
|
|
171
183
|
} from './util/NormalizationNode';
|
|
172
|
-
export type {NormalizationOperation} from './util/NormalizationNode';
|
|
173
184
|
export type {
|
|
174
185
|
ReaderArgument,
|
|
175
186
|
ReaderArgumentDefinition,
|
|
@@ -199,12 +210,20 @@ export type {
|
|
|
199
210
|
Disposable,
|
|
200
211
|
FetchPolicy,
|
|
201
212
|
FetchQueryFetchPolicy,
|
|
213
|
+
Fragment,
|
|
214
|
+
GraphQLSubscription,
|
|
215
|
+
InlineFragment,
|
|
216
|
+
Mutation,
|
|
217
|
+
Operation,
|
|
202
218
|
OperationType,
|
|
219
|
+
Query,
|
|
220
|
+
RefetchableFragment,
|
|
203
221
|
RenderPolicy,
|
|
204
222
|
Variables,
|
|
205
223
|
VariablesOf,
|
|
206
224
|
} from './util/RelayRuntimeTypes';
|
|
207
225
|
export type {Local3DPayload} from './util/createPayloadFor3DField';
|
|
226
|
+
export type {Direction} from './util/getPaginationVariables';
|
|
208
227
|
export type {RequestIdentifier} from './util/getRequestIdentifier';
|
|
209
228
|
|
|
210
229
|
// As early as possible, check for the existence of the JavaScript globals which
|
|
@@ -327,6 +346,11 @@ module.exports = {
|
|
|
327
346
|
recycleNodesInto: recycleNodesInto,
|
|
328
347
|
stableCopy: stableCopy,
|
|
329
348
|
getFragmentIdentifier: getFragmentIdentifier,
|
|
349
|
+
getRefetchMetadata: getRefetchMetadata,
|
|
350
|
+
getPaginationMetadata: getPaginationMetadata,
|
|
351
|
+
getPaginationVariables: getPaginationVariables,
|
|
352
|
+
getPendingOperationsForFragment: getPendingOperationsForFragment,
|
|
353
|
+
getValueAtPath: getValueAtPath,
|
|
330
354
|
__internal: {
|
|
331
355
|
OperationTracker: RelayOperationTracker,
|
|
332
356
|
createRelayContext: createRelayContext,
|
|
@@ -14,7 +14,7 @@ var ConnectionHandler = require('./connection/ConnectionHandler');
|
|
|
14
14
|
|
|
15
15
|
var MutationHandlers = require('./connection/MutationHandlers');
|
|
16
16
|
|
|
17
|
-
var invariant = require(
|
|
17
|
+
var invariant = require('invariant');
|
|
18
18
|
|
|
19
19
|
function RelayDefaultHandlerProvider(handle) {
|
|
20
20
|
switch (handle) {
|
|
@@ -10,20 +10,20 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
var ConnectionInterface = require('./ConnectionInterface');
|
|
14
|
-
|
|
15
|
-
var getRelayHandleKey = require('../../util/getRelayHandleKey');
|
|
16
|
-
|
|
17
|
-
var invariant = require("fbjs/lib/invariant");
|
|
18
|
-
|
|
19
|
-
var warning = require("fbjs/lib/warning");
|
|
20
|
-
|
|
21
13
|
var _require = require('../../store/ClientID'),
|
|
22
14
|
generateClientID = _require.generateClientID;
|
|
23
15
|
|
|
24
16
|
var _require2 = require('../../store/RelayStoreUtils'),
|
|
25
17
|
getStableStorageKey = _require2.getStableStorageKey;
|
|
26
18
|
|
|
19
|
+
var getRelayHandleKey = require('../../util/getRelayHandleKey');
|
|
20
|
+
|
|
21
|
+
var ConnectionInterface = require('./ConnectionInterface');
|
|
22
|
+
|
|
23
|
+
var invariant = require('invariant');
|
|
24
|
+
|
|
25
|
+
var warning = require("fbjs/lib/warning");
|
|
26
|
+
|
|
27
27
|
var CONNECTION = 'connection'; // Per-instance incrementing index used to generate unique edge IDs
|
|
28
28
|
|
|
29
29
|
var NEXT_EDGE_INDEX = '__connection_next_edge_index';
|
|
@@ -16,7 +16,9 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
|
|
17
17
|
var ConnectionHandler = require('./ConnectionHandler');
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var ConnectionInterface = require('./ConnectionInterface');
|
|
20
|
+
|
|
21
|
+
var invariant = require('invariant');
|
|
20
22
|
|
|
21
23
|
var warning = require("fbjs/lib/warning");
|
|
22
24
|
|
|
@@ -119,19 +121,31 @@ function edgeUpdater(insertFn) {
|
|
|
119
121
|
return;
|
|
120
122
|
}
|
|
121
123
|
|
|
124
|
+
var _ConnectionInterface$ = ConnectionInterface.get(),
|
|
125
|
+
NODE = _ConnectionInterface$.NODE,
|
|
126
|
+
EDGES = _ConnectionInterface$.EDGES;
|
|
127
|
+
|
|
122
128
|
var serverEdgeList = (_serverEdges = serverEdges) !== null && _serverEdges !== void 0 ? _serverEdges : [singleServerEdge];
|
|
123
129
|
|
|
124
130
|
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(serverEdgeList),
|
|
125
131
|
_step2;
|
|
126
132
|
|
|
127
133
|
try {
|
|
128
|
-
|
|
134
|
+
var _loop = function _loop() {
|
|
129
135
|
var serverEdge = _step2.value;
|
|
130
136
|
|
|
131
137
|
if (serverEdge == null) {
|
|
132
|
-
continue;
|
|
138
|
+
return "continue";
|
|
133
139
|
}
|
|
134
140
|
|
|
141
|
+
var serverNode = serverEdge.getLinkedRecord('node');
|
|
142
|
+
|
|
143
|
+
if (!serverNode) {
|
|
144
|
+
return "continue";
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
var serverNodeId = serverNode.getDataID();
|
|
148
|
+
|
|
135
149
|
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(connections),
|
|
136
150
|
_step3;
|
|
137
151
|
|
|
@@ -145,6 +159,16 @@ function edgeUpdater(insertFn) {
|
|
|
145
159
|
continue;
|
|
146
160
|
}
|
|
147
161
|
|
|
162
|
+
var nodeAlreadyExistsInConnection = (_connection$getLinked = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked === void 0 ? void 0 : _connection$getLinked.some(function (edge) {
|
|
163
|
+
var _edge$getLinkedRecord;
|
|
164
|
+
|
|
165
|
+
return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord === void 0 ? void 0 : _edge$getLinkedRecord.getDataID()) === serverNodeId;
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
if (nodeAlreadyExistsInConnection) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
|
|
148
172
|
var clientEdge = ConnectionHandler.buildConnectionEdge(store, connection, serverEdge);
|
|
149
173
|
!(clientEdge != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;
|
|
150
174
|
insertFn(connection, clientEdge);
|
|
@@ -154,6 +178,14 @@ function edgeUpdater(insertFn) {
|
|
|
154
178
|
} finally {
|
|
155
179
|
_iterator3.f();
|
|
156
180
|
}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
184
|
+
var _connection$getLinked;
|
|
185
|
+
|
|
186
|
+
var _ret = _loop();
|
|
187
|
+
|
|
188
|
+
if (_ret === "continue") continue;
|
|
157
189
|
}
|
|
158
190
|
} catch (err) {
|
|
159
191
|
_iterator2.e(err);
|
|
@@ -196,19 +228,25 @@ function nodeUpdater(insertFn) {
|
|
|
196
228
|
return;
|
|
197
229
|
}
|
|
198
230
|
|
|
231
|
+
var _ConnectionInterface$2 = ConnectionInterface.get(),
|
|
232
|
+
NODE = _ConnectionInterface$2.NODE,
|
|
233
|
+
EDGES = _ConnectionInterface$2.EDGES;
|
|
234
|
+
|
|
199
235
|
var serverNodeList = (_serverNodes = serverNodes) !== null && _serverNodes !== void 0 ? _serverNodes : [singleServerNode];
|
|
200
236
|
|
|
201
237
|
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(serverNodeList),
|
|
202
238
|
_step4;
|
|
203
239
|
|
|
204
240
|
try {
|
|
205
|
-
|
|
241
|
+
var _loop2 = function _loop2() {
|
|
206
242
|
var serverNode = _step4.value;
|
|
207
243
|
|
|
208
244
|
if (serverNode == null) {
|
|
209
|
-
continue;
|
|
245
|
+
return "continue";
|
|
210
246
|
}
|
|
211
247
|
|
|
248
|
+
var serverNodeId = serverNode.getDataID();
|
|
249
|
+
|
|
212
250
|
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(connections),
|
|
213
251
|
_step5;
|
|
214
252
|
|
|
@@ -222,6 +260,16 @@ function nodeUpdater(insertFn) {
|
|
|
222
260
|
continue;
|
|
223
261
|
}
|
|
224
262
|
|
|
263
|
+
var nodeAlreadyExistsInConnection = (_connection$getLinked2 = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked2 === void 0 ? void 0 : _connection$getLinked2.some(function (edge) {
|
|
264
|
+
var _edge$getLinkedRecord2;
|
|
265
|
+
|
|
266
|
+
return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord2 = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord2 === void 0 ? void 0 : _edge$getLinkedRecord2.getDataID()) === serverNodeId;
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
if (nodeAlreadyExistsInConnection) {
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
|
|
225
273
|
var clientEdge = ConnectionHandler.createEdge(store, connection, serverNode, edgeTypeName);
|
|
226
274
|
!(clientEdge != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;
|
|
227
275
|
insertFn(connection, clientEdge);
|
|
@@ -231,6 +279,14 @@ function nodeUpdater(insertFn) {
|
|
|
231
279
|
} finally {
|
|
232
280
|
_iterator5.f();
|
|
233
281
|
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
285
|
+
var _connection$getLinked2;
|
|
286
|
+
|
|
287
|
+
var _ret2 = _loop2();
|
|
288
|
+
|
|
289
|
+
if (_ret2 === "continue") continue;
|
|
234
290
|
}
|
|
235
291
|
} catch (err) {
|
|
236
292
|
_iterator4.e(err);
|