relay-runtime 11.0.1 → 13.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +60 -36
- package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
- package/lib/handlers/connection/ConnectionHandler.js +13 -19
- package/lib/handlers/connection/MutationHandlers.js +4 -7
- 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 +10 -5
- package/lib/network/ConvertToExecuteFunction.js +2 -1
- package/lib/network/RelayNetwork.js +3 -2
- package/lib/network/RelayQueryResponseCache.js +21 -5
- 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 +123 -54
- package/lib/store/{RelayModernQueryExecutor.js → OperationExecutor.js} +518 -200
- package/lib/store/RelayConcreteVariables.js +26 -8
- package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
- package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
- package/lib/store/RelayModernEnvironment.js +175 -240
- 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 +56 -28
- package/lib/store/RelayOperationTracker.js +34 -24
- package/lib/store/RelayPublishQueue.js +41 -13
- package/lib/store/RelayReader.js +288 -48
- package/lib/store/RelayRecordSource.js +87 -3
- package/lib/store/RelayReferenceMarker.js +34 -22
- package/lib/store/RelayResponseNormalizer.js +211 -110
- package/lib/store/RelayStoreReactFlightUtils.js +4 -10
- package/lib/store/RelayStoreSubscriptions.js +14 -9
- package/lib/store/RelayStoreUtils.js +12 -7
- 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/readInlineData.js +6 -2
- package/lib/subscription/requestSubscription.js +34 -25
- package/lib/util/RelayConcreteNode.js +3 -0
- package/lib/util/RelayFeatureFlags.js +10 -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/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 +26 -16
- package/network/ConvertToExecuteFunction.js.flow +2 -2
- package/network/RelayNetwork.js.flow +4 -5
- package/network/RelayNetworkTypes.js.flow +5 -4
- package/network/RelayObservable.js.flow +1 -1
- package/network/RelayQueryResponseCache.js.flow +34 -21
- 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 +141 -59
- package/store/{RelayModernQueryExecutor.js.flow → OperationExecutor.js.flow} +605 -303
- package/store/RelayConcreteVariables.js.flow +27 -8
- package/store/RelayExperimentalGraphResponseHandler.js.flow +124 -0
- package/store/RelayExperimentalGraphResponseTransform.js.flow +475 -0
- package/store/RelayModernEnvironment.js.flow +173 -240
- 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 +66 -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 -73
- package/store/RelayRecordSource.js.flow +72 -6
- package/store/RelayReferenceMarker.js.flow +40 -26
- package/store/RelayResponseNormalizer.js.flow +258 -99
- package/store/RelayStoreReactFlightUtils.js.flow +4 -11
- package/store/RelayStoreSubscriptions.js.flow +19 -11
- package/store/RelayStoreTypes.js.flow +209 -43
- package/store/RelayStoreUtils.js.flow +24 -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/normalizeRelayPayload.js.flow +6 -7
- package/store/readInlineData.js.flow +7 -8
- package/subscription/requestSubscription.js.flow +53 -41
- package/util/NormalizationNode.js.flow +10 -3
- package/util/ReaderNode.js.flow +38 -2
- package/util/RelayConcreteNode.js.flow +5 -0
- package/util/RelayFeatureFlags.js.flow +24 -10
- package/util/RelayProfiler.js.flow +22 -194
- package/util/RelayReplaySubject.js.flow +9 -9
- package/util/RelayRuntimeTypes.js.flow +72 -3
- 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 +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 +1 -0
- 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
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// flowlint ambiguous-object-type:error
|
|
12
|
+
|
|
13
|
+
'use strict';
|
|
14
|
+
import type {Subscription} from './RelayObservable';
|
|
15
|
+
|
|
16
|
+
import type ActorSpecificEnvironment from '../multi-actor-environment/ActorSpecificEnvironment';
|
|
17
|
+
import type RelayModernEnvironment from '../store/RelayModernEnvironment';
|
|
18
|
+
import type {RequestParameters} from '../util/RelayConcreteNode';
|
|
19
|
+
import type {CacheConfig, Variables} from '../util/RelayRuntimeTypes';
|
|
20
|
+
import type {
|
|
21
|
+
GraphQLResponse,
|
|
22
|
+
INetwork,
|
|
23
|
+
UploadableMap,
|
|
24
|
+
} from './RelayNetworkTypes';
|
|
25
|
+
import type RelayObservable from './RelayObservable';
|
|
26
|
+
|
|
27
|
+
const generateID = require('../util/generateID');
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Wraps the network with logging to ensure that network requests are
|
|
31
|
+
* always logged. Relying on each network callsite to be wrapped is
|
|
32
|
+
* untenable and will eventually lead to holes in the logging.
|
|
33
|
+
* NOTE: This function takes an environment instance, because Relay
|
|
34
|
+
* devtools will mutate the `env.__log` method, and the devtools rely
|
|
35
|
+
* on it to receive network events.
|
|
36
|
+
*/
|
|
37
|
+
function wrapNetworkWithLogObserver(
|
|
38
|
+
env: RelayModernEnvironment | ActorSpecificEnvironment,
|
|
39
|
+
network: INetwork,
|
|
40
|
+
): INetwork {
|
|
41
|
+
return {
|
|
42
|
+
execute(
|
|
43
|
+
params: RequestParameters,
|
|
44
|
+
variables: Variables,
|
|
45
|
+
cacheConfig: CacheConfig,
|
|
46
|
+
uploadables?: ?UploadableMap,
|
|
47
|
+
): RelayObservable<GraphQLResponse> {
|
|
48
|
+
const networkRequestId = generateID();
|
|
49
|
+
const logObserver = {
|
|
50
|
+
start: (subscription: Subscription) => {
|
|
51
|
+
env.__log({
|
|
52
|
+
name: 'network.start',
|
|
53
|
+
networkRequestId,
|
|
54
|
+
params,
|
|
55
|
+
variables,
|
|
56
|
+
cacheConfig,
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
next: (response: GraphQLResponse) => {
|
|
60
|
+
env.__log({
|
|
61
|
+
name: 'network.next',
|
|
62
|
+
networkRequestId,
|
|
63
|
+
response,
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
error: (error: Error) => {
|
|
67
|
+
env.__log({
|
|
68
|
+
name: 'network.error',
|
|
69
|
+
networkRequestId,
|
|
70
|
+
error,
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
complete: () => {
|
|
74
|
+
env.__log({
|
|
75
|
+
name: 'network.complete',
|
|
76
|
+
networkRequestId,
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
unsubscribe: () => {
|
|
80
|
+
env.__log({
|
|
81
|
+
name: 'network.unsubscribe',
|
|
82
|
+
networkRequestId,
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
const logRequestInfo = (info: mixed) => {
|
|
87
|
+
env.__log({
|
|
88
|
+
name: 'network.info',
|
|
89
|
+
networkRequestId,
|
|
90
|
+
info,
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
return network
|
|
94
|
+
.execute(params, variables, cacheConfig, uploadables, logRequestInfo)
|
|
95
|
+
.do(logObserver);
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
module.exports = wrapNetworkWithLogObserver;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "relay-runtime",
|
|
3
3
|
"description": "A core runtime for building GraphQL-driven applications.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "13.0.0-rc.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
7
7
|
"relay"
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"repository": "facebook/relay",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@babel/runtime": "^7.0.0",
|
|
15
|
-
"fbjs": "^3.0.0"
|
|
15
|
+
"fbjs": "^3.0.0",
|
|
16
|
+
"invariant": "^2.2.4"
|
|
16
17
|
},
|
|
17
18
|
"directories": {
|
|
18
19
|
"": "./"
|
package/query/GraphQLTag.js.flow
CHANGED
|
@@ -12,26 +12,26 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
-
const RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
16
|
-
|
|
17
|
-
const invariant = require('invariant');
|
|
18
|
-
const warning = require('warning');
|
|
19
|
-
|
|
20
15
|
import type {
|
|
21
16
|
ReaderFragment,
|
|
22
|
-
ReaderRefetchableFragment,
|
|
23
|
-
ReaderPaginationFragment,
|
|
24
17
|
ReaderInlineDataFragment,
|
|
18
|
+
ReaderPaginationFragment,
|
|
19
|
+
ReaderRefetchableFragment,
|
|
25
20
|
} from '../util/ReaderNode';
|
|
26
21
|
import type {ConcreteRequest} from '../util/RelayConcreteNode';
|
|
27
22
|
|
|
23
|
+
const RelayConcreteNode = require('../util/RelayConcreteNode');
|
|
24
|
+
const invariant = require('invariant');
|
|
25
|
+
const warning = require('warning');
|
|
26
|
+
|
|
28
27
|
// The type of a graphql`...` tagged template expression.
|
|
29
28
|
export type GraphQLTaggedNode =
|
|
30
29
|
| ReaderFragment
|
|
30
|
+
| ReaderInlineDataFragment
|
|
31
31
|
| ConcreteRequest
|
|
32
32
|
| {
|
|
33
33
|
// This is this case when we `require()` a generated ES6 module
|
|
34
|
-
default: ReaderFragment | ConcreteRequest,
|
|
34
|
+
default: ReaderFragment | ReaderInlineDataFragment | ConcreteRequest,
|
|
35
35
|
...
|
|
36
36
|
};
|
|
37
37
|
|
|
@@ -51,7 +51,7 @@ function graphql(strings: Array<string>): GraphQLTaggedNode {
|
|
|
51
51
|
|
|
52
52
|
function getNode(
|
|
53
53
|
taggedNode: GraphQLTaggedNode,
|
|
54
|
-
): ReaderFragment | ConcreteRequest {
|
|
54
|
+
): ReaderFragment | ReaderInlineDataFragment | ConcreteRequest {
|
|
55
55
|
let node = taggedNode;
|
|
56
56
|
if (typeof node === 'function') {
|
|
57
57
|
node = (node(): ReaderFragment | ConcreteRequest);
|
|
@@ -60,6 +60,7 @@ class PreloadableQueryRegistry {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
const preloadableQueryRegistry: PreloadableQueryRegistry =
|
|
63
|
+
const preloadableQueryRegistry: PreloadableQueryRegistry =
|
|
64
|
+
new PreloadableQueryRegistry();
|
|
64
65
|
|
|
65
66
|
module.exports = preloadableQueryRegistry;
|
package/query/fetchQuery.js.flow
CHANGED
|
@@ -13,17 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
'use strict';
|
|
15
15
|
|
|
16
|
-
const RelayObservable = require('../network/RelayObservable');
|
|
17
|
-
|
|
18
|
-
const fetchQueryInternal = require('./fetchQueryInternal');
|
|
19
|
-
const invariant = require('invariant');
|
|
20
|
-
const reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
|
|
21
|
-
|
|
22
|
-
const {
|
|
23
|
-
createOperationDescriptor,
|
|
24
|
-
} = require('../store/RelayModernOperationDescriptor');
|
|
25
|
-
const {getRequest} = require('./GraphQLTag');
|
|
26
|
-
|
|
27
16
|
import type {
|
|
28
17
|
CacheConfig,
|
|
29
18
|
FetchQueryFetchPolicy,
|
|
@@ -35,6 +24,15 @@ import type {
|
|
|
35
24
|
VariablesOf,
|
|
36
25
|
} from 'relay-runtime';
|
|
37
26
|
|
|
27
|
+
const RelayObservable = require('../network/RelayObservable');
|
|
28
|
+
const {
|
|
29
|
+
createOperationDescriptor,
|
|
30
|
+
} = require('../store/RelayModernOperationDescriptor');
|
|
31
|
+
const reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
|
|
32
|
+
const fetchQueryInternal = require('./fetchQueryInternal');
|
|
33
|
+
const {getRequest} = require('./GraphQLTag');
|
|
34
|
+
const invariant = require('invariant');
|
|
35
|
+
|
|
38
36
|
/**
|
|
39
37
|
* Fetches the given query and variables on the provided environment,
|
|
40
38
|
* and de-dupes identical in-flight requests.
|
|
@@ -120,7 +118,7 @@ function fetchQuery<TQuery: OperationType>(
|
|
|
120
118
|
fetchPolicy?: FetchQueryFetchPolicy,
|
|
121
119
|
networkCacheConfig?: CacheConfig,
|
|
122
120
|
|}>,
|
|
123
|
-
): RelayObservable
|
|
121
|
+
): RelayObservable<TQuery['response']> {
|
|
124
122
|
const queryNode = getRequest(query);
|
|
125
123
|
invariant(
|
|
126
124
|
queryNode.params.operationKind === 'query',
|
|
@@ -165,7 +163,7 @@ function fetchQuery<TQuery: OperationType>(
|
|
|
165
163
|
function getNetworkObservable<TQuery: OperationType>(
|
|
166
164
|
environment: IEnvironment,
|
|
167
165
|
operation: OperationDescriptor,
|
|
168
|
-
): RelayObservable
|
|
166
|
+
): RelayObservable<TQuery['response']> {
|
|
169
167
|
return fetchQueryInternal
|
|
170
168
|
.fetchQuery(environment, operation)
|
|
171
169
|
.map(() => environment.lookup(operation.fragment));
|
|
@@ -12,11 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
-
const Observable = require('../network/RelayObservable');
|
|
16
|
-
const RelayReplaySubject = require('../util/RelayReplaySubject');
|
|
17
|
-
|
|
18
|
-
const invariant = require('invariant');
|
|
19
|
-
|
|
20
15
|
import type {GraphQLResponse} from '../network/RelayNetworkTypes';
|
|
21
16
|
import type {Subscription} from '../network/RelayObservable';
|
|
22
17
|
import type {
|
|
@@ -26,6 +21,10 @@ import type {
|
|
|
26
21
|
} from '../store/RelayStoreTypes';
|
|
27
22
|
import type {RequestIdentifier} from '../util/getRequestIdentifier';
|
|
28
23
|
|
|
24
|
+
const Observable = require('../network/RelayObservable');
|
|
25
|
+
const RelayReplaySubject = require('../util/RelayReplaySubject');
|
|
26
|
+
const invariant = require('invariant');
|
|
27
|
+
|
|
29
28
|
type RequestCacheEntry = {|
|
|
30
29
|
+identifier: RequestIdentifier,
|
|
31
30
|
+subject: RelayReplaySubject<GraphQLResponse>,
|
|
@@ -307,10 +306,8 @@ function getObservableForActiveRequest(
|
|
|
307
306
|
function getRequestCache(
|
|
308
307
|
environment: IEnvironment,
|
|
309
308
|
): Map<RequestIdentifier, RequestCacheEntry> {
|
|
310
|
-
const cached: ?Map<
|
|
311
|
-
|
|
312
|
-
RequestCacheEntry,
|
|
313
|
-
> = requestCachesByEnvironment.get(environment);
|
|
309
|
+
const cached: ?Map<RequestIdentifier, RequestCacheEntry> =
|
|
310
|
+
requestCachesByEnvironment.get(environment);
|
|
314
311
|
if (cached != null) {
|
|
315
312
|
return cached;
|
|
316
313
|
}
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
+
import type {IEnvironment} from '../store/RelayStoreTypes';
|
|
16
|
+
import type {CacheConfig, OperationType} from '../util/RelayRuntimeTypes';
|
|
17
|
+
import type {GraphQLTaggedNode} from './GraphQLTag';
|
|
18
|
+
|
|
15
19
|
const {
|
|
16
20
|
createOperationDescriptor,
|
|
17
21
|
} = require('../store/RelayModernOperationDescriptor');
|
|
18
22
|
const {getRequest} = require('./GraphQLTag');
|
|
19
23
|
|
|
20
|
-
import type {IEnvironment} from '../store/RelayStoreTypes';
|
|
21
|
-
import type {CacheConfig, OperationType} from '../util/RelayRuntimeTypes';
|
|
22
|
-
import type {GraphQLTaggedNode} from './GraphQLTag';
|
|
23
|
-
|
|
24
24
|
/**
|
|
25
25
|
* A helper function to fetch the results of a query. Note that results for
|
|
26
26
|
* fragment spreads are masked: fields must be explicitly listed in the query in
|
|
@@ -30,9 +30,9 @@ import type {GraphQLTaggedNode} from './GraphQLTag';
|
|
|
30
30
|
function fetchQuery_DEPRECATED<T: OperationType>(
|
|
31
31
|
environment: IEnvironment,
|
|
32
32
|
taggedNode: GraphQLTaggedNode,
|
|
33
|
-
variables:
|
|
33
|
+
variables: T['variables'],
|
|
34
34
|
cacheConfig?: ?CacheConfig,
|
|
35
|
-
): Promise
|
|
35
|
+
): Promise<T['response']> {
|
|
36
36
|
const query = getRequest(taggedNode);
|
|
37
37
|
if (query.params.operationKind !== 'query') {
|
|
38
38
|
throw new Error('fetchQuery: Expected query operation');
|