react-relay 14.1.0 → 15.0.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 (194) hide show
  1. package/ReactRelayContainerUtils.js.flow +1 -0
  2. package/ReactRelayContext.js +1 -1
  3. package/ReactRelayContext.js.flow +1 -0
  4. package/ReactRelayFragmentContainer.js.flow +6 -2
  5. package/ReactRelayFragmentMockRenderer.js.flow +1 -0
  6. package/ReactRelayLocalQueryRenderer.js.flow +5 -3
  7. package/ReactRelayPaginationContainer.js.flow +21 -12
  8. package/ReactRelayQueryFetcher.js.flow +19 -5
  9. package/ReactRelayQueryRenderer.js.flow +32 -1
  10. package/ReactRelayQueryRendererContext.js.flow +1 -0
  11. package/ReactRelayRefetchContainer.js.flow +9 -5
  12. package/ReactRelayTestMocker.js.flow +3 -1
  13. package/ReactRelayTypes.js.flow +1 -0
  14. package/RelayContext.js.flow +1 -0
  15. package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +2 -1
  16. package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +1 -0
  17. package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +1 -0
  18. package/__flowtests__/RelayModern-flowtest.js.flow +1 -0
  19. package/__flowtests__/RelayModernFlowtest_badref.graphql.js.flow +1 -0
  20. package/__flowtests__/RelayModernFlowtest_notref.graphql.js.flow +1 -0
  21. package/__flowtests__/RelayModernFlowtest_user.graphql.js.flow +1 -0
  22. package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -0
  23. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -1
  24. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -1
  25. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +4 -2
  26. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +3 -1
  27. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +4 -2
  28. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +3 -1
  29. package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +4 -2
  30. package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +4 -2
  31. package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -1
  32. package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +3 -1
  33. package/assertFragmentMap.js.flow +1 -0
  34. package/buildReactRelayContainer.js.flow +7 -5
  35. package/getRootVariablesForFragments.js.flow +1 -1
  36. package/hooks.js +1 -1
  37. package/hooks.js.flow +4 -0
  38. package/index.js +1 -1
  39. package/index.js.flow +4 -0
  40. package/isRelayEnvironment.js.flow +1 -0
  41. package/jest-react/enqueueTask.js.flow +1 -1
  42. package/jest-react/index.js.flow +1 -1
  43. package/jest-react/internalAct.js.flow +1 -1
  44. package/legacy.js +1 -1
  45. package/legacy.js.flow +1 -0
  46. package/lib/ReactRelayContainerUtils.js +2 -2
  47. package/lib/ReactRelayContext.js +3 -3
  48. package/lib/ReactRelayFragmentContainer.js +39 -66
  49. package/lib/ReactRelayFragmentMockRenderer.js +2 -3
  50. package/lib/ReactRelayLocalQueryRenderer.js +18 -30
  51. package/lib/ReactRelayPaginationContainer.js +66 -159
  52. package/lib/ReactRelayQueryFetcher.js +48 -74
  53. package/lib/ReactRelayQueryRenderer.js +62 -82
  54. package/lib/ReactRelayQueryRendererContext.js +2 -1
  55. package/lib/ReactRelayRefetchContainer.js +52 -99
  56. package/lib/ReactRelayTestMocker.js +32 -66
  57. package/lib/ReactRelayTypes.js +2 -0
  58. package/lib/RelayContext.js +4 -6
  59. package/lib/assertFragmentMap.js +3 -4
  60. package/lib/buildReactRelayContainer.js +10 -25
  61. package/lib/getRootVariablesForFragments.js +5 -8
  62. package/lib/hooks.js +5 -17
  63. package/lib/index.js +5 -24
  64. package/lib/isRelayEnvironment.js +5 -3
  65. package/lib/jest-react/enqueueTask.js +5 -9
  66. package/lib/jest-react/index.js +0 -1
  67. package/lib/jest-react/internalAct.js +9 -20
  68. package/lib/legacy.js +2 -7
  69. package/lib/multi-actor/ActorChange.js +2 -5
  70. package/lib/multi-actor/index.js +2 -1
  71. package/lib/multi-actor/useRelayActorEnvironment.js +4 -7
  72. package/lib/relay-hooks/EntryPointContainer.react.js +9 -14
  73. package/lib/relay-hooks/EntryPointTypes.flow.js +5 -2
  74. package/lib/relay-hooks/FragmentResource.js +102 -196
  75. package/lib/relay-hooks/HooksImplementation.js +2 -5
  76. package/lib/relay-hooks/InternalLogger.js +2 -2
  77. package/lib/relay-hooks/LRUCache.js +2 -19
  78. package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +33 -53
  79. package/lib/relay-hooks/MatchContainer.js +14 -22
  80. package/lib/relay-hooks/ProfilerContext.js +3 -2
  81. package/lib/relay-hooks/QueryResource.js +30 -99
  82. package/lib/relay-hooks/RelayEnvironmentProvider.js +5 -8
  83. package/lib/relay-hooks/SuspenseResource.js +8 -31
  84. package/lib/relay-hooks/loadEntryPoint.js +19 -31
  85. package/lib/relay-hooks/loadQuery.js +41 -77
  86. package/lib/relay-hooks/preloadQuery_DEPRECATED.js +10 -35
  87. package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +9 -14
  88. package/lib/relay-hooks/react-cache/RelayReactCache.js +7 -11
  89. package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +24 -78
  90. package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +23 -56
  91. package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +65 -143
  92. package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +5 -14
  93. package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +17 -23
  94. package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +73 -74
  95. package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +24 -38
  96. package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +60 -102
  97. package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +7 -15
  98. package/lib/relay-hooks/useBlockingPaginationFragment.js +71 -92
  99. package/lib/relay-hooks/useClientQuery.js +3 -6
  100. package/lib/relay-hooks/useEntryPointLoader.js +17 -36
  101. package/lib/relay-hooks/useFetchTrackingRef.js +10 -11
  102. package/lib/relay-hooks/useFragment.js +8 -18
  103. package/lib/relay-hooks/useFragmentNode.js +20 -31
  104. package/lib/relay-hooks/useIsMountedRef.js +4 -5
  105. package/lib/relay-hooks/useIsOperationNodeActive.js +8 -20
  106. package/lib/relay-hooks/useIsParentQueryActive.js +3 -6
  107. package/lib/relay-hooks/useLazyLoadQuery.js +6 -9
  108. package/lib/relay-hooks/useLazyLoadQueryNode.js +23 -33
  109. package/lib/relay-hooks/useLoadMoreFunction.js +45 -76
  110. package/lib/relay-hooks/useMemoOperationDescriptor.js +6 -14
  111. package/lib/relay-hooks/useMemoVariables.js +15 -33
  112. package/lib/relay-hooks/useMutation.js +8 -25
  113. package/lib/relay-hooks/usePaginationFragment.js +61 -76
  114. package/lib/relay-hooks/usePreloadedQuery.js +12 -29
  115. package/lib/relay-hooks/useQueryLoader.js +23 -47
  116. package/lib/relay-hooks/useRefetchableFragment.js +8 -18
  117. package/lib/relay-hooks/useRefetchableFragmentNode.js +64 -107
  118. package/lib/relay-hooks/useRelayEnvironment.js +4 -7
  119. package/lib/relay-hooks/useStaticFragmentNodeWarning.js +4 -7
  120. package/lib/relay-hooks/useSubscribeToInvalidationState.js +8 -8
  121. package/lib/relay-hooks/useSubscription.js +5 -9
  122. package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +29 -0
  123. package/multi-actor/ActorChange.js.flow +1 -1
  124. package/multi-actor/index.js.flow +1 -1
  125. package/multi-actor/useRelayActorEnvironment.js.flow +2 -2
  126. package/package.json +2 -2
  127. package/react-relay-hooks.js +2 -2
  128. package/react-relay-hooks.min.js +2 -2
  129. package/react-relay-legacy.js +2 -2
  130. package/react-relay-legacy.min.js +2 -2
  131. package/react-relay.js +2 -2
  132. package/react-relay.min.js +2 -2
  133. package/relay-hooks/EntryPointContainer.react.js.flow +1 -1
  134. package/relay-hooks/EntryPointTypes.flow.js.flow +7 -5
  135. package/relay-hooks/FragmentResource.js.flow +34 -8
  136. package/relay-hooks/HooksImplementation.js.flow +1 -1
  137. package/relay-hooks/InternalLogger.js.flow +1 -1
  138. package/relay-hooks/LRUCache.js.flow +1 -1
  139. package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +15 -8
  140. package/relay-hooks/MatchContainer.js.flow +1 -1
  141. package/relay-hooks/ProfilerContext.js.flow +1 -1
  142. package/relay-hooks/QueryResource.js.flow +25 -5
  143. package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
  144. package/relay-hooks/SuspenseResource.js.flow +1 -1
  145. package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +3 -1
  146. package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +2 -2
  147. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
  148. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
  149. package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +35 -33
  150. package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -1
  151. package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +33 -32
  152. package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +18 -18
  153. package/relay-hooks/__flowtests__/utils.js.flow +13 -2
  154. package/relay-hooks/loadEntryPoint.js.flow +11 -6
  155. package/relay-hooks/loadQuery.js.flow +11 -7
  156. package/relay-hooks/preloadQuery_DEPRECATED.js.flow +5 -6
  157. package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +13 -8
  158. package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -1
  159. package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +4 -4
  160. package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +3 -3
  161. package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +4 -4
  162. package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +1 -1
  163. package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +1 -1
  164. package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +41 -22
  165. package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +1 -2
  166. package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +11 -5
  167. package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +2 -2
  168. package/relay-hooks/useBlockingPaginationFragment.js.flow +85 -56
  169. package/relay-hooks/useClientQuery.js.flow +1 -1
  170. package/relay-hooks/useEntryPointLoader.js.flow +10 -6
  171. package/relay-hooks/useFetchTrackingRef.js.flow +5 -4
  172. package/relay-hooks/useFragment.js.flow +2 -2
  173. package/relay-hooks/useFragmentNode.js.flow +5 -4
  174. package/relay-hooks/useIsMountedRef.js.flow +1 -1
  175. package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
  176. package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
  177. package/relay-hooks/useLazyLoadQuery.js.flow +2 -2
  178. package/relay-hooks/useLazyLoadQueryNode.js.flow +2 -2
  179. package/relay-hooks/useLoadMoreFunction.js.flow +14 -9
  180. package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -3
  181. package/relay-hooks/useMemoVariables.js.flow +13 -29
  182. package/relay-hooks/useMutation.js.flow +4 -4
  183. package/relay-hooks/usePaginationFragment.js.flow +53 -46
  184. package/relay-hooks/usePreloadedQuery.js.flow +47 -22
  185. package/relay-hooks/useQueryLoader.js.flow +85 -22
  186. package/relay-hooks/useRefetchableFragment.js.flow +64 -33
  187. package/relay-hooks/useRefetchableFragmentNode.js.flow +10 -4
  188. package/relay-hooks/useRelayEnvironment.js.flow +2 -2
  189. package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -3
  190. package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -2
  191. package/relay-hooks/useSubscription.js.flow +1 -1
  192. package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
  193. package/lib/readContext.js +0 -27
  194. package/readContext.js.flow +0 -29
@@ -5,45 +5,36 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  *
8
- * @emails oncall+relay
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
13
14
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
14
-
15
15
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
-
17
16
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
18
-
19
17
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
20
-
21
18
  var _require = require('../QueryResource'),
22
- getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;
23
-
19
+ getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;
24
20
  var useRelayEnvironment = require('../useRelayEnvironment');
25
-
26
21
  var invariant = require('invariant');
27
-
28
22
  var _require2 = require('react'),
29
- useDebugValue = _require2.useDebugValue,
30
- useEffect = _require2.useEffect,
31
- useMemo = _require2.useMemo,
32
- useRef = _require2.useRef,
33
- useState = _require2.useState;
34
-
23
+ useDebugValue = _require2.useDebugValue,
24
+ useEffect = _require2.useEffect,
25
+ useMemo = _require2.useMemo,
26
+ useRef = _require2.useRef,
27
+ useState = _require2.useState;
35
28
  var _require3 = require('relay-runtime'),
36
- fetchQueryInternal = _require3.__internal.fetchQuery,
37
- areEqualSelectors = _require3.areEqualSelectors,
38
- createOperationDescriptor = _require3.createOperationDescriptor,
39
- getPendingOperationsForFragment = _require3.getPendingOperationsForFragment,
40
- getSelector = _require3.getSelector,
41
- getVariablesFromFragment = _require3.getVariablesFromFragment,
42
- handlePotentialSnapshotErrors = _require3.handlePotentialSnapshotErrors,
43
- recycleNodesInto = _require3.recycleNodesInto;
44
-
29
+ fetchQueryInternal = _require3.__internal.fetchQuery,
30
+ areEqualSelectors = _require3.areEqualSelectors,
31
+ createOperationDescriptor = _require3.createOperationDescriptor,
32
+ getPendingOperationsForFragment = _require3.getPendingOperationsForFragment,
33
+ getSelector = _require3.getSelector,
34
+ getVariablesFromFragment = _require3.getVariablesFromFragment,
35
+ handlePotentialSnapshotErrors = _require3.handlePotentialSnapshotErrors,
36
+ recycleNodesInto = _require3.recycleNodesInto;
45
37
  var warning = require("fbjs/lib/warning");
46
-
47
38
  function isMissingData(state) {
48
39
  if (state.kind === 'bailout') {
49
40
  return false;
@@ -55,32 +46,24 @@ function isMissingData(state) {
55
46
  });
56
47
  }
57
48
  }
58
-
59
49
  function getMissingClientEdges(state) {
60
50
  if (state.kind === 'bailout') {
61
51
  return null;
62
52
  } else if (state.kind === 'singular') {
63
53
  var _state$snapshot$missi;
64
-
65
54
  return (_state$snapshot$missi = state.snapshot.missingClientEdges) !== null && _state$snapshot$missi !== void 0 ? _state$snapshot$missi : null;
66
55
  } else {
67
56
  var edges = null;
68
-
69
57
  var _iterator = (0, _createForOfIteratorHelper2["default"])(state.snapshots),
70
- _step;
71
-
58
+ _step;
72
59
  try {
73
60
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
74
61
  var snapshot = _step.value;
75
-
76
62
  if (snapshot.missingClientEdges) {
77
63
  var _edges;
78
-
79
64
  edges = (_edges = edges) !== null && _edges !== void 0 ? _edges : [];
80
-
81
65
  var _iterator2 = (0, _createForOfIteratorHelper2["default"])(snapshot.missingClientEdges),
82
- _step2;
83
-
66
+ _step2;
84
67
  try {
85
68
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
86
69
  var edge = _step2.value;
@@ -98,36 +81,27 @@ function getMissingClientEdges(state) {
98
81
  } finally {
99
82
  _iterator.f();
100
83
  }
101
-
102
84
  return edges;
103
85
  }
104
86
  }
105
-
106
87
  function getSuspendingLiveResolver(state) {
107
88
  if (state.kind === 'bailout') {
108
89
  return null;
109
90
  } else if (state.kind === 'singular') {
110
91
  var _state$snapshot$missi2;
111
-
112
92
  return (_state$snapshot$missi2 = state.snapshot.missingLiveResolverFields) !== null && _state$snapshot$missi2 !== void 0 ? _state$snapshot$missi2 : null;
113
93
  } else {
114
94
  var missingFields = null;
115
-
116
95
  var _iterator3 = (0, _createForOfIteratorHelper2["default"])(state.snapshots),
117
- _step3;
118
-
96
+ _step3;
119
97
  try {
120
98
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
121
99
  var snapshot = _step3.value;
122
-
123
100
  if (snapshot.missingLiveResolverFields) {
124
101
  var _missingFields;
125
-
126
102
  missingFields = (_missingFields = missingFields) !== null && _missingFields !== void 0 ? _missingFields : [];
127
-
128
103
  var _iterator4 = (0, _createForOfIteratorHelper2["default"])(snapshot.missingLiveResolverFields),
129
- _step4;
130
-
104
+ _step4;
131
105
  try {
132
106
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
133
107
  var edge = _step4.value;
@@ -145,18 +119,15 @@ function getSuspendingLiveResolver(state) {
145
119
  } finally {
146
120
  _iterator3.f();
147
121
  }
148
-
149
122
  return missingFields;
150
123
  }
151
124
  }
152
-
153
125
  function handlePotentialSnapshotErrorsForState(environment, state) {
154
126
  if (state.kind === 'singular') {
155
127
  handlePotentialSnapshotErrors(environment, state.snapshot.missingRequiredFields, state.snapshot.relayResolverErrors);
156
128
  } else if (state.kind === 'plural') {
157
129
  var _iterator5 = (0, _createForOfIteratorHelper2["default"])(state.snapshots),
158
- _step5;
159
-
130
+ _step5;
160
131
  try {
161
132
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
162
133
  var snapshot = _step5.value;
@@ -169,26 +140,22 @@ function handlePotentialSnapshotErrorsForState(environment, state) {
169
140
  }
170
141
  }
171
142
  }
143
+
172
144
  /**
173
145
  * Check for updates to the store that occurred concurrently with rendering the given `state` value,
174
146
  * returning a new (updated) state if there were updates or null if there were no changes.
175
147
  */
176
-
177
-
178
148
  function handleMissedUpdates(environment, state) {
179
149
  if (state.kind === 'bailout') {
180
150
  return null;
181
- } // FIXME this is invalid if we've just switched environments.
182
-
183
-
151
+ }
152
+ // FIXME this is invalid if we've just switched environments.
184
153
  var currentEpoch = environment.getStore().getEpoch();
185
-
186
154
  if (currentEpoch === state.epoch) {
187
155
  return null;
188
- } // The store has updated since we rendered (without us being subscribed yet),
156
+ }
157
+ // The store has updated since we rendered (without us being subscribed yet),
189
158
  // so check for any updates to the data we're rendering:
190
-
191
-
192
159
  if (state.kind === 'singular') {
193
160
  var currentSnapshot = environment.lookup(state.snapshot.selector);
194
161
  var updatedData = recycleNodesInto(state.snapshot.data, currentSnapshot.data);
@@ -210,14 +177,10 @@ function handleMissedUpdates(environment, state) {
210
177
  } else {
211
178
  var didMissUpdates = false;
212
179
  var currentSnapshots = [];
213
-
214
180
  for (var index = 0; index < state.snapshots.length; index++) {
215
181
  var snapshot = state.snapshots[index];
216
-
217
182
  var _currentSnapshot = environment.lookup(snapshot.selector);
218
-
219
183
  var _updatedData = recycleNodesInto(snapshot.data, _currentSnapshot.data);
220
-
221
184
  var _updatedCurrentSnapshot = {
222
185
  data: _updatedData,
223
186
  isMissingData: _currentSnapshot.isMissingData,
@@ -228,14 +191,11 @@ function handleMissedUpdates(environment, state) {
228
191
  missingRequiredFields: _currentSnapshot.missingRequiredFields,
229
192
  relayResolverErrors: _currentSnapshot.relayResolverErrors
230
193
  };
231
-
232
194
  if (_updatedData !== snapshot.data) {
233
195
  didMissUpdates = true;
234
196
  }
235
-
236
197
  currentSnapshots.push(_updatedCurrentSnapshot);
237
198
  }
238
-
239
199
  !(currentSnapshots.length === state.snapshots.length) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected same number of snapshots') : invariant(false) : void 0;
240
200
  return [didMissUpdates, {
241
201
  kind: 'plural',
@@ -244,22 +204,20 @@ function handleMissedUpdates(environment, state) {
244
204
  }];
245
205
  }
246
206
  }
247
-
248
207
  function handleMissingClientEdge(environment, parentFragmentNode, parentFragmentRef, missingClientEdgeRequestInfo, queryOptions) {
249
208
  var originalVariables = getVariablesFromFragment(parentFragmentNode, parentFragmentRef);
250
209
  var variables = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, originalVariables), {}, {
251
210
  id: missingClientEdgeRequestInfo.clientEdgeDestinationID // TODO should be a reserved name
252
-
253
211
  });
254
- var queryOperationDescriptor = createOperationDescriptor(missingClientEdgeRequestInfo.request, variables, queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.networkCacheConfig); // This may suspend. We don't need to do anything with the results; all we're
212
+
213
+ var queryOperationDescriptor = createOperationDescriptor(missingClientEdgeRequestInfo.request, variables, queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.networkCacheConfig);
214
+ // This may suspend. We don't need to do anything with the results; all we're
255
215
  // doing here is started the query if needed and retaining and releasing it
256
216
  // according to the component mount/suspense cycle; QueryResource
257
217
  // already handles this by itself.
258
-
259
218
  var QueryResource = getQueryResourceForEnvironment(environment);
260
219
  return QueryResource.prepare(queryOperationDescriptor, fetchQueryInternal(environment, queryOperationDescriptor), queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.fetchPolicy);
261
220
  }
262
-
263
221
  function subscribeToSnapshot(environment, state, setState) {
264
222
  if (state.kind === 'bailout') {
265
223
  return function () {};
@@ -272,7 +230,6 @@ function subscribeToSnapshot(environment, state, setState) {
272
230
  if (prevState.kind !== 'singular' || prevState.snapshot.selector !== latestSnapshot.selector) {
273
231
  return prevState;
274
232
  }
275
-
276
233
  return {
277
234
  kind: 'singular',
278
235
  snapshot: latestSnapshot,
@@ -288,14 +245,12 @@ function subscribeToSnapshot(environment, state, setState) {
288
245
  return environment.subscribe(snapshot, function (latestSnapshot) {
289
246
  setState(function (prevState) {
290
247
  var _prevState$snapshots$;
291
-
292
248
  // In theory a setState from a subscription could be batched together
293
249
  // with a setState to change the fragment selector. Guard against this
294
250
  // by bailing out of the state update if the selector has changed.
295
251
  if (prevState.kind !== 'plural' || ((_prevState$snapshots$ = prevState.snapshots[index]) === null || _prevState$snapshots$ === void 0 ? void 0 : _prevState$snapshots$.selector) !== latestSnapshot.selector) {
296
252
  return prevState;
297
253
  }
298
-
299
254
  var updated = (0, _toConsumableArray2["default"])(prevState.snapshots);
300
255
  updated[index] = latestSnapshot;
301
256
  return {
@@ -308,8 +263,7 @@ function subscribeToSnapshot(environment, state, setState) {
308
263
  });
309
264
  return function () {
310
265
  var _iterator6 = (0, _createForOfIteratorHelper2["default"])(disposables),
311
- _step6;
312
-
266
+ _step6;
313
267
  try {
314
268
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
315
269
  var d = _step6.value;
@@ -323,7 +277,6 @@ function subscribeToSnapshot(environment, state, setState) {
323
277
  };
324
278
  }
325
279
  }
326
-
327
280
  function getFragmentState(environment, fragmentSelector) {
328
281
  if (fragmentSelector == null) {
329
282
  return {
@@ -346,51 +299,43 @@ function getFragmentState(environment, fragmentSelector) {
346
299
  epoch: environment.getStore().getEpoch()
347
300
  };
348
301
  }
349
- } // fragmentNode cannot change during the lifetime of the component, though fragmentRef may change.
350
-
302
+ }
351
303
 
304
+ // fragmentNode cannot change during the lifetime of the component, though fragmentRef may change.
352
305
  function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayName, queryOptions, fragmentKey) {
353
306
  var _fragmentNode$metadat, _fragmentNode$metadat2;
354
-
355
307
  var fragmentSelector = useMemo(function () {
356
308
  return getSelector(fragmentNode, fragmentRef);
357
309
  }, [fragmentNode, fragmentRef]);
358
310
  var isPlural = (fragmentNode === null || fragmentNode === void 0 ? void 0 : (_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) === true;
359
-
360
311
  if (isPlural) {
361
312
  !(fragmentRef == null || Array.isArray(fragmentRef)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` to be ' + 'an array, instead got `%s`. Remove `@relay(plural: true)` ' + 'from fragment `%s` to allow the prop to be an object.', fragmentKey != null ? " for key `".concat(fragmentKey, "`") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;
362
313
  } else {
363
314
  !!Array.isArray(fragmentRef) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` not to be ' + 'an array, instead got `%s`. Add `@relay(plural: true)` ' + 'to fragment `%s` to allow the prop to be an array.', fragmentKey != null ? " for key `".concat(fragmentKey, "`") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;
364
315
  }
365
-
366
316
  !(fragmentRef == null || isPlural && Array.isArray(fragmentRef) && fragmentRef.length === 0 || fragmentSelector != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\n' + "- Forgetting to spread `%s` in `%s`'s parent's fragment.\n" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, hookDisplayName, fragmentNode.name, fragmentKey == null ? 'a fragment reference' : "the `".concat(fragmentKey, "`"), hookDisplayName) : invariant(false) : void 0;
367
317
  var environment = useRelayEnvironment();
368
-
369
318
  var _useState = useState(function () {
370
- return getFragmentState(environment, fragmentSelector);
371
- }),
372
- _state = _useState[0],
373
- setState = _useState[1];
319
+ return getFragmentState(environment, fragmentSelector);
320
+ }),
321
+ _state = _useState[0],
322
+ setState = _useState[1];
323
+ var state = _state;
374
324
 
375
- var state = _state; // This copy of the state we only update when something requires us to
325
+ // This copy of the state we only update when something requires us to
376
326
  // unsubscribe and re-subscribe, namely a changed environment or
377
327
  // fragment selector.
378
-
379
328
  var _useState2 = useState(state),
380
- _subscribedState = _useState2[0],
381
- setSubscribedState = _useState2[1]; // FIXME since this is used as an effect dependency, it needs to be memoized.
382
-
383
-
329
+ _subscribedState = _useState2[0],
330
+ setSubscribedState = _useState2[1];
331
+ // FIXME since this is used as an effect dependency, it needs to be memoized.
384
332
  var subscribedState = _subscribedState;
385
-
386
333
  var _useState3 = useState(fragmentSelector),
387
- previousFragmentSelector = _useState3[0],
388
- setPreviousFragmentSelector = _useState3[1];
389
-
334
+ previousFragmentSelector = _useState3[0],
335
+ setPreviousFragmentSelector = _useState3[1];
390
336
  var _useState4 = useState(environment),
391
- previousEnvironment = _useState4[0],
392
- setPreviousEnvironment = _useState4[1];
393
-
337
+ previousEnvironment = _useState4[0],
338
+ setPreviousEnvironment = _useState4[1];
394
339
  if (!areEqualSelectors(fragmentSelector, previousFragmentSelector) || environment !== previousEnvironment) {
395
340
  // Enqueue setState to record the new selector and state
396
341
  setPreviousFragmentSelector(fragmentSelector);
@@ -401,39 +346,36 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
401
346
  // But render with the latest state w/o waiting for the setState. Otherwise
402
347
  // the component would render the wrong information temporarily (including
403
348
  // possibly incorrectly triggering some warnings below).
404
-
405
349
  state = newState;
406
350
  subscribedState = newState;
407
- } // The purpose of this is to detect whether we have ever committed, because we
351
+ }
352
+
353
+ // The purpose of this is to detect whether we have ever committed, because we
408
354
  // don't suspend on store updates, only when the component either is first trying
409
355
  // to mount or when the our selector changes. The selector change in particular is
410
356
  // how we suspend for pagination and refetech. Also, fragment selector can be null
411
357
  // or undefined, so we use false as a special value to distinguish from all fragment
412
358
  // selectors; false means that the component hasn't mounted yet.
413
-
414
-
415
359
  var committedFragmentSelectorRef = useRef(false);
416
360
  useEffect(function () {
417
361
  committedFragmentSelectorRef.current = fragmentSelector;
418
- }, [fragmentSelector]); // Handle the queries for any missing client edges; this may suspend.
419
- // FIXME handle client edges in parallel.
362
+ }, [fragmentSelector]);
420
363
 
364
+ // Handle the queries for any missing client edges; this may suspend.
365
+ // FIXME handle client edges in parallel.
421
366
  if (((_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.hasClientEdges) === true) {
422
367
  // The fragment is validated to be static (in useFragment) and hasClientEdges is
423
368
  // a static (constant) property of the fragment. In practice, this effect will
424
369
  // always or never run for a given invocation of this hook.
425
370
  // eslint-disable-next-line react-hooks/rules-of-hooks
426
371
  var clientEdgeQueries = useMemo(function () {
427
- var missingClientEdges = getMissingClientEdges(state); // eslint-disable-next-line no-shadow
428
-
372
+ var missingClientEdges = getMissingClientEdges(state);
373
+ // eslint-disable-next-line no-shadow
429
374
  var clientEdgeQueries;
430
-
431
375
  if (missingClientEdges !== null && missingClientEdges !== void 0 && missingClientEdges.length) {
432
376
  clientEdgeQueries = [];
433
-
434
377
  var _iterator7 = (0, _createForOfIteratorHelper2["default"])(missingClientEdges),
435
- _step7;
436
-
378
+ _step7;
437
379
  try {
438
380
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
439
381
  var edge = _step7.value;
@@ -445,20 +387,17 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
445
387
  _iterator7.f();
446
388
  }
447
389
  }
448
-
449
390
  return clientEdgeQueries;
450
- }, [state, environment, fragmentNode, fragmentRef, queryOptions]); // See above note
451
- // eslint-disable-next-line react-hooks/rules-of-hooks
391
+ }, [state, environment, fragmentNode, fragmentRef, queryOptions]);
452
392
 
393
+ // See above note
394
+ // eslint-disable-next-line react-hooks/rules-of-hooks
453
395
  useEffect(function () {
454
396
  var QueryResource = getQueryResourceForEnvironment(environment);
455
-
456
397
  if (clientEdgeQueries !== null && clientEdgeQueries !== void 0 && clientEdgeQueries.length) {
457
398
  var disposables = [];
458
-
459
399
  var _iterator8 = (0, _createForOfIteratorHelper2["default"])(clientEdgeQueries),
460
- _step8;
461
-
400
+ _step8;
462
401
  try {
463
402
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
464
403
  var query = _step8.value;
@@ -469,11 +408,9 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
469
408
  } finally {
470
409
  _iterator8.f();
471
410
  }
472
-
473
411
  return function () {
474
412
  var _iterator9 = (0, _createForOfIteratorHelper2["default"])(disposables),
475
- _step9;
476
-
413
+ _step9;
477
414
  try {
478
415
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
479
416
  var disposable = _step9.value;
@@ -488,64 +425,54 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
488
425
  }
489
426
  }, [environment, clientEdgeQueries]);
490
427
  }
491
-
492
428
  if (isMissingData(state)) {
493
429
  // Suspend if a Live Resolver within this fragment is in a suspended state:
494
430
  var suspendingLiveResolvers = getSuspendingLiveResolver(state);
495
-
496
431
  if (suspendingLiveResolvers != null && suspendingLiveResolvers.length > 0) {
497
432
  throw Promise.all(suspendingLiveResolvers.map(function (_ref) {
498
433
  var liveStateID = _ref.liveStateID;
499
434
  // $FlowFixMe[prop-missing] This is expected to be a LiveResolverStore
500
435
  return environment.getStore().getLiveResolverPromise(liveStateID);
501
436
  }));
502
- } // Suspend if an active operation bears on this fragment, either the
437
+ }
438
+ // Suspend if an active operation bears on this fragment, either the
503
439
  // fragment's owner or some other mutation etc. that could affect it.
504
440
  // We only suspend when the component is first trying to mount or changing
505
441
  // selectors, not if data becomes missing later:
506
-
507
-
508
442
  if (!committedFragmentSelectorRef.current || !areEqualSelectors(committedFragmentSelectorRef.current, fragmentSelector)) {
509
443
  !(fragmentSelector != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'refinement, see invariants above') : invariant(false) : void 0;
510
444
  var fragmentOwner = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors[0].owner : fragmentSelector.owner;
511
445
  var pendingOperationsResult = getPendingOperationsForFragment(environment, fragmentNode, fragmentOwner);
512
-
513
446
  if (pendingOperationsResult) {
514
447
  throw pendingOperationsResult.promise;
515
448
  }
516
- } // Report required fields only if we're not suspending, since that means
449
+ }
450
+ // Report required fields only if we're not suspending, since that means
517
451
  // they're missing even though we are out of options for possibly fetching them:
518
-
519
-
520
452
  handlePotentialSnapshotErrorsForState(environment, state);
521
453
  }
522
-
523
454
  useEffect(function () {
524
455
  // Check for updates since the state was rendered
525
456
  var currentState = subscribedState;
526
457
  var updates = handleMissedUpdates(environment, subscribedState);
527
-
528
458
  if (updates !== null) {
529
459
  var didMissUpdates = updates[0],
530
- updatedState = updates[1]; // TODO: didMissUpdates only checks for changes to snapshot data, but it's possible
460
+ updatedState = updates[1];
461
+ // TODO: didMissUpdates only checks for changes to snapshot data, but it's possible
531
462
  // that other snapshot properties may have changed that should also trigger a re-render,
532
463
  // such as changed missing resolver fields, missing client edges, etc.
533
464
  // A potential alternative is for handleMissedUpdates() to recycle the entire state
534
465
  // value, and return the new (recycled) state only if there was some change. In that
535
466
  // case the code would always setState if something in the snapshot changed, in addition
536
467
  // to using the latest snapshot to subscribe.
537
-
538
468
  if (didMissUpdates) {
539
469
  setState(updatedState);
540
470
  }
541
-
542
471
  currentState = updatedState;
543
472
  }
544
-
545
473
  return subscribeToSnapshot(environment, currentState, setState);
546
474
  }, [environment, subscribedState]);
547
475
  var data;
548
-
549
476
  if (isPlural) {
550
477
  // Plural fragments require allocating an array of the snasphot data values,
551
478
  // which has to be memoized to avoid triggering downstream re-renders.
@@ -554,7 +481,6 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
554
481
  // for a particular useFragment invocation site
555
482
  var fragmentRefIsNullish = fragmentRef == null; // for less sensitive memoization
556
483
  // eslint-disable-next-line react-hooks/rules-of-hooks
557
-
558
484
  data = useMemo(function () {
559
485
  if (state.kind === 'bailout') {
560
486
  // Bailout state can happen if the fragmentRef is a plural array that is empty or has no
@@ -575,7 +501,6 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
575
501
  !(state.kind === 'singular') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected state to be singular because fragment is singular') : invariant(false) : void 0;
576
502
  data = state.snapshot.data;
577
503
  }
578
-
579
504
  if (process.env.NODE_ENV !== "production") {
580
505
  if (fragmentRef != null && (data === undefined || Array.isArray(data) && data.length > 0 && data.every(function (d) {
581
506
  return d === undefined;
@@ -583,7 +508,6 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
583
508
  process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Expected to have been able to read non-null data for ' + 'fragment `%s` declared in ' + '`%s`, since fragment reference was non-null. ' + "Make sure that that `%s`'s parent isn't " + 'holding on to and/or passing a fragment reference for data that ' + 'has been deleted.', fragmentNode.name, hookDisplayName, hookDisplayName) : void 0;
584
509
  }
585
510
  }
586
-
587
511
  if (process.env.NODE_ENV !== "production") {
588
512
  // eslint-disable-next-line react-hooks/rules-of-hooks
589
513
  useDebugValue({
@@ -591,8 +515,6 @@ function useFragmentInternal_REACT_CACHE(fragmentNode, fragmentRef, hookDisplayN
591
515
  data: data
592
516
  });
593
517
  }
594
-
595
518
  return data;
596
519
  }
597
-
598
520
  module.exports = useFragmentInternal_REACT_CACHE;
@@ -4,38 +4,31 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @emails oncall+relay
8
7
  *
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
13
14
  var _require = require('../loadQuery'),
14
- useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
15
-
15
+ useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
16
16
  var useStaticFragmentNodeWarning = require('../useStaticFragmentNodeWarning');
17
-
18
17
  var useFragmentInternal = require('./useFragmentInternal_REACT_CACHE');
19
-
20
18
  var _require2 = require('react'),
21
- useDebugValue = _require2.useDebugValue;
22
-
19
+ useDebugValue = _require2.useDebugValue;
23
20
  var _require3 = require('relay-runtime'),
24
- getFragment = _require3.getFragment;
25
-
21
+ getFragment = _require3.getFragment;
26
22
  function useFragment(fragment, key) {
27
23
  // We need to use this hook in order to be able to track if
28
24
  // loadQuery was called during render
29
25
  useTrackLoadQueryInRender();
30
26
  var fragmentNode = getFragment(fragment);
31
-
32
27
  if (process.env.NODE_ENV !== "production") {
33
28
  // eslint-disable-next-line react-hooks/rules-of-hooks
34
29
  useStaticFragmentNodeWarning(fragmentNode, 'first argument of useFragment()');
35
30
  }
36
-
37
31
  var data = useFragmentInternal(fragmentNode, key, 'useFragment()');
38
-
39
32
  if (process.env.NODE_ENV !== "production") {
40
33
  // eslint-disable-next-line react-hooks/rules-of-hooks
41
34
  useDebugValue({
@@ -43,8 +36,6 @@ function useFragment(fragment, key) {
43
36
  data: data
44
37
  });
45
38
  }
46
-
47
39
  return data;
48
40
  }
49
-
50
41
  module.exports = useFragment;
@@ -5,51 +5,45 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  *
8
- * @emails oncall+relay
9
8
  * @format
9
+ * @oncall relay
10
10
  */
11
+
11
12
  'use strict';
12
13
 
13
14
  var _require = require('../loadQuery'),
14
- useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
15
-
15
+ useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
16
16
  var useMemoOperationDescriptor = require('../useMemoOperationDescriptor');
17
-
18
17
  var useRelayEnvironment = require('../useRelayEnvironment');
19
-
20
18
  var getQueryResultOrFetchQuery = require('./getQueryResultOrFetchQuery_REACT_CACHE');
21
-
22
19
  var useFragmentInternal = require('./useFragmentInternal_REACT_CACHE');
23
-
24
20
  var _require2 = require('react'),
25
- useEffect = _require2.useEffect;
26
-
21
+ useEffect = _require2.useEffect;
27
22
  function useLazyLoadQuery_REACT_CACHE(gqlQuery, variables, options) {
28
23
  var _options$networkCache;
29
-
30
24
  useTrackLoadQueryInRender();
31
25
  var environment = useRelayEnvironment();
32
26
  var queryOperationDescriptor = useMemoOperationDescriptor(gqlQuery, variables, (_options$networkCache = options === null || options === void 0 ? void 0 : options.networkCacheConfig) !== null && _options$networkCache !== void 0 ? _options$networkCache : {
33
27
  force: true
34
- }); // Get the query going if needed -- this may suspend.
28
+ });
35
29
 
30
+ // Get the query going if needed -- this may suspend.
36
31
  var _getQueryResultOrFetc = getQueryResultOrFetchQuery(environment, queryOperationDescriptor, {
37
- fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
38
- renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy,
39
- fetchKey: options === null || options === void 0 ? void 0 : options.fetchKey
40
- }),
41
- queryResult = _getQueryResultOrFetc[0],
42
- effect = _getQueryResultOrFetc[1];
43
-
44
- useEffect(effect); // Read the query's root fragment -- this may suspend.
45
-
32
+ fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
33
+ renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy,
34
+ fetchKey: options === null || options === void 0 ? void 0 : options.fetchKey
35
+ }),
36
+ queryResult = _getQueryResultOrFetc[0],
37
+ effect = _getQueryResultOrFetc[1];
38
+ useEffect(effect);
39
+
40
+ // Read the query's root fragment -- this may suspend.
46
41
  var fragmentNode = queryResult.fragmentNode,
47
- fragmentRef = queryResult.fragmentRef; // $FlowExpectedError[incompatible-return] Is this a fixable incompatible-return?
48
-
42
+ fragmentRef = queryResult.fragmentRef;
43
+ // $FlowExpectedError[incompatible-return] Is this a fixable incompatible-return?
49
44
  return useFragmentInternal(fragmentNode, fragmentRef, 'useLazyLoadQuery()', {
50
45
  fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
51
46
  networkCacheConfig: options === null || options === void 0 ? void 0 : options.networkCacheConfig
52
47
  });
53
48
  }
54
-
55
49
  module.exports = useLazyLoadQuery_REACT_CACHE;