relay-runtime 7.0.0 → 9.1.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 (157) hide show
  1. package/handlers/RelayDefaultHandlerProvider.js.flow +34 -0
  2. package/handlers/connection/ConnectionHandler.js.flow +549 -0
  3. package/handlers/connection/ConnectionInterface.js.flow +92 -0
  4. package/index.js +1 -1
  5. package/index.js.flow +314 -0
  6. package/lib/handlers/RelayDefaultHandlerProvider.js +3 -2
  7. package/lib/handlers/connection/{RelayConnectionHandler.js → ConnectionHandler.js} +34 -35
  8. package/lib/handlers/connection/{RelayConnectionInterface.js → ConnectionInterface.js} +3 -30
  9. package/lib/index.js +29 -27
  10. package/lib/mutations/RelayDeclarativeMutationConfig.js +30 -52
  11. package/lib/mutations/RelayRecordProxy.js +6 -3
  12. package/lib/mutations/RelayRecordSourceMutator.js +3 -9
  13. package/lib/mutations/RelayRecordSourceProxy.js +21 -24
  14. package/lib/mutations/RelayRecordSourceSelectorProxy.js +18 -14
  15. package/lib/mutations/applyOptimisticMutation.js +2 -1
  16. package/lib/mutations/commitLocalUpdate.js +1 -0
  17. package/lib/mutations/commitMutation.js +26 -8
  18. package/lib/mutations/validateMutation.js +21 -11
  19. package/lib/network/ConvertToExecuteFunction.js +1 -0
  20. package/lib/network/RelayNetwork.js +1 -0
  21. package/lib/network/RelayNetworkTypes.js +1 -0
  22. package/lib/network/RelayObservable.js +10 -9
  23. package/lib/network/RelayQueryResponseCache.js +9 -7
  24. package/lib/query/{RelayModernGraphQLTag.js → GraphQLTag.js} +15 -8
  25. package/lib/query/fetchQuery.js +2 -1
  26. package/lib/query/fetchQueryInternal.js +30 -20
  27. package/lib/store/ClientID.js +1 -0
  28. package/lib/store/DataChecker.js +47 -97
  29. package/lib/store/RelayConcreteVariables.js +7 -2
  30. package/lib/store/RelayModernEnvironment.js +82 -41
  31. package/lib/store/RelayModernFragmentSpecResolver.js +61 -21
  32. package/lib/store/RelayModernOperationDescriptor.js +2 -1
  33. package/lib/store/RelayModernQueryExecutor.js +476 -333
  34. package/lib/store/RelayModernRecord.js +39 -9
  35. package/lib/store/RelayModernSelector.js +2 -1
  36. package/lib/store/RelayModernStore.js +359 -371
  37. package/lib/store/RelayOperationTracker.js +36 -78
  38. package/lib/store/RelayOptimisticRecordSource.js +8 -5
  39. package/lib/store/RelayPublishQueue.js +66 -53
  40. package/lib/store/RelayReader.js +2 -24
  41. package/lib/store/RelayRecordSource.js +3 -9
  42. package/lib/store/RelayRecordSourceMapImpl.js +14 -18
  43. package/lib/store/RelayRecordState.js +1 -0
  44. package/lib/store/RelayReferenceMarker.js +8 -58
  45. package/lib/store/RelayResponseNormalizer.js +15 -144
  46. package/lib/store/RelayStoreTypes.js +1 -0
  47. package/lib/store/RelayStoreUtils.js +34 -10
  48. package/lib/store/StoreInspector.js +11 -5
  49. package/lib/store/ViewerPattern.js +1 -0
  50. package/lib/store/cloneRelayHandleSourceField.js +1 -0
  51. package/lib/store/createFragmentSpecResolver.js +1 -0
  52. package/lib/store/createRelayContext.js +1 -0
  53. package/lib/store/defaultGetDataID.js +1 -0
  54. package/lib/store/hasOverlappingIDs.js +1 -0
  55. package/lib/store/isRelayModernEnvironment.js +1 -0
  56. package/lib/store/normalizeRelayPayload.js +8 -4
  57. package/lib/store/readInlineData.js +2 -1
  58. package/lib/subscription/requestSubscription.js +6 -3
  59. package/lib/util/JSResourceTypes.flow.js +12 -0
  60. package/lib/util/NormalizationNode.js +1 -0
  61. package/lib/util/ReaderNode.js +1 -0
  62. package/lib/util/RelayConcreteNode.js +3 -0
  63. package/lib/util/RelayDefaultHandleKey.js +1 -0
  64. package/lib/util/RelayError.js +2 -1
  65. package/lib/util/RelayFeatureFlags.js +3 -2
  66. package/lib/util/RelayProfiler.js +1 -0
  67. package/lib/util/RelayReplaySubject.js +2 -3
  68. package/lib/util/RelayRuntimeTypes.js +1 -0
  69. package/lib/util/createPayloadFor3DField.js +34 -0
  70. package/lib/util/deepFreeze.js +1 -0
  71. package/lib/util/generateID.js +1 -0
  72. package/lib/util/getFragmentIdentifier.js +1 -0
  73. package/lib/util/getRelayHandleKey.js +1 -0
  74. package/lib/util/getRequestIdentifier.js +1 -0
  75. package/lib/util/isPromise.js +1 -0
  76. package/lib/util/isScalarAndEqual.js +1 -0
  77. package/lib/util/recycleNodesInto.js +1 -0
  78. package/lib/util/resolveImmediate.js +1 -0
  79. package/lib/util/stableCopy.js +1 -0
  80. package/mutations/RelayDeclarativeMutationConfig.js.flow +380 -0
  81. package/mutations/RelayRecordProxy.js.flow +165 -0
  82. package/mutations/RelayRecordSourceMutator.js.flow +238 -0
  83. package/mutations/RelayRecordSourceProxy.js.flow +164 -0
  84. package/mutations/RelayRecordSourceSelectorProxy.js.flow +119 -0
  85. package/mutations/applyOptimisticMutation.js.flow +76 -0
  86. package/mutations/commitLocalUpdate.js.flow +24 -0
  87. package/mutations/commitMutation.js.flow +184 -0
  88. package/mutations/validateMutation.js.flow +211 -0
  89. package/network/ConvertToExecuteFunction.js.flow +49 -0
  90. package/network/RelayNetwork.js.flow +84 -0
  91. package/network/RelayNetworkTypes.js.flow +123 -0
  92. package/network/RelayObservable.js.flow +634 -0
  93. package/network/RelayQueryResponseCache.js.flow +111 -0
  94. package/package.json +1 -1
  95. package/query/GraphQLTag.js.flow +166 -0
  96. package/query/fetchQuery.js.flow +47 -0
  97. package/query/fetchQueryInternal.js.flow +349 -0
  98. package/relay-runtime.js +2 -2
  99. package/relay-runtime.min.js +2 -2
  100. package/store/ClientID.js.flow +43 -0
  101. package/store/DataChecker.js.flow +426 -0
  102. package/store/RelayConcreteVariables.js.flow +96 -0
  103. package/store/RelayModernEnvironment.js.flow +526 -0
  104. package/store/RelayModernFragmentSpecResolver.js.flow +426 -0
  105. package/store/RelayModernOperationDescriptor.js.flow +88 -0
  106. package/store/RelayModernQueryExecutor.js.flow +1327 -0
  107. package/store/RelayModernRecord.js.flow +403 -0
  108. package/store/RelayModernSelector.js.flow +444 -0
  109. package/store/RelayModernStore.js.flow +757 -0
  110. package/store/RelayOperationTracker.js.flow +164 -0
  111. package/store/RelayOptimisticRecordSource.js.flow +119 -0
  112. package/store/RelayPublishQueue.js.flow +401 -0
  113. package/store/RelayReader.js.flow +376 -0
  114. package/store/RelayRecordSource.js.flow +29 -0
  115. package/store/RelayRecordSourceMapImpl.js.flow +87 -0
  116. package/store/RelayRecordState.js.flow +37 -0
  117. package/store/RelayReferenceMarker.js.flow +236 -0
  118. package/store/RelayResponseNormalizer.js.flow +556 -0
  119. package/store/RelayStoreTypes.js.flow +873 -0
  120. package/store/RelayStoreUtils.js.flow +218 -0
  121. package/store/StoreInspector.js.flow +173 -0
  122. package/store/ViewerPattern.js.flow +26 -0
  123. package/store/cloneRelayHandleSourceField.js.flow +66 -0
  124. package/store/createFragmentSpecResolver.js.flow +55 -0
  125. package/store/createRelayContext.js.flow +44 -0
  126. package/store/defaultGetDataID.js.flow +27 -0
  127. package/store/hasOverlappingIDs.js.flow +34 -0
  128. package/store/isRelayModernEnvironment.js.flow +27 -0
  129. package/store/normalizeRelayPayload.js.flow +51 -0
  130. package/store/readInlineData.js.flow +75 -0
  131. package/subscription/requestSubscription.js.flow +100 -0
  132. package/util/JSResourceTypes.flow.js.flow +20 -0
  133. package/util/NormalizationNode.js.flow +191 -0
  134. package/util/ReaderNode.js.flow +208 -0
  135. package/util/RelayConcreteNode.js.flow +80 -0
  136. package/util/RelayDefaultHandleKey.js.flow +17 -0
  137. package/util/RelayError.js.flow +33 -0
  138. package/util/RelayFeatureFlags.js.flow +30 -0
  139. package/util/RelayProfiler.js.flow +284 -0
  140. package/util/RelayReplaySubject.js.flow +134 -0
  141. package/util/RelayRuntimeTypes.js.flow +70 -0
  142. package/util/createPayloadFor3DField.js.flow +43 -0
  143. package/util/deepFreeze.js.flow +36 -0
  144. package/util/generateID.js.flow +21 -0
  145. package/util/getFragmentIdentifier.js.flow +52 -0
  146. package/util/getRelayHandleKey.js.flow +41 -0
  147. package/util/getRequestIdentifier.js.flow +41 -0
  148. package/util/isPromise.js.flow +21 -0
  149. package/util/isScalarAndEqual.js.flow +26 -0
  150. package/util/recycleNodesInto.js.flow +80 -0
  151. package/util/resolveImmediate.js.flow +30 -0
  152. package/util/stableCopy.js.flow +35 -0
  153. package/lib/handlers/RelayDefaultMissingFieldHandlers.js +0 -26
  154. package/lib/store/RelayConnection.js +0 -36
  155. package/lib/store/RelayConnectionResolver.js +0 -177
  156. package/lib/store/RelayRecordSourceObjectImpl.js +0 -78
  157. package/lib/util/getFragmentSpecIdentifier.js +0 -26
package/index.js.flow ADDED
@@ -0,0 +1,314 @@
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 strict-local
8
+ * @format
9
+ */
10
+
11
+ // flowlint ambiguous-object-type:error
12
+
13
+ 'use strict';
14
+
15
+ const ConnectionHandler = require('./handlers/connection/ConnectionHandler');
16
+ const ConnectionInterface = require('./handlers/connection/ConnectionInterface');
17
+ const GraphQLTag = require('./query/GraphQLTag');
18
+ const RelayConcreteNode = require('./util/RelayConcreteNode');
19
+ const RelayConcreteVariables = require('./store/RelayConcreteVariables');
20
+ const RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
21
+ const RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
22
+ const RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
23
+ const RelayError = require('./util/RelayError');
24
+ const RelayFeatureFlags = require('./util/RelayFeatureFlags');
25
+ const RelayModernEnvironment = require('./store/RelayModernEnvironment');
26
+ const RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');
27
+ const RelayModernRecord = require('./store/RelayModernRecord');
28
+ const RelayModernSelector = require('./store/RelayModernSelector');
29
+ const RelayModernStore = require('./store/RelayModernStore');
30
+ const RelayNetwork = require('./network/RelayNetwork');
31
+ const RelayObservable = require('./network/RelayObservable');
32
+ const RelayOperationTracker = require('./store/RelayOperationTracker');
33
+ const RelayProfiler = require('./util/RelayProfiler');
34
+ const RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
35
+ const RelayRecordSource = require('./store/RelayRecordSource');
36
+ const RelayReplaySubject = require('./util/RelayReplaySubject');
37
+ const RelayStoreUtils = require('./store/RelayStoreUtils');
38
+ const ViewerPattern = require('./store/ViewerPattern');
39
+
40
+ const applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
41
+ const commitLocalUpdate = require('./mutations/commitLocalUpdate');
42
+ const commitMutation = require('./mutations/commitMutation');
43
+ const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
44
+ const createPayloadFor3DField = require('./util/createPayloadFor3DField');
45
+ const createRelayContext = require('./store/createRelayContext');
46
+ const deepFreeze = require('./util/deepFreeze');
47
+ const fetchQuery = require('./query/fetchQuery');
48
+ const fetchQueryInternal = require('./query/fetchQueryInternal');
49
+ const getFragmentIdentifier = require('./util/getFragmentIdentifier');
50
+ const getRelayHandleKey = require('./util/getRelayHandleKey');
51
+ const getRequestIdentifier = require('./util/getRequestIdentifier');
52
+ const isPromise = require('./util/isPromise');
53
+ const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
54
+ const isScalarAndEqual = require('./util/isScalarAndEqual');
55
+ const readInlineData = require('./store/readInlineData');
56
+ const recycleNodesInto = require('./util/recycleNodesInto');
57
+ const requestSubscription = require('./subscription/requestSubscription');
58
+ const stableCopy = require('./util/stableCopy');
59
+
60
+ const {
61
+ generateClientID,
62
+ generateUniqueClientID,
63
+ isClientID,
64
+ } = require('./store/ClientID');
65
+
66
+ export type {ConnectionMetadata} from './handlers/connection/ConnectionHandler';
67
+ export type {
68
+ EdgeRecord,
69
+ PageInfo,
70
+ } from './handlers/connection/ConnectionInterface';
71
+ export type {
72
+ DeclarativeMutationConfig,
73
+ MutationType,
74
+ RangeBehaviors,
75
+ RangeOperation,
76
+ } from './mutations/RelayDeclarativeMutationConfig';
77
+ export type {OptimisticMutationConfig} from './mutations/applyOptimisticMutation';
78
+ export type {
79
+ DEPRECATED_MutationConfig,
80
+ MutationConfig,
81
+ MutationParameters,
82
+ } from './mutations/commitMutation';
83
+ export type {
84
+ ExecuteFunction,
85
+ FetchFunction,
86
+ GraphQLResponse,
87
+ GraphQLResponseWithData,
88
+ GraphQLResponseWithoutData,
89
+ GraphQLSingularResponse,
90
+ INetwork,
91
+ LogRequestInfoFunction,
92
+ PayloadData,
93
+ PayloadError,
94
+ SubscribeFunction,
95
+ Uploadable,
96
+ UploadableMap,
97
+ } from './network/RelayNetworkTypes';
98
+ export type {
99
+ ObservableFromValue,
100
+ Observer,
101
+ Subscribable,
102
+ Subscription,
103
+ } from './network/RelayObservable';
104
+ export type {GraphQLTaggedNode} from './query/GraphQLTag';
105
+ export type {EnvironmentConfig} from './store/RelayModernEnvironment';
106
+ export type {TaskScheduler} from './store/RelayModernQueryExecutor';
107
+ export type {RecordState} from './store/RelayRecordState';
108
+ export type {
109
+ FragmentMap,
110
+ FragmentPointer,
111
+ FragmentReference,
112
+ FragmentSpecResolver,
113
+ HandleFieldPayload,
114
+ IEnvironment,
115
+ InvalidationState,
116
+ LogEvent,
117
+ LogFunction,
118
+ MissingFieldHandler,
119
+ ModuleImportPointer,
120
+ NormalizationSelector,
121
+ OperationAvailability,
122
+ OperationDescriptor,
123
+ OperationLoader,
124
+ OperationTracker,
125
+ OptimisticResponseConfig,
126
+ OptimisticUpdate,
127
+ OptimisticUpdateFunction,
128
+ PluralReaderSelector,
129
+ Props,
130
+ PublishQueue,
131
+ ReaderSelector,
132
+ ReadOnlyRecordProxy,
133
+ RecordProxy,
134
+ RecordSourceProxy,
135
+ RecordSourceSelectorProxy,
136
+ RelayContext,
137
+ RequestDescriptor,
138
+ SelectorData,
139
+ SelectorStoreUpdater,
140
+ SingularReaderSelector,
141
+ Snapshot,
142
+ StoreUpdater,
143
+ } from './store/RelayStoreTypes';
144
+ export type {GraphQLSubscriptionConfig} from './subscription/requestSubscription';
145
+ export type {JSResourceReference} from './util/JSResourceTypes.flow';
146
+ export type {
147
+ NormalizationArgument,
148
+ NormalizationDefer,
149
+ NormalizationField,
150
+ NormalizationLinkedField,
151
+ NormalizationLinkedHandle,
152
+ NormalizationLocalArgumentDefinition,
153
+ NormalizationModuleImport,
154
+ NormalizationScalarField,
155
+ NormalizationSelection,
156
+ NormalizationSplitOperation,
157
+ NormalizationStream,
158
+ } from './util/NormalizationNode';
159
+ export type {NormalizationOperation} from './util/NormalizationNode';
160
+ export type {
161
+ ReaderArgument,
162
+ ReaderArgumentDefinition,
163
+ ReaderField,
164
+ ReaderFragment,
165
+ ReaderInlineDataFragment,
166
+ ReaderInlineDataFragmentSpread,
167
+ ReaderLinkedField,
168
+ ReaderModuleImport,
169
+ ReaderPaginationMetadata,
170
+ ReaderRefetchableFragment,
171
+ ReaderRefetchMetadata,
172
+ ReaderScalarField,
173
+ ReaderSelection,
174
+ } from './util/ReaderNode';
175
+ export type {
176
+ ConcreteRequest,
177
+ GeneratedNode,
178
+ RequestParameters,
179
+ } from './util/RelayConcreteNode';
180
+ export type {
181
+ CacheConfig,
182
+ DataID,
183
+ Disposable,
184
+ FetchPolicy,
185
+ FetchQueryFetchPolicy,
186
+ OperationType,
187
+ RenderPolicy,
188
+ Variables,
189
+ } from './util/RelayRuntimeTypes';
190
+ export type {Local3DPayload} from './util/createPayloadFor3DField';
191
+
192
+ // As early as possible, check for the existence of the JavaScript globals which
193
+ // Relay Runtime relies upon, and produce a clear message if they do not exist.
194
+ if (__DEV__) {
195
+ const mapStr = typeof Map !== 'function' ? 'Map' : null;
196
+ const setStr = typeof Set !== 'function' ? 'Set' : null;
197
+ const promiseStr = typeof Promise !== 'function' ? 'Promise' : null;
198
+ const objStr = typeof Object.assign !== 'function' ? 'Object.assign' : null;
199
+ if (mapStr || setStr || promiseStr || objStr) {
200
+ throw new Error(
201
+ `relay-runtime requires ${[mapStr, setStr, promiseStr, objStr]
202
+ .filter(Boolean)
203
+ .join(', and ')} to exist. ` +
204
+ 'Use a polyfill to provide these for older browsers.',
205
+ );
206
+ }
207
+ }
208
+
209
+ /**
210
+ * The public interface to Relay Runtime.
211
+ */
212
+ module.exports = {
213
+ // Core API
214
+ Environment: RelayModernEnvironment,
215
+ Network: RelayNetwork,
216
+ Observable: RelayObservable,
217
+ QueryResponseCache: RelayQueryResponseCache,
218
+ RecordSource: RelayRecordSource,
219
+ Record: RelayModernRecord,
220
+ ReplaySubject: RelayReplaySubject,
221
+ Store: RelayModernStore,
222
+
223
+ areEqualSelectors: RelayModernSelector.areEqualSelectors,
224
+ createFragmentSpecResolver: createFragmentSpecResolver,
225
+ createNormalizationSelector: RelayModernSelector.createNormalizationSelector,
226
+ createOperationDescriptor:
227
+ RelayModernOperationDescriptor.createOperationDescriptor,
228
+ createReaderSelector: RelayModernSelector.createReaderSelector,
229
+ createRequestDescriptor:
230
+ RelayModernOperationDescriptor.createRequestDescriptor,
231
+ getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,
232
+ getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,
233
+ getFragment: GraphQLTag.getFragment,
234
+ getInlineDataFragment: GraphQLTag.getInlineDataFragment,
235
+ getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,
236
+ getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,
237
+ getPaginationFragment: GraphQLTag.getPaginationFragment,
238
+ getPluralSelector: RelayModernSelector.getPluralSelector,
239
+ getRefetchableFragment: GraphQLTag.getRefetchableFragment,
240
+ getRequest: GraphQLTag.getRequest,
241
+ getRequestIdentifier: getRequestIdentifier,
242
+ getSelector: RelayModernSelector.getSelector,
243
+ getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,
244
+ getSingularSelector: RelayModernSelector.getSingularSelector,
245
+ getStorageKey: RelayStoreUtils.getStorageKey,
246
+ getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,
247
+ getVariablesFromObject: RelayModernSelector.getVariablesFromObject,
248
+ getVariablesFromPluralFragment:
249
+ RelayModernSelector.getVariablesFromPluralFragment,
250
+ getVariablesFromSingularFragment:
251
+ RelayModernSelector.getVariablesFromSingularFragment,
252
+ graphql: GraphQLTag.graphql,
253
+ readInlineData,
254
+
255
+ // Declarative mutation API
256
+ MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,
257
+ RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,
258
+
259
+ // Extensions
260
+ DefaultHandlerProvider: RelayDefaultHandlerProvider,
261
+ ConnectionHandler,
262
+ VIEWER_ID: ViewerPattern.VIEWER_ID,
263
+ VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,
264
+
265
+ // Helpers (can be implemented via the above API)
266
+ applyOptimisticMutation,
267
+ commitLocalUpdate,
268
+ commitMutation,
269
+ fetchQuery,
270
+ isRelayModernEnvironment,
271
+ requestSubscription,
272
+
273
+ // Configuration interface for legacy or special uses
274
+ ConnectionInterface,
275
+
276
+ // Utilities
277
+ RelayProfiler: RelayProfiler,
278
+ createPayloadFor3DField: createPayloadFor3DField,
279
+
280
+ // INTERNAL-ONLY: These exports might be removed at any point.
281
+ RelayConcreteNode: RelayConcreteNode,
282
+ RelayError: RelayError,
283
+ RelayFeatureFlags: RelayFeatureFlags,
284
+ DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,
285
+ FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,
286
+ FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,
287
+ ID_KEY: RelayStoreUtils.ID_KEY,
288
+ REF_KEY: RelayStoreUtils.REF_KEY,
289
+ REFS_KEY: RelayStoreUtils.REFS_KEY,
290
+ ROOT_ID: RelayStoreUtils.ROOT_ID,
291
+ ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,
292
+ TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,
293
+
294
+ deepFreeze: deepFreeze,
295
+ generateClientID: generateClientID,
296
+ generateUniqueClientID: generateUniqueClientID,
297
+ getRelayHandleKey: getRelayHandleKey,
298
+ isClientID: isClientID,
299
+ isPromise: isPromise,
300
+ isScalarAndEqual: isScalarAndEqual,
301
+ recycleNodesInto: recycleNodesInto,
302
+ stableCopy: stableCopy,
303
+ getFragmentIdentifier: getFragmentIdentifier,
304
+ __internal: {
305
+ OperationTracker: RelayOperationTracker,
306
+ createRelayContext: createRelayContext,
307
+ getOperationVariables: RelayConcreteVariables.getOperationVariables,
308
+ fetchQuery: fetchQueryInternal.fetchQuery,
309
+ fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
310
+ getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
311
+ getObservableForActiveRequest:
312
+ fetchQueryInternal.getObservableForActiveRequest,
313
+ },
314
+ };
@@ -7,16 +7,17 @@
7
7
  *
8
8
  * @format
9
9
  */
10
+ // flowlint ambiguous-object-type:error
10
11
  'use strict';
11
12
 
12
- var RelayConnectionHandler = require('./connection/RelayConnectionHandler');
13
+ var ConnectionHandler = require('./connection/ConnectionHandler');
13
14
 
14
15
  var invariant = require("fbjs/lib/invariant");
15
16
 
16
17
  function RelayDefaultHandlerProvider(handle) {
17
18
  switch (handle) {
18
19
  case 'connection':
19
- return RelayConnectionHandler;
20
+ return ConnectionHandler;
20
21
  }
21
22
 
22
23
  !false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayDefaultHandlerProvider: No handler provided for `%s`.', handle) : invariant(false) : void 0;
@@ -7,9 +7,10 @@
7
7
  *
8
8
  * @format
9
9
  */
10
+ // flowlint ambiguous-object-type:error
10
11
  'use strict';
11
12
 
12
- var RelayConnectionInterface = require('./RelayConnectionInterface');
13
+ var ConnectionInterface = require('./ConnectionInterface');
13
14
 
14
15
  var getRelayHandleKey = require('../../util/getRelayHandleKey');
15
16
 
@@ -32,22 +33,20 @@ var NEXT_EDGE_INDEX = '__connection_next_edge_index';
32
33
  */
33
34
 
34
35
  function update(store, payload) {
35
- var _clientConnectionFiel;
36
-
37
36
  var record = store.get(payload.dataID);
38
37
 
39
38
  if (!record) {
40
39
  return;
41
40
  }
42
41
 
43
- var _RelayConnectionInter = RelayConnectionInterface.get(),
44
- EDGES = _RelayConnectionInter.EDGES,
45
- END_CURSOR = _RelayConnectionInter.END_CURSOR,
46
- HAS_NEXT_PAGE = _RelayConnectionInter.HAS_NEXT_PAGE,
47
- HAS_PREV_PAGE = _RelayConnectionInter.HAS_PREV_PAGE,
48
- PAGE_INFO = _RelayConnectionInter.PAGE_INFO,
49
- PAGE_INFO_TYPE = _RelayConnectionInter.PAGE_INFO_TYPE,
50
- START_CURSOR = _RelayConnectionInter.START_CURSOR;
42
+ var _ConnectionInterface$ = ConnectionInterface.get(),
43
+ EDGES = _ConnectionInterface$.EDGES,
44
+ END_CURSOR = _ConnectionInterface$.END_CURSOR,
45
+ HAS_NEXT_PAGE = _ConnectionInterface$.HAS_NEXT_PAGE,
46
+ HAS_PREV_PAGE = _ConnectionInterface$.HAS_PREV_PAGE,
47
+ PAGE_INFO = _ConnectionInterface$.PAGE_INFO,
48
+ PAGE_INFO_TYPE = _ConnectionInterface$.PAGE_INFO_TYPE,
49
+ START_CURSOR = _ConnectionInterface$.START_CURSOR;
51
50
 
52
51
  var serverConnection = record.getLinkedRecord(payload.fieldKey);
53
52
  var serverPageInfo = serverConnection && serverConnection.getLinkedRecord(PAGE_INFO);
@@ -63,7 +62,7 @@ function update(store, payload) {
63
62
 
64
63
  var clientConnectionID = generateClientID(record.getDataID(), payload.handleKey);
65
64
  var clientConnectionField = record.getLinkedRecord(payload.handleKey);
66
- var clientConnection = (_clientConnectionFiel = clientConnectionField) !== null && _clientConnectionFiel !== void 0 ? _clientConnectionFiel : store.get(clientConnectionID);
65
+ var clientConnection = clientConnectionField !== null && clientConnectionField !== void 0 ? clientConnectionField : store.get(clientConnectionID);
67
66
  var clientPageInfo = clientConnection && clientConnection.getLinkedRecord(PAGE_INFO);
68
67
 
69
68
  if (!clientConnection) {
@@ -138,7 +137,7 @@ function update(store, payload) {
138
137
  mergeEdges(prevEdges, nextEdges, nodeIDs);
139
138
  mergeEdges(_serverEdges, nextEdges, nodeIDs);
140
139
  } else {
141
- process.env.NODE_ENV !== "production" ? warning(false, 'RelayConnectionHandler: Unexpected after cursor `%s`, edges must ' + 'be fetched from the end of the list (`%s`).', args.after, clientPageInfo && clientPageInfo.getValue(END_CURSOR)) : void 0;
140
+ process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Unexpected after cursor `%s`, edges must ' + 'be fetched from the end of the list (`%s`).', args.after, clientPageInfo && clientPageInfo.getValue(END_CURSOR)) : void 0;
142
141
  return;
143
142
  }
144
143
  } else if (args.before != null) {
@@ -149,7 +148,7 @@ function update(store, payload) {
149
148
  mergeEdges(_serverEdges, nextEdges, _nodeIDs);
150
149
  mergeEdges(prevEdges, nextEdges, _nodeIDs);
151
150
  } else {
152
- process.env.NODE_ENV !== "production" ? warning(false, 'RelayConnectionHandler: Unexpected before cursor `%s`, edges must ' + 'be fetched from the beginning of the list (`%s`).', args.before, clientPageInfo && clientPageInfo.getValue(START_CURSOR)) : void 0;
151
+ process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Unexpected before cursor `%s`, edges must ' + 'be fetched from the beginning of the list (`%s`).', args.before, clientPageInfo && clientPageInfo.getValue(START_CURSOR)) : void 0;
153
152
  return;
154
153
  }
155
154
  } else {
@@ -220,7 +219,7 @@ function update(store, payload) {
220
219
  * ```
221
220
  * store => {
222
221
  * const user = store.get('<id>');
223
- * const friends = RelayConnectionHandler.getConnection(user, 'FriendsFragment_friends');
222
+ * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');
224
223
  * // Access fields on the connection:
225
224
  * const edges = friends.getLinkedRecords('edges');
226
225
  * }
@@ -264,18 +263,18 @@ function getConnection(record, key, filters) {
264
263
  * ```
265
264
  * store => {
266
265
  * const user = store.get('<id>');
267
- * const friends = RelayConnectionHandler.getConnection(user, 'FriendsFragment_friends');
266
+ * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');
268
267
  * const edge = store.create('<edge-id>', 'FriendsEdge');
269
- * RelayConnectionHandler.insertEdgeAfter(friends, edge);
268
+ * ConnectionHandler.insertEdgeAfter(friends, edge);
270
269
  * }
271
270
  * ```
272
271
  */
273
272
 
274
273
 
275
274
  function insertEdgeAfter(record, newEdge, cursor) {
276
- var _RelayConnectionInter2 = RelayConnectionInterface.get(),
277
- CURSOR = _RelayConnectionInter2.CURSOR,
278
- EDGES = _RelayConnectionInter2.EDGES;
275
+ var _ConnectionInterface$2 = ConnectionInterface.get(),
276
+ CURSOR = _ConnectionInterface$2.CURSOR,
277
+ EDGES = _ConnectionInterface$2.EDGES;
279
278
 
280
279
  var edges = record.getLinkedRecords(EDGES);
281
280
 
@@ -323,8 +322,8 @@ function insertEdgeAfter(record, newEdge, cursor) {
323
322
 
324
323
 
325
324
  function createEdge(store, record, node, edgeType) {
326
- var _RelayConnectionInter3 = RelayConnectionInterface.get(),
327
- NODE = _RelayConnectionInter3.NODE; // An index-based client ID could easily conflict (unless it was
325
+ var _ConnectionInterface$3 = ConnectionInterface.get(),
326
+ NODE = _ConnectionInterface$3.NODE; // An index-based client ID could easily conflict (unless it was
328
327
  // auto-incrementing, but there is nowhere to the store the id)
329
328
  // Instead, construct a client ID based on the connection ID and node ID,
330
329
  // which will only conflict if the same node is added to the same connection
@@ -370,18 +369,18 @@ function createEdge(store, record, node, edgeType) {
370
369
  * ```
371
370
  * store => {
372
371
  * const user = store.get('<id>');
373
- * const friends = RelayConnectionHandler.getConnection(user, 'FriendsFragment_friends');
372
+ * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');
374
373
  * const edge = store.create('<edge-id>', 'FriendsEdge');
375
- * RelayConnectionHandler.insertEdgeBefore(friends, edge);
374
+ * ConnectionHandler.insertEdgeBefore(friends, edge);
376
375
  * }
377
376
  * ```
378
377
  */
379
378
 
380
379
 
381
380
  function insertEdgeBefore(record, newEdge, cursor) {
382
- var _RelayConnectionInter4 = RelayConnectionInterface.get(),
383
- CURSOR = _RelayConnectionInter4.CURSOR,
384
- EDGES = _RelayConnectionInter4.EDGES;
381
+ var _ConnectionInterface$4 = ConnectionInterface.get(),
382
+ CURSOR = _ConnectionInterface$4.CURSOR,
383
+ EDGES = _ConnectionInterface$4.EDGES;
385
384
 
386
385
  var edges = record.getLinkedRecords(EDGES);
387
386
 
@@ -428,9 +427,9 @@ function insertEdgeBefore(record, newEdge, cursor) {
428
427
 
429
428
 
430
429
  function deleteNode(record, nodeID) {
431
- var _RelayConnectionInter5 = RelayConnectionInterface.get(),
432
- EDGES = _RelayConnectionInter5.EDGES,
433
- NODE = _RelayConnectionInter5.NODE;
430
+ var _ConnectionInterface$5 = ConnectionInterface.get(),
431
+ EDGES = _ConnectionInterface$5.EDGES,
432
+ NODE = _ConnectionInterface$5.NODE;
434
433
 
435
434
  var edges = record.getLinkedRecords(EDGES);
436
435
 
@@ -477,11 +476,11 @@ function buildConnectionEdge(store, connection, edge) {
477
476
  return edge;
478
477
  }
479
478
 
480
- var _RelayConnectionInter6 = RelayConnectionInterface.get(),
481
- EDGES = _RelayConnectionInter6.EDGES;
479
+ var _ConnectionInterface$6 = ConnectionInterface.get(),
480
+ EDGES = _ConnectionInterface$6.EDGES;
482
481
 
483
482
  var edgeIndex = connection.getValue(NEXT_EDGE_INDEX);
484
- !(typeof edgeIndex === 'number') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayConnectionHandler: Expected %s to be a number, got `%s`.', NEXT_EDGE_INDEX, edgeIndex) : invariant(false) : void 0;
483
+ !(typeof edgeIndex === 'number') ? process.env.NODE_ENV !== "production" ? invariant(false, 'ConnectionHandler: Expected %s to be a number, got `%s`.', NEXT_EDGE_INDEX, edgeIndex) : invariant(false) : void 0;
485
484
  var edgeID = generateClientID(connection.getDataID(), EDGES, edgeIndex);
486
485
  var connectionEdge = store.create(edgeID, edge.getType());
487
486
  connectionEdge.copyFieldsFrom(edge);
@@ -497,8 +496,8 @@ function buildConnectionEdge(store, connection, edge) {
497
496
 
498
497
 
499
498
  function mergeEdges(sourceEdges, targetEdges, nodeIDs) {
500
- var _RelayConnectionInter7 = RelayConnectionInterface.get(),
501
- NODE = _RelayConnectionInter7.NODE;
499
+ var _ConnectionInterface$7 = ConnectionInterface.get(),
500
+ NODE = _ConnectionInterface$7.NODE;
502
501
 
503
502
  for (var ii = 0; ii < sourceEdges.length; ii++) {
504
503
  var edge = sourceEdges[ii];
@@ -7,12 +7,9 @@
7
7
  *
8
8
  * @format
9
9
  */
10
+ // flowlint ambiguous-object-type:error
10
11
  'use strict';
11
12
 
12
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
13
  var CONNECTION_CALLS = {
17
14
  after: true,
18
15
  before: true,
@@ -21,11 +18,6 @@ var CONNECTION_CALLS = {
21
18
  last: true,
22
19
  surrounds: true
23
20
  };
24
- var REQUIRED_RANGE_CALLS = {
25
- find: true,
26
- first: true,
27
- last: true
28
- };
29
21
  var config = {
30
22
  CLIENT_MUTATION_ID: 'clientMutationId',
31
23
  CURSOR: 'cursor',
@@ -44,7 +36,7 @@ var config = {
44
36
  * Defines logic relevant to the informal "Connection" GraphQL interface.
45
37
  */
46
38
 
47
- var RelayConnectionInterface = {
39
+ var ConnectionInterface = {
48
40
  inject: function inject(newConfig) {
49
41
  config = newConfig;
50
42
  },
@@ -59,25 +51,6 @@ var RelayConnectionInterface = {
59
51
  */
60
52
  isConnectionCall: function isConnectionCall(call) {
61
53
  return CONNECTION_CALLS.hasOwnProperty(call.name);
62
- },
63
-
64
- /**
65
- * Checks whether a set of calls on a connection supply enough information to
66
- * fetch the range fields (i.e. `edges` and `page_info`).
67
- */
68
- hasRangeCalls: function hasRangeCalls(calls) {
69
- return calls.some(function (call) {
70
- return REQUIRED_RANGE_CALLS.hasOwnProperty(call.name);
71
- });
72
- },
73
-
74
- /**
75
- * Gets a default record representing a connection's `PAGE_INFO`.
76
- */
77
- getDefaultPageInfo: function getDefaultPageInfo() {
78
- var _ref;
79
-
80
- return _ref = {}, (0, _defineProperty2["default"])(_ref, config.END_CURSOR, null), (0, _defineProperty2["default"])(_ref, config.HAS_NEXT_PAGE, false), (0, _defineProperty2["default"])(_ref, config.HAS_PREV_PAGE, false), (0, _defineProperty2["default"])(_ref, config.START_CURSOR, null), _ref;
81
54
  }
82
55
  };
83
- module.exports = RelayConnectionInterface;
56
+ module.exports = ConnectionInterface;