relay-runtime 9.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.
- package/handlers/RelayDefaultHandlerProvider.js.flow +34 -0
- package/handlers/connection/ConnectionHandler.js.flow +549 -0
- package/handlers/connection/ConnectionInterface.js.flow +92 -0
- package/index.js +1 -1
- package/index.js.flow +314 -0
- package/lib/handlers/connection/ConnectionHandler.js +1 -3
- package/lib/index.js +1 -2
- package/lib/mutations/RelayDeclarativeMutationConfig.js +22 -45
- package/lib/mutations/RelayRecordProxy.js +1 -3
- package/lib/mutations/RelayRecordSourceMutator.js +1 -3
- package/lib/mutations/RelayRecordSourceProxy.js +1 -3
- package/lib/mutations/RelayRecordSourceSelectorProxy.js +1 -3
- package/lib/mutations/commitMutation.js +2 -0
- package/lib/mutations/validateMutation.js +13 -4
- package/lib/network/RelayObservable.js +9 -9
- package/lib/network/RelayQueryResponseCache.js +8 -6
- package/lib/query/fetchQueryInternal.js +1 -8
- package/lib/store/DataChecker.js +23 -51
- package/lib/store/RelayConcreteVariables.js +6 -2
- package/lib/store/RelayModernEnvironment.js +30 -12
- package/lib/store/RelayModernFragmentSpecResolver.js +9 -13
- package/lib/store/RelayModernQueryExecutor.js +73 -37
- package/lib/store/RelayModernRecord.js +14 -9
- package/lib/store/RelayModernStore.js +107 -70
- package/lib/store/RelayOperationTracker.js +35 -78
- package/lib/store/RelayOptimisticRecordSource.js +7 -5
- package/lib/store/RelayPublishQueue.js +1 -3
- package/lib/store/RelayReader.js +1 -3
- package/lib/store/RelayRecordSource.js +1 -3
- package/lib/store/RelayRecordSourceMapImpl.js +13 -18
- package/lib/store/RelayReferenceMarker.js +2 -6
- package/lib/store/RelayResponseNormalizer.js +9 -10
- package/lib/store/StoreInspector.js +7 -5
- package/lib/store/normalizeRelayPayload.js +6 -2
- package/lib/subscription/requestSubscription.js +4 -2
- package/lib/util/RelayFeatureFlags.js +1 -1
- package/lib/util/RelayReplaySubject.js +1 -3
- package/lib/util/createPayloadFor3DField.js +7 -2
- package/mutations/RelayDeclarativeMutationConfig.js.flow +380 -0
- package/mutations/RelayRecordProxy.js.flow +165 -0
- package/mutations/RelayRecordSourceMutator.js.flow +238 -0
- package/mutations/RelayRecordSourceProxy.js.flow +164 -0
- package/mutations/RelayRecordSourceSelectorProxy.js.flow +119 -0
- package/mutations/applyOptimisticMutation.js.flow +76 -0
- package/mutations/commitLocalUpdate.js.flow +24 -0
- package/mutations/commitMutation.js.flow +184 -0
- package/mutations/validateMutation.js.flow +211 -0
- package/network/ConvertToExecuteFunction.js.flow +49 -0
- package/network/RelayNetwork.js.flow +84 -0
- package/network/RelayNetworkTypes.js.flow +123 -0
- package/network/RelayObservable.js.flow +634 -0
- package/network/RelayQueryResponseCache.js.flow +111 -0
- package/package.json +1 -1
- package/query/GraphQLTag.js.flow +166 -0
- package/query/fetchQuery.js.flow +47 -0
- package/query/fetchQueryInternal.js.flow +349 -0
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/ClientID.js.flow +43 -0
- package/store/DataChecker.js.flow +426 -0
- package/store/RelayConcreteVariables.js.flow +96 -0
- package/store/RelayModernEnvironment.js.flow +526 -0
- package/store/RelayModernFragmentSpecResolver.js.flow +426 -0
- package/store/RelayModernOperationDescriptor.js.flow +88 -0
- package/store/RelayModernQueryExecutor.js.flow +1327 -0
- package/store/RelayModernRecord.js.flow +403 -0
- package/store/RelayModernSelector.js.flow +444 -0
- package/store/RelayModernStore.js.flow +757 -0
- package/store/RelayOperationTracker.js.flow +164 -0
- package/store/RelayOptimisticRecordSource.js.flow +119 -0
- package/store/RelayPublishQueue.js.flow +401 -0
- package/store/RelayReader.js.flow +376 -0
- package/store/RelayRecordSource.js.flow +29 -0
- package/store/RelayRecordSourceMapImpl.js.flow +87 -0
- package/store/RelayRecordState.js.flow +37 -0
- package/store/RelayReferenceMarker.js.flow +236 -0
- package/store/RelayResponseNormalizer.js.flow +556 -0
- package/store/RelayStoreTypes.js.flow +873 -0
- package/store/RelayStoreUtils.js.flow +218 -0
- package/store/StoreInspector.js.flow +173 -0
- package/store/ViewerPattern.js.flow +26 -0
- package/store/cloneRelayHandleSourceField.js.flow +66 -0
- package/store/createFragmentSpecResolver.js.flow +55 -0
- package/store/createRelayContext.js.flow +44 -0
- package/store/defaultGetDataID.js.flow +27 -0
- package/store/hasOverlappingIDs.js.flow +34 -0
- package/store/isRelayModernEnvironment.js.flow +27 -0
- package/store/normalizeRelayPayload.js.flow +51 -0
- package/store/readInlineData.js.flow +75 -0
- package/subscription/requestSubscription.js.flow +100 -0
- package/util/JSResourceTypes.flow.js.flow +20 -0
- package/util/NormalizationNode.js.flow +191 -0
- package/util/ReaderNode.js.flow +208 -0
- package/util/RelayConcreteNode.js.flow +80 -0
- package/util/RelayDefaultHandleKey.js.flow +17 -0
- package/util/RelayError.js.flow +33 -0
- package/util/RelayFeatureFlags.js.flow +30 -0
- package/util/RelayProfiler.js.flow +284 -0
- package/util/RelayReplaySubject.js.flow +134 -0
- package/util/RelayRuntimeTypes.js.flow +70 -0
- package/util/createPayloadFor3DField.js.flow +43 -0
- package/util/deepFreeze.js.flow +36 -0
- package/util/generateID.js.flow +21 -0
- package/util/getFragmentIdentifier.js.flow +52 -0
- package/util/getRelayHandleKey.js.flow +41 -0
- package/util/getRequestIdentifier.js.flow +41 -0
- package/util/isPromise.js.flow +21 -0
- package/util/isScalarAndEqual.js.flow +26 -0
- package/util/recycleNodesInto.js.flow +80 -0
- package/util/resolveImmediate.js.flow +30 -0
- package/util/stableCopy.js.flow +35 -0
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
|
+
};
|
|
@@ -33,8 +33,6 @@ var NEXT_EDGE_INDEX = '__connection_next_edge_index';
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
function update(store, payload) {
|
|
36
|
-
var _clientConnectionFiel;
|
|
37
|
-
|
|
38
36
|
var record = store.get(payload.dataID);
|
|
39
37
|
|
|
40
38
|
if (!record) {
|
|
@@ -64,7 +62,7 @@ function update(store, payload) {
|
|
|
64
62
|
|
|
65
63
|
var clientConnectionID = generateClientID(record.getDataID(), payload.handleKey);
|
|
66
64
|
var clientConnectionField = record.getLinkedRecord(payload.handleKey);
|
|
67
|
-
var clientConnection =
|
|
65
|
+
var clientConnection = clientConnectionField !== null && clientConnectionField !== void 0 ? clientConnectionField : store.get(clientConnectionID);
|
|
68
66
|
var clientPageInfo = clientConnection && clientConnection.getLinkedRecord(PAGE_INFO);
|
|
69
67
|
|
|
70
68
|
if (!clientConnection) {
|
package/lib/index.js
CHANGED
|
@@ -205,7 +205,6 @@ module.exports = {
|
|
|
205
205
|
fetchQuery: fetchQueryInternal.fetchQuery,
|
|
206
206
|
fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
|
|
207
207
|
getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
|
|
208
|
-
getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest
|
|
209
|
-
isRequestActive: fetchQueryInternal.isRequestActive
|
|
208
|
+
getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest
|
|
210
209
|
}
|
|
211
210
|
};
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
14
|
+
|
|
15
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
+
|
|
17
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
18
|
+
|
|
13
19
|
var ConnectionHandler = require('../handlers/connection/ConnectionHandler');
|
|
14
20
|
|
|
15
21
|
var warning = require("fbjs/lib/warning");
|
|
@@ -129,12 +135,12 @@ function rangeAdd(config, request) {
|
|
|
129
135
|
}
|
|
130
136
|
|
|
131
137
|
var serverEdge = payload.getLinkedRecord(edgeName);
|
|
132
|
-
|
|
133
|
-
var
|
|
134
|
-
|
|
138
|
+
|
|
139
|
+
var _iterator = _createForOfIteratorHelper(connectionInfo),
|
|
140
|
+
_step;
|
|
135
141
|
|
|
136
142
|
try {
|
|
137
|
-
for (
|
|
143
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
138
144
|
var info = _step.value;
|
|
139
145
|
|
|
140
146
|
if (!serverEdge) {
|
|
@@ -168,18 +174,9 @@ function rangeAdd(config, request) {
|
|
|
168
174
|
}
|
|
169
175
|
}
|
|
170
176
|
} catch (err) {
|
|
171
|
-
|
|
172
|
-
_iteratorError = err;
|
|
177
|
+
_iterator.e(err);
|
|
173
178
|
} finally {
|
|
174
|
-
|
|
175
|
-
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
|
176
|
-
_iterator["return"]();
|
|
177
|
-
}
|
|
178
|
-
} finally {
|
|
179
|
-
if (_didIteratorError) {
|
|
180
|
-
throw _iteratorError;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
179
|
+
_iterator.f();
|
|
183
180
|
}
|
|
184
181
|
};
|
|
185
182
|
}
|
|
@@ -210,12 +207,11 @@ function rangeDelete(config, request) {
|
|
|
210
207
|
var deletedIDField = data[rootField];
|
|
211
208
|
|
|
212
209
|
if (deletedIDField && Array.isArray(deletedIDFieldName)) {
|
|
213
|
-
var
|
|
214
|
-
|
|
215
|
-
var _iteratorError2 = undefined;
|
|
210
|
+
var _iterator2 = _createForOfIteratorHelper(deletedIDFieldName),
|
|
211
|
+
_step2;
|
|
216
212
|
|
|
217
213
|
try {
|
|
218
|
-
for (
|
|
214
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
219
215
|
var eachField = _step2.value;
|
|
220
216
|
|
|
221
217
|
if (deletedIDField && typeof deletedIDField === 'object') {
|
|
@@ -223,18 +219,9 @@ function rangeDelete(config, request) {
|
|
|
223
219
|
}
|
|
224
220
|
}
|
|
225
221
|
} catch (err) {
|
|
226
|
-
|
|
227
|
-
_iteratorError2 = err;
|
|
222
|
+
_iterator2.e(err);
|
|
228
223
|
} finally {
|
|
229
|
-
|
|
230
|
-
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
|
231
|
-
_iterator2["return"]();
|
|
232
|
-
}
|
|
233
|
-
} finally {
|
|
234
|
-
if (_didIteratorError2) {
|
|
235
|
-
throw _iteratorError2;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
224
|
+
_iterator2.f();
|
|
238
225
|
}
|
|
239
226
|
|
|
240
227
|
if (Array.isArray(deletedIDField)) {
|
|
@@ -291,9 +278,8 @@ function deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs
|
|
|
291
278
|
return;
|
|
292
279
|
}
|
|
293
280
|
|
|
294
|
-
var
|
|
295
|
-
|
|
296
|
-
var _iteratorError3 = undefined;
|
|
281
|
+
var _iterator3 = _createForOfIteratorHelper(connectionKeys),
|
|
282
|
+
_step3;
|
|
297
283
|
|
|
298
284
|
try {
|
|
299
285
|
var _loop = function _loop() {
|
|
@@ -307,22 +293,13 @@ function deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs
|
|
|
307
293
|
}
|
|
308
294
|
};
|
|
309
295
|
|
|
310
|
-
for (
|
|
296
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
311
297
|
_loop();
|
|
312
298
|
}
|
|
313
299
|
} catch (err) {
|
|
314
|
-
|
|
315
|
-
_iteratorError3 = err;
|
|
300
|
+
_iterator3.e(err);
|
|
316
301
|
} finally {
|
|
317
|
-
|
|
318
|
-
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
|
319
|
-
_iterator3["return"]();
|
|
320
|
-
}
|
|
321
|
-
} finally {
|
|
322
|
-
if (_didIteratorError3) {
|
|
323
|
-
throw _iteratorError3;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
302
|
+
_iterator3.f();
|
|
326
303
|
}
|
|
327
304
|
}
|
|
328
305
|
|
|
@@ -24,9 +24,7 @@ var _require2 = require('../store/RelayStoreUtils'),
|
|
|
24
24
|
* A helper class for manipulating a given record from a record source via an
|
|
25
25
|
* imperative/OO-style API.
|
|
26
26
|
*/
|
|
27
|
-
var RelayRecordProxy =
|
|
28
|
-
/*#__PURE__*/
|
|
29
|
-
function () {
|
|
27
|
+
var RelayRecordProxy = /*#__PURE__*/function () {
|
|
30
28
|
function RelayRecordProxy(source, mutator, dataID) {
|
|
31
29
|
this._dataID = dataID;
|
|
32
30
|
this._mutator = mutator;
|
|
@@ -29,9 +29,7 @@ var _require = require('../store/RelayRecordState'),
|
|
|
29
29
|
* - Modifications cause a fresh version of a record to be created in `sink`.
|
|
30
30
|
* These sink records contain only modified fields.
|
|
31
31
|
*/
|
|
32
|
-
var RelayRecordSourceMutator =
|
|
33
|
-
/*#__PURE__*/
|
|
34
|
-
function () {
|
|
32
|
+
var RelayRecordSourceMutator = /*#__PURE__*/function () {
|
|
35
33
|
function RelayRecordSourceMutator(base, sink) {
|
|
36
34
|
this.__sources = [sink, base];
|
|
37
35
|
this._base = base;
|
|
@@ -29,9 +29,7 @@ var _require2 = require('../store/RelayStoreUtils'),
|
|
|
29
29
|
*
|
|
30
30
|
* A helper for manipulating a `RecordSource` via an imperative/OO-style API.
|
|
31
31
|
*/
|
|
32
|
-
var RelayRecordSourceProxy =
|
|
33
|
-
/*#__PURE__*/
|
|
34
|
-
function () {
|
|
32
|
+
var RelayRecordSourceProxy = /*#__PURE__*/function () {
|
|
35
33
|
function RelayRecordSourceProxy(mutator, getDataID, handlerProvider) {
|
|
36
34
|
this.__mutator = mutator;
|
|
37
35
|
this._handlerProvider = handlerProvider || null;
|
|
@@ -24,9 +24,7 @@ var _require = require('../store/RelayStoreUtils'),
|
|
|
24
24
|
* complex arguments and it can be tedious to re-construct the correct sets of
|
|
25
25
|
* arguments to pass to e.g. `getRoot().getLinkedRecord()`.
|
|
26
26
|
*/
|
|
27
|
-
var RelayRecordSourceSelectorProxy =
|
|
28
|
-
/*#__PURE__*/
|
|
29
|
-
function () {
|
|
27
|
+
var RelayRecordSourceSelectorProxy = /*#__PURE__*/function () {
|
|
30
28
|
function RelayRecordSourceSelectorProxy(mutator, recordSource, readSelector) {
|
|
31
29
|
this.__mutator = mutator;
|
|
32
30
|
this.__recordSource = recordSource;
|
|
@@ -55,6 +55,7 @@ function commitMutation(environment, config) {
|
|
|
55
55
|
optimisticUpdater = config.optimisticUpdater,
|
|
56
56
|
updater = config.updater;
|
|
57
57
|
var configs = config.configs,
|
|
58
|
+
cacheConfig = config.cacheConfig,
|
|
58
59
|
onError = config.onError,
|
|
59
60
|
onUnsubscribe = config.onUnsubscribe,
|
|
60
61
|
variables = config.variables,
|
|
@@ -81,6 +82,7 @@ function commitMutation(environment, config) {
|
|
|
81
82
|
|
|
82
83
|
var errors = [];
|
|
83
84
|
var subscription = environment.executeMutation({
|
|
85
|
+
cacheConfig: cacheConfig,
|
|
84
86
|
operation: operation,
|
|
85
87
|
optimisticResponse: optimisticResponse,
|
|
86
88
|
optimisticUpdater: optimisticUpdater,
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
20
|
|
|
17
21
|
var warning = require("fbjs/lib/warning");
|
|
18
22
|
|
|
@@ -77,6 +81,11 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
77
81
|
return;
|
|
78
82
|
|
|
79
83
|
case 'ClientExtension':
|
|
84
|
+
selection.selections.forEach(function (subselection) {
|
|
85
|
+
validateSelection(optimisticResponse, subselection, context);
|
|
86
|
+
});
|
|
87
|
+
return;
|
|
88
|
+
|
|
80
89
|
case 'ModuleImport':
|
|
81
90
|
case 'LinkedHandle':
|
|
82
91
|
case 'ScalarHandle':
|
|
@@ -117,7 +126,7 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
117
126
|
if (Array.isArray(optimisticResponse[fieldName])) {
|
|
118
127
|
optimisticResponse[fieldName].forEach(function (r) {
|
|
119
128
|
if (r !== null) {
|
|
120
|
-
validateSelections(r, selections, (
|
|
129
|
+
validateSelections(r, selections, _objectSpread({}, context, {
|
|
121
130
|
path: path
|
|
122
131
|
}));
|
|
123
132
|
}
|
|
@@ -129,7 +138,7 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
129
138
|
}
|
|
130
139
|
} else {
|
|
131
140
|
if (optimisticResponse[fieldName] instanceof Object) {
|
|
132
|
-
validateSelections(optimisticResponse[fieldName], selections, (
|
|
141
|
+
validateSelections(optimisticResponse[fieldName], selections, _objectSpread({}, context, {
|
|
133
142
|
path: path
|
|
134
143
|
}));
|
|
135
144
|
return;
|
|
@@ -162,7 +171,7 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
162
171
|
}
|
|
163
172
|
|
|
164
173
|
if (value instanceof Object) {
|
|
165
|
-
validateOptimisticResponse(value, (
|
|
174
|
+
validateOptimisticResponse(value, _objectSpread({}, context, {
|
|
166
175
|
path: path
|
|
167
176
|
}));
|
|
168
177
|
}
|
|
@@ -30,9 +30,7 @@ var hostReportError = swallowError;
|
|
|
30
30
|
* ESObservable: https://github.com/tc39/proposal-observable
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
-
var RelayObservable =
|
|
34
|
-
/*#__PURE__*/
|
|
35
|
-
function () {
|
|
33
|
+
var RelayObservable = /*#__PURE__*/function () {
|
|
36
34
|
RelayObservable.create = function create(source) {
|
|
37
35
|
return new RelayObservable(source);
|
|
38
36
|
} // Use RelayObservable.create()
|
|
@@ -408,6 +406,9 @@ function () {
|
|
|
408
406
|
/**
|
|
409
407
|
* Returns a Promise which resolves when this Observable yields a first value
|
|
410
408
|
* or when it completes with no value.
|
|
409
|
+
*
|
|
410
|
+
* NOTE: The source Observable is *NOT* canceled when the returned Promise
|
|
411
|
+
* resolves. The Observable is always run to completion.
|
|
411
412
|
*/
|
|
412
413
|
;
|
|
413
414
|
|
|
@@ -415,15 +416,14 @@ function () {
|
|
|
415
416
|
var _this9 = this;
|
|
416
417
|
|
|
417
418
|
return new Promise(function (resolve, reject) {
|
|
418
|
-
var
|
|
419
|
+
var resolved = false;
|
|
419
420
|
|
|
420
421
|
_this9.subscribe({
|
|
421
|
-
start: function start(sub) {
|
|
422
|
-
subscription = sub;
|
|
423
|
-
},
|
|
424
422
|
next: function next(val) {
|
|
425
|
-
|
|
426
|
-
|
|
423
|
+
if (!resolved) {
|
|
424
|
+
resolved = true;
|
|
425
|
+
resolve(val);
|
|
426
|
+
}
|
|
427
427
|
},
|
|
428
428
|
error: reject,
|
|
429
429
|
complete: resolve
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
20
|
|
|
17
21
|
var invariant = require("fbjs/lib/invariant");
|
|
18
22
|
|
|
@@ -23,9 +27,7 @@ var stableCopy = require('../util/stableCopy');
|
|
|
23
27
|
* - `get` with TTL
|
|
24
28
|
* - cache size limiting, with least-recently *updated* entries purged first
|
|
25
29
|
*/
|
|
26
|
-
var RelayQueryResponseCache =
|
|
27
|
-
/*#__PURE__*/
|
|
28
|
-
function () {
|
|
30
|
+
var RelayQueryResponseCache = /*#__PURE__*/function () {
|
|
29
31
|
function RelayQueryResponseCache(_ref) {
|
|
30
32
|
var size = _ref.size,
|
|
31
33
|
ttl = _ref.ttl;
|
|
@@ -55,8 +57,8 @@ function () {
|
|
|
55
57
|
|
|
56
58
|
var response = this._responses.get(cacheKey);
|
|
57
59
|
|
|
58
|
-
return response != null ? (
|
|
59
|
-
extensions: (
|
|
60
|
+
return response != null ? _objectSpread({}, response.payload, {
|
|
61
|
+
extensions: _objectSpread({}, response.payload.extensions, {
|
|
60
62
|
cacheTimestamp: response.fetchTime
|
|
61
63
|
})
|
|
62
64
|
}) : null;
|