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.
Files changed (169) hide show
  1. package/handlers/RelayDefaultHandlerProvider.js.flow +2 -2
  2. package/handlers/connection/ConnectionHandler.js.flow +8 -10
  3. package/handlers/connection/MutationHandlers.js.flow +31 -7
  4. package/index.js +1 -1
  5. package/index.js.flow +60 -36
  6. package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
  7. package/lib/handlers/connection/ConnectionHandler.js +8 -8
  8. package/lib/handlers/connection/MutationHandlers.js +61 -5
  9. package/lib/index.js +58 -43
  10. package/lib/multi-actor-environment/ActorIdentifier.js +33 -0
  11. package/lib/multi-actor-environment/ActorSpecificEnvironment.js +152 -0
  12. package/lib/multi-actor-environment/ActorUtils.js +27 -0
  13. package/lib/multi-actor-environment/MultiActorEnvironment.js +419 -0
  14. package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +11 -0
  15. package/lib/multi-actor-environment/index.js +21 -0
  16. package/lib/mutations/RelayDeclarativeMutationConfig.js +4 -1
  17. package/lib/mutations/RelayRecordProxy.js +3 -2
  18. package/lib/mutations/RelayRecordSourceMutator.js +3 -2
  19. package/lib/mutations/RelayRecordSourceProxy.js +12 -4
  20. package/lib/mutations/RelayRecordSourceSelectorProxy.js +18 -5
  21. package/lib/mutations/applyOptimisticMutation.js +6 -6
  22. package/lib/mutations/commitMutation.js +14 -10
  23. package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +238 -0
  24. package/lib/mutations/validateMutation.js +12 -5
  25. package/lib/network/ConvertToExecuteFunction.js +2 -1
  26. package/lib/network/RelayNetwork.js +3 -2
  27. package/lib/network/RelayQueryResponseCache.js +21 -4
  28. package/lib/network/wrapNetworkWithLogObserver.js +79 -0
  29. package/lib/query/GraphQLTag.js +3 -2
  30. package/lib/query/fetchQuery.js +6 -5
  31. package/lib/query/fetchQueryInternal.js +1 -1
  32. package/lib/query/fetchQuery_DEPRECATED.js +2 -1
  33. package/lib/store/ClientID.js +7 -1
  34. package/lib/store/DataChecker.js +141 -60
  35. package/lib/store/{RelayModernQueryExecutor.js → OperationExecutor.js} +532 -195
  36. package/lib/store/RelayConcreteVariables.js +24 -4
  37. package/lib/store/RelayModernEnvironment.js +175 -234
  38. package/lib/store/RelayModernFragmentSpecResolver.js +52 -26
  39. package/lib/store/RelayModernOperationDescriptor.js +2 -1
  40. package/lib/store/RelayModernRecord.js +47 -12
  41. package/lib/store/RelayModernSelector.js +14 -8
  42. package/lib/store/RelayModernStore.js +58 -29
  43. package/lib/store/RelayOperationTracker.js +34 -24
  44. package/lib/store/RelayPublishQueue.js +41 -13
  45. package/lib/store/RelayReader.js +287 -46
  46. package/lib/store/RelayRecordSource.js +87 -3
  47. package/lib/store/RelayReferenceMarker.js +55 -31
  48. package/lib/store/RelayResponseNormalizer.js +250 -108
  49. package/lib/store/RelayStoreReactFlightUtils.js +8 -12
  50. package/lib/store/RelayStoreSubscriptions.js +14 -9
  51. package/lib/store/RelayStoreUtils.js +11 -5
  52. package/lib/store/ResolverCache.js +213 -0
  53. package/lib/store/ResolverFragments.js +61 -0
  54. package/lib/store/cloneRelayHandleSourceField.js +5 -4
  55. package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
  56. package/lib/store/createRelayContext.js +4 -2
  57. package/lib/store/defaultGetDataID.js +3 -1
  58. package/lib/store/readInlineData.js +6 -2
  59. package/lib/subscription/requestSubscription.js +35 -9
  60. package/lib/util/RelayConcreteNode.js +4 -0
  61. package/lib/util/RelayFeatureFlags.js +11 -4
  62. package/lib/util/RelayProfiler.js +17 -187
  63. package/lib/util/RelayReplaySubject.js +22 -7
  64. package/lib/util/RelayRuntimeTypes.js +0 -6
  65. package/lib/util/StringInterner.js +71 -0
  66. package/lib/util/deepFreeze.js +1 -0
  67. package/lib/util/getFragmentIdentifier.js +15 -7
  68. package/lib/util/getOperation.js +2 -1
  69. package/lib/util/getPaginationMetadata.js +41 -0
  70. package/lib/util/getPaginationVariables.js +66 -0
  71. package/lib/util/getPendingOperationsForFragment.js +55 -0
  72. package/lib/util/getRefetchMetadata.js +36 -0
  73. package/lib/util/getRelayHandleKey.js +2 -2
  74. package/lib/util/getRequestIdentifier.js +2 -2
  75. package/lib/util/getValueAtPath.js +51 -0
  76. package/lib/util/isEmptyObject.js +1 -1
  77. package/lib/util/registerEnvironmentWithDevTools.js +26 -0
  78. package/lib/util/withDuration.js +31 -0
  79. package/multi-actor-environment/ActorIdentifier.js.flow +43 -0
  80. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +225 -0
  81. package/multi-actor-environment/ActorUtils.js.flow +33 -0
  82. package/multi-actor-environment/MultiActorEnvironment.js.flow +506 -0
  83. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +261 -0
  84. package/multi-actor-environment/index.js.flow +26 -0
  85. package/mutations/RelayDeclarativeMutationConfig.js.flow +32 -26
  86. package/mutations/RelayRecordProxy.js.flow +4 -5
  87. package/mutations/RelayRecordSourceMutator.js.flow +4 -6
  88. package/mutations/RelayRecordSourceProxy.js.flow +19 -10
  89. package/mutations/RelayRecordSourceSelectorProxy.js.flow +22 -7
  90. package/mutations/applyOptimisticMutation.js.flow +13 -14
  91. package/mutations/commitLocalUpdate.js.flow +1 -1
  92. package/mutations/commitMutation.js.flow +35 -46
  93. package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +309 -0
  94. package/mutations/validateMutation.js.flow +28 -16
  95. package/network/ConvertToExecuteFunction.js.flow +2 -2
  96. package/network/RelayNetwork.js.flow +4 -5
  97. package/network/RelayNetworkTypes.js.flow +17 -8
  98. package/network/RelayObservable.js.flow +1 -1
  99. package/network/RelayQueryResponseCache.js.flow +34 -20
  100. package/network/wrapNetworkWithLogObserver.js.flow +100 -0
  101. package/package.json +3 -2
  102. package/query/GraphQLTag.js.flow +9 -9
  103. package/query/PreloadableQueryRegistry.js.flow +2 -1
  104. package/query/fetchQuery.js.flow +11 -13
  105. package/query/fetchQueryInternal.js.flow +6 -9
  106. package/query/fetchQuery_DEPRECATED.js.flow +6 -6
  107. package/relay-runtime.js +2 -2
  108. package/relay-runtime.min.js +2 -2
  109. package/store/ClientID.js.flow +14 -3
  110. package/store/DataChecker.js.flow +162 -67
  111. package/store/{RelayModernQueryExecutor.js.flow → OperationExecutor.js.flow} +616 -283
  112. package/store/RelayConcreteVariables.js.flow +27 -5
  113. package/store/RelayModernEnvironment.js.flow +176 -235
  114. package/store/RelayModernFragmentSpecResolver.js.flow +55 -31
  115. package/store/RelayModernOperationDescriptor.js.flow +12 -7
  116. package/store/RelayModernRecord.js.flow +67 -11
  117. package/store/RelayModernSelector.js.flow +24 -14
  118. package/store/RelayModernStore.js.flow +72 -36
  119. package/store/RelayOperationTracker.js.flow +59 -43
  120. package/store/RelayOptimisticRecordSource.js.flow +2 -2
  121. package/store/RelayPublishQueue.js.flow +79 -34
  122. package/store/RelayReader.js.flow +351 -72
  123. package/store/RelayRecordSource.js.flow +72 -6
  124. package/store/RelayReferenceMarker.js.flow +60 -33
  125. package/store/RelayResponseNormalizer.js.flow +288 -102
  126. package/store/RelayStoreReactFlightUtils.js.flow +9 -13
  127. package/store/RelayStoreSubscriptions.js.flow +19 -11
  128. package/store/RelayStoreTypes.js.flow +210 -44
  129. package/store/RelayStoreUtils.js.flow +25 -11
  130. package/store/ResolverCache.js.flow +249 -0
  131. package/store/ResolverFragments.js.flow +121 -0
  132. package/store/StoreInspector.js.flow +2 -2
  133. package/store/TypeID.js.flow +1 -1
  134. package/store/ViewerPattern.js.flow +2 -2
  135. package/store/cloneRelayHandleSourceField.js.flow +5 -6
  136. package/store/cloneRelayScalarHandleSourceField.js.flow +5 -6
  137. package/store/createFragmentSpecResolver.js.flow +3 -4
  138. package/store/createRelayContext.js.flow +3 -3
  139. package/store/defaultGetDataID.js.flow +3 -1
  140. package/store/normalizeRelayPayload.js.flow +6 -7
  141. package/store/readInlineData.js.flow +7 -8
  142. package/subscription/requestSubscription.js.flow +54 -27
  143. package/util/NormalizationNode.js.flow +16 -3
  144. package/util/ReaderNode.js.flow +38 -2
  145. package/util/RelayConcreteNode.js.flow +4 -0
  146. package/util/RelayFeatureFlags.js.flow +24 -8
  147. package/util/RelayProfiler.js.flow +22 -194
  148. package/util/RelayReplaySubject.js.flow +9 -9
  149. package/util/RelayRuntimeTypes.js.flow +73 -4
  150. package/util/StringInterner.js.flow +69 -0
  151. package/util/createPayloadFor3DField.js.flow +3 -3
  152. package/util/deepFreeze.js.flow +2 -1
  153. package/util/getFragmentIdentifier.js.flow +27 -15
  154. package/util/getOperation.js.flow +2 -2
  155. package/util/getPaginationMetadata.js.flow +72 -0
  156. package/util/getPaginationVariables.js.flow +108 -0
  157. package/util/getPendingOperationsForFragment.js.flow +62 -0
  158. package/util/getRefetchMetadata.js.flow +79 -0
  159. package/util/getRelayHandleKey.js.flow +1 -2
  160. package/util/getRequestIdentifier.js.flow +3 -3
  161. package/util/getValueAtPath.js.flow +46 -0
  162. package/util/isEmptyObject.js.flow +2 -1
  163. package/util/registerEnvironmentWithDevTools.js.flow +33 -0
  164. package/util/resolveImmediate.js.flow +1 -1
  165. package/util/withDuration.js.flow +32 -0
  166. package/lib/store/RelayRecordSourceMapImpl.js +0 -107
  167. package/lib/store/RelayStoreSubscriptionsUsingMapByID.js +0 -318
  168. package/store/RelayRecordSourceMapImpl.js.flow +0 -91
  169. package/store/RelayStoreSubscriptionsUsingMapByID.js.flow +0 -283
@@ -12,15 +12,18 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const invariant = require('invariant');
16
- const stableCopy = require('../util/stableCopy');
17
-
18
15
  import type {Variables} from '../util/RelayRuntimeTypes';
19
- import type {GraphQLSingularResponse} from './RelayNetworkTypes';
16
+ import type {
17
+ GraphQLResponse,
18
+ GraphQLSingularResponse,
19
+ } from './RelayNetworkTypes';
20
+
21
+ const stableCopy = require('../util/stableCopy');
22
+ const invariant = require('invariant');
20
23
 
21
24
  type Response = {
22
25
  fetchTime: number,
23
- payload: GraphQLSingularResponse,
26
+ payload: GraphQLResponse,
24
27
  ...
25
28
  };
26
29
 
@@ -55,7 +58,7 @@ class RelayQueryResponseCache {
55
58
  this._responses.clear();
56
59
  }
57
60
 
58
- get(queryID: string, variables: Variables): ?GraphQLSingularResponse {
61
+ get(queryID: string, variables: Variables): ?GraphQLResponse {
59
62
  const cacheKey = getCacheKey(queryID, variables);
60
63
  this._responses.forEach((response, key) => {
61
64
  if (!isCurrent(response.fetchTime, this._ttl)) {
@@ -63,22 +66,33 @@ class RelayQueryResponseCache {
63
66
  }
64
67
  });
65
68
  const response = this._responses.get(cacheKey);
66
- return response != null
67
- ? ({
68
- ...response.payload,
69
- extensions: {
70
- ...response.payload.extensions,
71
- cacheTimestamp: response.fetchTime,
72
- },
73
- }: GraphQLSingularResponse)
74
- : null;
69
+ if (response == null) {
70
+ return null;
71
+ }
72
+ if (Array.isArray(response.payload)) {
73
+ return response.payload.map(
74
+ payload =>
75
+ // $FlowFixMe[incompatible-cast]
76
+ ({
77
+ ...payload,
78
+ extensions: {
79
+ ...payload.extensions,
80
+ cacheTimestamp: response.fetchTime,
81
+ },
82
+ }: GraphQLSingularResponse),
83
+ );
84
+ }
85
+ // $FlowFixMe[incompatible-cast]
86
+ return ({
87
+ ...response.payload,
88
+ extensions: {
89
+ ...response.payload.extensions,
90
+ cacheTimestamp: response.fetchTime,
91
+ },
92
+ }: GraphQLSingularResponse);
75
93
  }
76
94
 
77
- set(
78
- queryID: string,
79
- variables: Variables,
80
- payload: GraphQLSingularResponse,
81
- ): void {
95
+ set(queryID: string, variables: Variables, payload: GraphQLResponse): void {
82
96
  const fetchTime = Date.now();
83
97
  const cacheKey = getCacheKey(queryID, variables);
84
98
  this._responses.delete(cacheKey); // deletion resets key ordering
@@ -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": "11.0.0",
4
+ "version": "13.0.0-rc.0",
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
  "": "./"
@@ -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 = new PreloadableQueryRegistry();
63
+ const preloadableQueryRegistry: PreloadableQueryRegistry =
64
+ new PreloadableQueryRegistry();
64
65
 
65
66
  module.exports = preloadableQueryRegistry;
@@ -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<$ElementType<TQuery, 'response'>> {
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<$ElementType<TQuery, 'response'>> {
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
- RequestIdentifier,
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: $PropertyType<T, 'variables'>,
33
+ variables: T['variables'],
34
34
  cacheConfig?: ?CacheConfig,
35
- ): Promise<$PropertyType<T, 'response'>> {
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');