react-relay 2.0.0-rc.2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. package/index.js +2 -2
  2. package/lib/ReactRelayContext.js +6 -3
  3. package/lib/ReactRelayFragmentContainer.js +48 -46
  4. package/lib/ReactRelayFragmentMockRenderer.js +5 -1
  5. package/lib/ReactRelayPaginationContainer.js +102 -68
  6. package/lib/ReactRelayQueryFetcher.js +54 -28
  7. package/lib/ReactRelayQueryRenderer.js +28 -20
  8. package/lib/ReactRelayRefetchContainer.js +70 -58
  9. package/lib/ReactRelayTestMocker.js +56 -43
  10. package/lib/ReactRelayTypes.js +1 -1
  11. package/lib/RelayContext.js +8 -2
  12. package/lib/assertFragmentMap.js +9 -7
  13. package/lib/buildReactRelayContainer.js +32 -23
  14. package/lib/index.js +41 -0
  15. package/lib/isRelayEnvironment.js +1 -1
  16. package/lib/isRelayVariables.js +1 -1
  17. package/lib/readContext.js +7 -4
  18. package/package.json +4 -4
  19. package/react-relay.js +2 -2
  20. package/react-relay.min.js +2 -2
  21. package/classic.js +0 -10
  22. package/compat.js +0 -10
  23. package/lib/ConcreteQuery.js +0 -10
  24. package/lib/GraphQLQueryRunner.js +0 -264
  25. package/lib/GraphQLRange.js +0 -1124
  26. package/lib/GraphQLSegment.js +0 -743
  27. package/lib/GraphQLStoreChangeEmitter.js +0 -141
  28. package/lib/GraphQLStoreQueryResolver.js +0 -288
  29. package/lib/GraphQLStoreRangeUtils.js +0 -126
  30. package/lib/QueryBuilder.js +0 -228
  31. package/lib/ReactRelayClassicExports.js +0 -29
  32. package/lib/ReactRelayCompatContainerBuilder.js +0 -175
  33. package/lib/ReactRelayCompatPublic.js +0 -28
  34. package/lib/ReactRelayContainerProfiler.js +0 -30
  35. package/lib/ReactRelayFragmentContainer-flowtest.js +0 -201
  36. package/lib/ReactRelayPaginationContainer-flowtest.js +0 -213
  37. package/lib/ReactRelayPublic.js +0 -29
  38. package/lib/ReactRelayRefetchContainer-flowtest.js +0 -191
  39. package/lib/RelayCacheProcessor.js +0 -196
  40. package/lib/RelayChangeTracker.js +0 -83
  41. package/lib/RelayClassicContainerUtils.js +0 -49
  42. package/lib/RelayClassicCore.js +0 -34
  43. package/lib/RelayClassicRecordState.js +0 -31
  44. package/lib/RelayCompatContainer.js +0 -25
  45. package/lib/RelayCompatEnvironment.js +0 -27
  46. package/lib/RelayCompatMutations.js +0 -133
  47. package/lib/RelayCompatPaginationContainer.js +0 -27
  48. package/lib/RelayCompatRefetchContainer.js +0 -27
  49. package/lib/RelayCompatTypes.js +0 -10
  50. package/lib/RelayContainer.js +0 -889
  51. package/lib/RelayContainerComparators.js +0 -75
  52. package/lib/RelayContainerProxy.js +0 -21
  53. package/lib/RelayDefaultNetworkLayer.js +0 -192
  54. package/lib/RelayEnvironment.js +0 -449
  55. package/lib/RelayEnvironmentTypes.js +0 -10
  56. package/lib/RelayFetchMode.js +0 -17
  57. package/lib/RelayFragmentPointer.js +0 -161
  58. package/lib/RelayFragmentReference.js +0 -249
  59. package/lib/RelayFragmentSpecResolver.js +0 -305
  60. package/lib/RelayGraphQLMutation.js +0 -288
  61. package/lib/RelayGraphQLTag.js +0 -42
  62. package/lib/RelayInternalTypes.js +0 -15
  63. package/lib/RelayInternals.js +0 -24
  64. package/lib/RelayMetaRoute.js +0 -35
  65. package/lib/RelayMockRenderer.js +0 -71
  66. package/lib/RelayModern-flowtest.js +0 -342
  67. package/lib/RelayModernFlowtest_badref.graphql.js +0 -10
  68. package/lib/RelayModernFlowtest_notref.graphql.js +0 -10
  69. package/lib/RelayModernFlowtest_user.graphql.js +0 -10
  70. package/lib/RelayModernFlowtest_users.graphql.js +0 -10
  71. package/lib/RelayMutation.js +0 -322
  72. package/lib/RelayMutationDebugPrinter.js +0 -47
  73. package/lib/RelayMutationQuery.js +0 -558
  74. package/lib/RelayMutationQueue.js +0 -530
  75. package/lib/RelayMutationRequest.js +0 -103
  76. package/lib/RelayMutationTracker.js +0 -113
  77. package/lib/RelayMutationTransaction.js +0 -92
  78. package/lib/RelayMutationTransactionStatus.js +0 -55
  79. package/lib/RelayNetworkDebug.js +0 -131
  80. package/lib/RelayNetworkLayer.js +0 -185
  81. package/lib/RelayNodeInterface.js +0 -104
  82. package/lib/RelayOperationDescriptor.js +0 -40
  83. package/lib/RelayOptimisticMutationUtils.js +0 -208
  84. package/lib/RelayPendingQueryTracker.js +0 -166
  85. package/lib/RelayPropTypes.js +0 -57
  86. package/lib/RelayPublic.js +0 -44
  87. package/lib/RelayQL.js +0 -128
  88. package/lib/RelayQuery.js +0 -1584
  89. package/lib/RelayQueryCaching.js +0 -33
  90. package/lib/RelayQueryConfig.js +0 -58
  91. package/lib/RelayQueryPath.js +0 -204
  92. package/lib/RelayQueryRequest.js +0 -103
  93. package/lib/RelayQueryTracker.js +0 -86
  94. package/lib/RelayQueryTransform.js +0 -91
  95. package/lib/RelayQueryVisitor.js +0 -93
  96. package/lib/RelayQueryWriter.js +0 -573
  97. package/lib/RelayReadyState.js +0 -83
  98. package/lib/RelayReadyStateRenderer.js +0 -145
  99. package/lib/RelayRecord.js +0 -75
  100. package/lib/RelayRecordStatusMap.js +0 -57
  101. package/lib/RelayRecordStore.js +0 -433
  102. package/lib/RelayRecordWriter.js +0 -601
  103. package/lib/RelayRefQueryDescriptor.js +0 -27
  104. package/lib/RelayRenderer.js +0 -268
  105. package/lib/RelayRootContainer.js +0 -125
  106. package/lib/RelayRoute.js +0 -92
  107. package/lib/RelayRouteFragment.js +0 -44
  108. package/lib/RelaySelector.js +0 -201
  109. package/lib/RelayShallowMock.js +0 -69
  110. package/lib/RelayStaticContainer.js +0 -38
  111. package/lib/RelayStore.js +0 -12
  112. package/lib/RelayStoreConstants.js +0 -20
  113. package/lib/RelayStoreData.js +0 -660
  114. package/lib/RelayTaskQueue.js +0 -189
  115. package/lib/RelayTypes.js +0 -13
  116. package/lib/RelayVariable.js +0 -32
  117. package/lib/RelayVariables.js +0 -92
  118. package/lib/buildRQL.js +0 -160
  119. package/lib/callsFromGraphQL.js +0 -74
  120. package/lib/callsToGraphQL.js +0 -34
  121. package/lib/checkRelayQueryData.js +0 -250
  122. package/lib/createRelayQuery.js +0 -17
  123. package/lib/dedent.js +0 -49
  124. package/lib/diffRelayQuery.js +0 -757
  125. package/lib/directivesToGraphQL.js +0 -39
  126. package/lib/filterRelayQuery.js +0 -29
  127. package/lib/findRelayQueryLeaves.js +0 -293
  128. package/lib/flattenRelayQuery.js +0 -121
  129. package/lib/flattenSplitRelayQueries.js +0 -44
  130. package/lib/forEachRootCallArg.js +0 -40
  131. package/lib/fromGraphQL.js +0 -48
  132. package/lib/generateClientEdgeID.js +0 -22
  133. package/lib/generateClientID.js +0 -27
  134. package/lib/generateConcreteFragmentID.js +0 -30
  135. package/lib/generateForceIndex.js +0 -24
  136. package/lib/generateRQLFieldAlias.js +0 -39
  137. package/lib/getRangeBehavior.js +0 -58
  138. package/lib/getRelayQueries.js +0 -83
  139. package/lib/intersectRelayQuery.js +0 -149
  140. package/lib/isClassicRelayContext.js +0 -20
  141. package/lib/isClassicRelayEnvironment.js +0 -20
  142. package/lib/isCompatibleRelayFragmentType.js +0 -27
  143. package/lib/isRelayContainer.js +0 -16
  144. package/lib/makeLegacyStringishComponentRef.js +0 -52
  145. package/lib/printRelayOSSQuery.js +0 -329
  146. package/lib/printRelayQuery.js +0 -26
  147. package/lib/rangeOperationToMetadataKey.js +0 -25
  148. package/lib/readRelayQueryData.js +0 -551
  149. package/lib/relayUnstableBatchedUpdates.js +0 -12
  150. package/lib/relayUnstableBatchedUpdates.native.js +0 -11
  151. package/lib/restoreRelayCacheData.js +0 -188
  152. package/lib/serializeRelayQueryCall.js +0 -42
  153. package/lib/splitDeferredRelayQueries.js +0 -298
  154. package/lib/stableStringify.js +0 -85
  155. package/lib/testEditDistance.js +0 -112
  156. package/lib/throwFailedPromise.js +0 -26
  157. package/lib/toGraphQL.js +0 -94
  158. package/lib/transformRelayQueryPayload.js +0 -145
  159. package/lib/validateMutationConfig.js +0 -117
  160. package/lib/validateRelayReadQuery.js +0 -112
  161. package/lib/writeRelayQueryPayload.js +0 -44
  162. package/lib/writeRelayUpdatePayload.js +0 -513
  163. package/react-relay-classic.js +0 -4
  164. package/react-relay-classic.min.js +0 -9
  165. package/react-relay-compat.js +0 -4
  166. package/react-relay-compat.min.js +0 -9
@@ -1,141 +0,0 @@
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
- *
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * Asynchronous change emitter for nodes stored in the Relay cache.
14
- *
15
- * Changes are produced by `RelayStoreData` after writing query and mutation
16
- * payloads into the store and consumed by `GraphQLStoreQueryResolver`, which
17
- * subscribes to all records that are part of an active query result set.
18
- *
19
- * @internal
20
- */
21
- var GraphQLStoreChangeEmitter =
22
- /*#__PURE__*/
23
- function () {
24
- // Should be GraphQLStoreRangeUtils
25
- function GraphQLStoreChangeEmitter(rangeData) {
26
- this._batchUpdate = function (callback) {
27
- return callback();
28
- };
29
-
30
- this._executingIDs = {};
31
- this._rangeData = rangeData;
32
- this._scheduledIDs = null;
33
- this._subscribers = [];
34
- }
35
-
36
- var _proto = GraphQLStoreChangeEmitter.prototype;
37
-
38
- _proto.addListenerForIDs = function addListenerForIDs(ids, callback) {
39
- var _this = this;
40
-
41
- var subscribedIDs = ids.map(function (id) {
42
- return _this._getBroadcastID(id);
43
- });
44
- var index = this._subscribers.length;
45
-
46
- this._subscribers.push({
47
- subscribedIDs: subscribedIDs,
48
- callback: callback
49
- });
50
-
51
- return {
52
- remove: function remove() {
53
- delete _this._subscribers[index];
54
- }
55
- };
56
- };
57
-
58
- _proto.broadcastChangeForID = function broadcastChangeForID(id) {
59
- var _this2 = this;
60
-
61
- var scheduledIDs = this._scheduledIDs;
62
-
63
- if (scheduledIDs == null) {
64
- require("fbjs/lib/resolveImmediate")(function () {
65
- return _this2._processBroadcasts();
66
- });
67
-
68
- scheduledIDs = this._scheduledIDs = {};
69
- } // Record index of the last subscriber so we do not later unintentionally
70
- // invoke callbacks that were subscribed after this broadcast.
71
-
72
-
73
- scheduledIDs[this._getBroadcastID(id)] = this._subscribers.length - 1;
74
- };
75
-
76
- _proto.injectBatchingStrategy = function injectBatchingStrategy(batchStrategy) {
77
- this._batchUpdate = batchStrategy;
78
- };
79
-
80
- _proto._processBroadcasts = function _processBroadcasts() {
81
- var _this3 = this;
82
-
83
- if (this._scheduledIDs) {
84
- this._executingIDs = this._scheduledIDs;
85
- this._scheduledIDs = null;
86
-
87
- this._batchUpdate(function () {
88
- return _this3._processSubscribers();
89
- });
90
- }
91
- };
92
- /**
93
- * Exposed for profiling reasons.
94
- * @private
95
- */
96
-
97
-
98
- _proto._processSubscribers = function _processSubscribers() {
99
- var _this4 = this;
100
-
101
- this._subscribers.forEach(function (subscriber, subscriberIndex) {
102
- return _this4._processSubscriber(subscriber, subscriberIndex);
103
- });
104
- };
105
-
106
- _proto._processSubscriber = function _processSubscriber(_ref, subscriberIndex) {
107
- var subscribedIDs = _ref.subscribedIDs,
108
- callback = _ref.callback;
109
-
110
- for (var broadcastID in this._executingIDs) {
111
- if (this._executingIDs.hasOwnProperty(broadcastID)) {
112
- var broadcastIndex = this._executingIDs[broadcastID];
113
-
114
- if (broadcastIndex < subscriberIndex) {
115
- // Callback was subscribed after this particular broadcast.
116
- break;
117
- }
118
-
119
- if (subscribedIDs.indexOf(broadcastID) >= 0) {
120
- require("fbjs/lib/ErrorUtils").applyWithGuard(callback, null, null, null, 'GraphQLStoreChangeEmitter');
121
-
122
- break;
123
- }
124
- }
125
- }
126
- };
127
- /**
128
- * Ranges publish events for the entire range, not the specific view of that
129
- * range. For example, if "client:1" is a range, the event is on "client:1",
130
- * not "client:1_first(5)".
131
- */
132
-
133
-
134
- _proto._getBroadcastID = function _getBroadcastID(id) {
135
- return this._rangeData.getCanonicalClientID(id);
136
- };
137
-
138
- return GraphQLStoreChangeEmitter;
139
- }();
140
-
141
- module.exports = GraphQLStoreChangeEmitter;
@@ -1,288 +0,0 @@
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
- *
8
- * @format
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * @internal
14
- *
15
- * Resolves data from fragment pointers.
16
- *
17
- * The supplied `callback` will be invoked whenever data returned by the last
18
- * invocation to `resolve` has changed.
19
- */
20
- var GraphQLStoreQueryResolver =
21
- /*#__PURE__*/
22
- function () {
23
- function GraphQLStoreQueryResolver(storeData, fragment, callback) {
24
- this.dispose();
25
- this._callback = callback;
26
- this._fragment = fragment;
27
- this._resolver = null;
28
- this._storeData = storeData;
29
- }
30
- /**
31
- * disposes the resolver's internal state such that future `resolve()` results
32
- * will not be `===` to previous results, and unsubscribes any subscriptions.
33
- */
34
-
35
-
36
- var _proto = GraphQLStoreQueryResolver.prototype;
37
-
38
- _proto.dispose = function dispose() {
39
- if (this._resolver) {
40
- this._resolver.dispose();
41
- }
42
- };
43
-
44
- _proto.resolve = function resolve(fragment, dataIDs) {
45
- // Warn but don't crash if resolved with the wrong fragment.
46
- if (this._fragment.getConcreteFragmentID() !== fragment.getConcreteFragmentID()) {
47
- process.env.NODE_ENV !== "production" ? require("fbjs/lib/warning")(false, 'GraphQLStoreQueryResolver: Expected `resolve` to be called with the ' + 'same concrete fragment as the constructor. The resolver was created ' + 'with fragment `%s` but resolved with fragment `%s`.', this._fragment.getDebugName(), fragment.getDebugName()) : void 0;
48
- } // Rather than crash on mismatched plurality of fragment/ids just warn
49
- // and resolve as if the fragment's pluarity matched the format of the ids.
50
- // Note that the inverse - attempt to resolve based on fragment plurarity -
51
- // doesn't work because there's no way convert plural ids to singular w/o
52
- // losing data.
53
-
54
-
55
- if (Array.isArray(dataIDs)) {
56
- // Fragment should be plural if data is pluaral.
57
- process.env.NODE_ENV !== "production" ? require("fbjs/lib/warning")(fragment.isPlural(), 'GraphQLStoreQueryResolver: Expected id/fragment plurality to be ' + 'consistent: got plural ids for singular fragment `%s`.', fragment.getDebugName()) : void 0;
58
- var resolver = this._resolver;
59
-
60
- if (resolver instanceof GraphQLStoreSingleQueryResolver) {
61
- resolver.dispose();
62
- resolver = null;
63
- }
64
-
65
- if (!resolver) {
66
- resolver = new GraphQLStorePluralQueryResolver(this._storeData, this._callback);
67
- }
68
-
69
- this._resolver = resolver;
70
- return resolver.resolve(fragment, dataIDs);
71
- } else {
72
- // Fragment should be singular if data is singular.
73
- process.env.NODE_ENV !== "production" ? require("fbjs/lib/warning")(!fragment.isPlural(), 'GraphQLStoreQueryResolver: Expected id/fragment plurality to be ' + 'consistent: got a singular id for plural fragment `%s`.', fragment.getDebugName()) : void 0;
74
- var _resolver = this._resolver;
75
-
76
- if (_resolver instanceof GraphQLStorePluralQueryResolver) {
77
- _resolver.dispose();
78
-
79
- _resolver = null;
80
- }
81
-
82
- if (!_resolver) {
83
- _resolver = new GraphQLStoreSingleQueryResolver(this._storeData, this._callback);
84
- }
85
-
86
- this._resolver = _resolver;
87
- return _resolver.resolve(fragment, dataIDs);
88
- }
89
- };
90
-
91
- return GraphQLStoreQueryResolver;
92
- }();
93
- /**
94
- * Resolves plural fragments.
95
- */
96
-
97
-
98
- var GraphQLStorePluralQueryResolver =
99
- /*#__PURE__*/
100
- function () {
101
- function GraphQLStorePluralQueryResolver(storeData, callback) {
102
- this.dispose();
103
- this._callback = callback;
104
- this._storeData = storeData;
105
- }
106
-
107
- var _proto2 = GraphQLStorePluralQueryResolver.prototype;
108
-
109
- _proto2.dispose = function dispose() {
110
- if (this._resolvers) {
111
- this._resolvers.forEach(function (resolver) {
112
- return resolver.dispose();
113
- });
114
- }
115
-
116
- this._resolvers = [];
117
- this._results = [];
118
- };
119
- /**
120
- * Resolves a plural fragment pointer into an array of records.
121
- *
122
- * If the data, order, and number of resolved records has not changed since
123
- * the last call to `resolve`, the same array will be returned. Otherwise, a
124
- * new array will be returned.
125
- */
126
-
127
-
128
- _proto2.resolve = function resolve(fragment, nextIDs) {
129
- var prevResults = this._results;
130
- var nextResults;
131
- var prevLength = prevResults.length;
132
- var nextLength = nextIDs.length;
133
- var resolvers = this._resolvers; // Ensure that we have exactly `nextLength` resolvers.
134
-
135
- while (resolvers.length < nextLength) {
136
- resolvers.push(new GraphQLStoreSingleQueryResolver(this._storeData, this._callback));
137
- }
138
-
139
- while (resolvers.length > nextLength) {
140
- resolvers.pop().dispose();
141
- } // Allocate `nextResults` if and only if results have changed.
142
-
143
-
144
- if (prevLength !== nextLength) {
145
- nextResults = [];
146
- }
147
-
148
- for (var ii = 0; ii < nextLength; ii++) {
149
- var nextResult = resolvers[ii].resolve(fragment, nextIDs[ii]);
150
-
151
- if (nextResults || ii >= prevLength || nextResult !== prevResults[ii]) {
152
- nextResults = nextResults || prevResults.slice(0, ii);
153
- nextResults.push(nextResult);
154
- }
155
- }
156
-
157
- if (nextResults) {
158
- this._results = nextResults;
159
- }
160
-
161
- return this._results;
162
- };
163
-
164
- return GraphQLStorePluralQueryResolver;
165
- }();
166
- /**
167
- * Resolves non-plural fragments.
168
- */
169
-
170
-
171
- var GraphQLStoreSingleQueryResolver =
172
- /*#__PURE__*/
173
- function () {
174
- function GraphQLStoreSingleQueryResolver(storeData, callback) {
175
- this.dispose();
176
- this._callback = callback;
177
- this._storeData = storeData;
178
- this._subscribedIDs = {};
179
- }
180
-
181
- var _proto3 = GraphQLStoreSingleQueryResolver.prototype;
182
-
183
- _proto3.dispose = function dispose() {
184
- if (this._subscription) {
185
- this._subscription.remove();
186
- }
187
-
188
- this._hasDataChanged = false;
189
- this._fragment = null;
190
- this._result = null;
191
- this._resultID = null;
192
- this._subscription = null;
193
- this._subscribedIDs = {};
194
- };
195
- /**
196
- * Resolves data for a single fragment pointer.
197
- */
198
-
199
-
200
- _proto3.resolve = function resolve(nextFragment, nextID) {
201
- var prevFragment = this._fragment;
202
- var prevID = this._resultID;
203
- var nextResult;
204
- var prevResult = this._result;
205
- var subscribedIDs;
206
-
207
- if (prevFragment != null && prevID != null && this._getCanonicalID(prevID) === this._getCanonicalID(nextID)) {
208
- if (prevID !== nextID || this._hasDataChanged || !nextFragment.isEquivalent(prevFragment)) {
209
- // same canonical ID,
210
- // but the data, call(s), route, and/or variables have changed
211
- var _this$_resolveFragmen = this._resolveFragment(nextFragment, nextID);
212
-
213
- nextResult = _this$_resolveFragmen[0];
214
- subscribedIDs = _this$_resolveFragmen[1];
215
- nextResult = require("relay-runtime").recycleNodesInto(prevResult, nextResult);
216
- } else {
217
- // same id, route, variables, and data
218
- nextResult = prevResult;
219
- }
220
- } else {
221
- // Pointer has a different ID or is/was fake data.
222
- var _this$_resolveFragmen2 = this._resolveFragment(nextFragment, nextID);
223
-
224
- nextResult = _this$_resolveFragmen2[0];
225
- subscribedIDs = _this$_resolveFragmen2[1];
226
- } // update subscriptions whenever results change
227
-
228
-
229
- if (prevResult !== nextResult) {
230
- if (this._subscription) {
231
- this._subscription.remove();
232
-
233
- this._subscription = null;
234
- }
235
-
236
- if (subscribedIDs) {
237
- // always subscribe to the root ID
238
- subscribedIDs[nextID] = true;
239
-
240
- var changeEmitter = this._storeData.getChangeEmitter();
241
-
242
- this._subscription = changeEmitter.addListenerForIDs(Object.keys(subscribedIDs), this._handleChange.bind(this));
243
- this._subscribedIDs = subscribedIDs;
244
- }
245
-
246
- this._resultID = nextID;
247
- this._result = nextResult;
248
- }
249
-
250
- this._hasDataChanged = false;
251
- this._fragment = nextFragment;
252
- return this._result;
253
- };
254
- /**
255
- * Ranges publish events for the entire range, not the specific view of that
256
- * range. For example, if "client:1" is a range, the event is on "client:1",
257
- * not "client:1_first(5)".
258
- */
259
-
260
-
261
- _proto3._getCanonicalID = function _getCanonicalID(id) {
262
- return this._storeData.getRangeData().getCanonicalClientID(id);
263
- };
264
-
265
- _proto3._handleChange = function _handleChange() {
266
- if (!this._hasDataChanged) {
267
- this._hasDataChanged = true;
268
-
269
- this._callback();
270
- }
271
- };
272
-
273
- _proto3._resolveFragment = function _resolveFragment(fragment, dataID) {
274
- var _readRelayQueryData = require("./readRelayQueryData")(this._storeData, fragment, dataID),
275
- data = _readRelayQueryData.data,
276
- dataIDs = _readRelayQueryData.dataIDs;
277
-
278
- return [data, dataIDs];
279
- };
280
-
281
- return GraphQLStoreSingleQueryResolver;
282
- }();
283
-
284
- require("relay-runtime").RelayProfiler.instrumentMethods(GraphQLStoreQueryResolver.prototype, {
285
- resolve: 'GraphQLStoreQueryResolver.resolve'
286
- });
287
-
288
- module.exports = GraphQLStoreQueryResolver;
@@ -1,126 +0,0 @@
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
- * @format
8
- */
9
- 'use strict';
10
-
11
- /**
12
- * Utilities used by GraphQLStore for storing ranges
13
- *
14
- * GraphQLStore stores all of the parts of a range in a single GraphQLRange
15
- * object. For example, `node(4808495){friends.first(5){id,name}}` might be
16
- * stored similar to this (pseudo-code):
17
- *
18
- * "4808495": {
19
- * "friends": { __dataID__: "client:1" }
20
- * },
21
- * "client:1": {
22
- * "nodes": new GraphQLRange(...) // all friends, not just the first 5
23
- * }
24
- *
25
- * and when that query is run, the store would return a result pointing at
26
- * a specific part of the range, encoded into the data ID:
27
- *
28
- * {
29
- * "4808495": {
30
- * "friends": { __dataID__: "client:1_first(5)" }
31
- * }
32
- * }
33
- *
34
- * That "client:1_first(5)" ID can then be used to query for the first 5
35
- * friends.
36
- *
37
- * @internal
38
- */
39
- var GraphQLStoreRangeUtils =
40
- /*#__PURE__*/
41
- function () {
42
- function GraphQLStoreRangeUtils() {
43
- this._rangeData = {};
44
- this._rangeDataKeyMap = {};
45
- }
46
- /**
47
- * Returns a token that can be parsed using parseRangeClientID to recover
48
- * the attributes needed to retrieve the corresponding items from a
49
- * GraphQLRange.
50
- *
51
- * @param {array<*>} calls
52
- * @param {object} callValues
53
- * @param {string} dataID
54
- * @return {string}
55
- */
56
-
57
-
58
- var _proto = GraphQLStoreRangeUtils.prototype;
59
-
60
- _proto.getClientIDForRangeWithID = function getClientIDForRangeWithID(calls, callValues, dataID) {
61
- var callsAsString = require("./callsFromGraphQL")(calls, callValues).map(function (call) {
62
- return require("./serializeRelayQueryCall")(call).substring(1);
63
- }).join(',');
64
-
65
- var key = dataID + '_' + callsAsString;
66
- var edge = this._rangeData[key];
67
-
68
- if (!edge) {
69
- this._rangeData[key] = {
70
- dataID: dataID,
71
- calls: calls,
72
- callValues: callValues
73
- };
74
- var rangeDataKeys = this._rangeDataKeyMap[dataID];
75
-
76
- if (!rangeDataKeys) {
77
- this._rangeDataKeyMap[dataID] = rangeDataKeys = [];
78
- }
79
-
80
- rangeDataKeys.push(key);
81
- }
82
-
83
- return key;
84
- };
85
- /**
86
- * Parses an ID back into its data ID and calls
87
- *
88
- * @param {string} rangeSpecificClientID
89
- * @return {?object}
90
- */
91
-
92
-
93
- _proto.parseRangeClientID = function parseRangeClientID(rangeSpecificClientID) {
94
- return this._rangeData[rangeSpecificClientID] || null;
95
- };
96
- /**
97
- * If given the client id for a range view, returns the canonical client id
98
- * for the entire range. e.g. converts "client:1_first(5)" to "client:1".
99
- * Otherwise returns the input.
100
- *
101
- * @param {string} dataID
102
- * @return {string}
103
- */
104
-
105
-
106
- _proto.getCanonicalClientID = function getCanonicalClientID(dataID) {
107
- return this._rangeData[dataID] ? this._rangeData[dataID].dataID : dataID;
108
- };
109
-
110
- _proto.removeRecord = function removeRecord(dataID) {
111
- var _this = this;
112
-
113
- var rangeDataKeys = this._rangeDataKeyMap[dataID];
114
-
115
- if (rangeDataKeys) {
116
- rangeDataKeys.forEach(function (key) {
117
- delete _this._rangeData[key];
118
- });
119
- delete this._rangeDataKeyMap[dataID];
120
- }
121
- };
122
-
123
- return GraphQLStoreRangeUtils;
124
- }();
125
-
126
- module.exports = GraphQLStoreRangeUtils;