@apollo/client 4.0.0-rc.5 → 4.0.0-rc.7

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 (631) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/README.md +40 -40
  3. package/__cjs/cache/core/cache.cjs +14 -13
  4. package/__cjs/cache/core/cache.cjs.map +1 -1
  5. package/__cjs/cache/core/cache.d.cts +77 -71
  6. package/__cjs/cache/core/types/Cache.cjs +0 -4
  7. package/__cjs/cache/core/types/Cache.cjs.map +1 -1
  8. package/__cjs/cache/core/types/Cache.d.cts +200 -15
  9. package/__cjs/cache/{core/types/DataProxy.cjs → deprecated.cjs} +1 -1
  10. package/__cjs/cache/deprecated.cjs.map +1 -0
  11. package/__cjs/cache/deprecated.d.cts +6 -0
  12. package/__cjs/cache/index.cjs.map +1 -1
  13. package/__cjs/cache/index.d.cts +2 -2
  14. package/__cjs/cache/inmemory/entityStore.cjs +25 -28
  15. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  16. package/__cjs/cache/inmemory/entityStore.d.cts +17 -16
  17. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  18. package/__cjs/cache/inmemory/inMemoryCache.d.cts +4 -4
  19. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  20. package/__cjs/cache/inmemory/policies.cjs +4 -4
  21. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  22. package/__cjs/cache/inmemory/policies.d.cts +3 -2
  23. package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
  24. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  25. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  26. package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
  27. package/__cjs/core/ApolloClient.cjs +94 -112
  28. package/__cjs/core/ApolloClient.cjs.map +1 -1
  29. package/__cjs/core/ApolloClient.d.cts +758 -182
  30. package/__cjs/core/ObservableQuery.cjs +10 -10
  31. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  32. package/__cjs/core/ObservableQuery.d.cts +131 -112
  33. package/__cjs/core/QueryInfo.cjs.map +1 -1
  34. package/__cjs/core/QueryInfo.d.cts +8 -7
  35. package/__cjs/core/QueryManager.cjs +15 -15
  36. package/__cjs/core/QueryManager.cjs.map +1 -1
  37. package/__cjs/core/QueryManager.d.cts +20 -20
  38. package/__cjs/core/deprecated.cjs +3 -0
  39. package/__cjs/core/deprecated.cjs.map +1 -0
  40. package/__cjs/core/deprecated.d.cts +29 -0
  41. package/__cjs/core/index.cjs.map +1 -1
  42. package/__cjs/core/index.d.cts +10 -6
  43. package/__cjs/core/types.d.cts +69 -157
  44. package/__cjs/core/watchQueryOptions.d.cts +8 -297
  45. package/__cjs/dev/setErrorMessageHandler.cjs.map +1 -1
  46. package/__cjs/dev/setErrorMessageHandler.d.cts +4 -4
  47. package/__cjs/errors/CombinedGraphQLErrors.cjs +64 -11
  48. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  49. package/__cjs/errors/CombinedGraphQLErrors.d.cts +168 -14
  50. package/__cjs/errors/CombinedProtocolErrors.cjs +54 -1
  51. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  52. package/__cjs/errors/CombinedProtocolErrors.d.cts +132 -2
  53. package/__cjs/errors/LinkError.cjs +45 -2
  54. package/__cjs/errors/LinkError.cjs.map +1 -1
  55. package/__cjs/errors/LinkError.d.cts +45 -2
  56. package/__cjs/errors/LocalStateError.cjs +35 -5
  57. package/__cjs/errors/LocalStateError.cjs.map +1 -1
  58. package/__cjs/errors/LocalStateError.d.cts +41 -5
  59. package/__cjs/errors/ServerError.cjs +51 -8
  60. package/__cjs/errors/ServerError.cjs.map +1 -1
  61. package/__cjs/errors/ServerError.d.cts +71 -11
  62. package/__cjs/errors/ServerParseError.cjs +46 -8
  63. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  64. package/__cjs/errors/ServerParseError.d.cts +72 -16
  65. package/__cjs/errors/UnconventionalError.cjs +46 -2
  66. package/__cjs/errors/UnconventionalError.cjs.map +1 -1
  67. package/__cjs/errors/UnconventionalError.d.cts +46 -2
  68. package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
  69. package/__cjs/incremental/handlers/defer20220824.d.cts +4 -4
  70. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  71. package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -1
  72. package/__cjs/incremental/handlers/notImplemented.d.cts +2 -2
  73. package/__cjs/incremental/types.d.cts +4 -4
  74. package/__cjs/invariantErrorCodes.cjs +81 -85
  75. package/__cjs/link/batch/batchLink.cjs +3 -9
  76. package/__cjs/link/batch/batchLink.cjs.map +1 -1
  77. package/__cjs/link/batch/batchLink.d.cts +2 -3
  78. package/__cjs/link/batch/batching.cjs +1 -1
  79. package/__cjs/link/batch/batching.cjs.map +1 -1
  80. package/__cjs/link/batch/batching.d.cts +7 -7
  81. package/__cjs/link/batch-http/batchHttpLink.cjs +8 -5
  82. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  83. package/__cjs/link/batch-http/batchHttpLink.d.cts +1 -2
  84. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
  85. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +4 -4
  86. package/__cjs/link/context/index.cjs +1 -1
  87. package/__cjs/link/context/index.cjs.map +1 -1
  88. package/__cjs/link/context/index.d.cts +4 -5
  89. package/__cjs/link/core/ApolloLink.cjs +227 -55
  90. package/__cjs/link/core/ApolloLink.cjs.map +1 -1
  91. package/__cjs/link/core/ApolloLink.d.cts +355 -9
  92. package/__cjs/link/core/concat.cjs +4 -0
  93. package/__cjs/link/core/concat.cjs.map +1 -1
  94. package/__cjs/link/core/concat.d.cts +4 -0
  95. package/__cjs/link/core/deprecated.cjs +3 -0
  96. package/__cjs/link/core/deprecated.cjs.map +1 -0
  97. package/__cjs/link/core/deprecated.d.cts +10 -0
  98. package/__cjs/link/core/empty.cjs +4 -0
  99. package/__cjs/link/core/empty.cjs.map +1 -1
  100. package/__cjs/link/core/empty.d.cts +4 -0
  101. package/__cjs/link/core/from.cjs +4 -0
  102. package/__cjs/link/core/from.cjs.map +1 -1
  103. package/__cjs/link/core/from.d.cts +4 -0
  104. package/__cjs/link/core/split.cjs +4 -0
  105. package/__cjs/link/core/split.cjs.map +1 -1
  106. package/__cjs/link/core/split.d.cts +4 -0
  107. package/__cjs/link/core/types.d.cts +2 -33
  108. package/__cjs/link/error/index.cjs.map +1 -1
  109. package/__cjs/link/error/index.d.cts +20 -6
  110. package/__cjs/link/http/BaseHttpLink.cjs +2 -2
  111. package/__cjs/link/http/BaseHttpLink.cjs.map +1 -1
  112. package/__cjs/link/http/HttpLink.cjs +4 -1
  113. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  114. package/__cjs/link/http/HttpLink.d.cts +3 -3
  115. package/__cjs/link/http/checkFetcher.cjs +1 -1
  116. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +41 -26
  117. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  118. package/__cjs/link/http/parseAndCheckHttpResponse.d.cts +2 -2
  119. package/__cjs/link/http/selectHttpOptionsAndBody.cjs.map +1 -1
  120. package/__cjs/link/http/selectHttpOptionsAndBody.d.cts +3 -3
  121. package/__cjs/link/http/selectURI.cjs.map +1 -1
  122. package/__cjs/link/http/selectURI.d.cts +2 -2
  123. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  124. package/__cjs/link/index.cjs.map +1 -1
  125. package/__cjs/link/index.d.cts +2 -1
  126. package/__cjs/link/persisted-queries/index.cjs +2 -2
  127. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  128. package/__cjs/link/persisted-queries/index.d.cts +11 -12
  129. package/__cjs/link/retry/delayFunction.cjs.map +1 -1
  130. package/__cjs/link/retry/delayFunction.d.cts +3 -3
  131. package/__cjs/link/retry/retryFunction.cjs.map +1 -1
  132. package/__cjs/link/retry/retryFunction.d.cts +4 -4
  133. package/__cjs/link/retry/retryLink.cjs +2 -2
  134. package/__cjs/link/retry/retryLink.cjs.map +1 -1
  135. package/__cjs/link/retry/retryLink.d.cts +1 -2
  136. package/__cjs/link/schema/index.cjs.map +1 -1
  137. package/__cjs/link/schema/index.d.cts +2 -3
  138. package/__cjs/link/subscriptions/index.cjs.map +1 -1
  139. package/__cjs/link/subscriptions/index.d.cts +1 -2
  140. package/__cjs/link/utils/createOperation.cjs +12 -4
  141. package/__cjs/link/utils/createOperation.cjs.map +1 -1
  142. package/__cjs/link/utils/createOperation.d.cts +2 -2
  143. package/__cjs/link/utils/index.cjs +1 -5
  144. package/__cjs/link/utils/index.cjs.map +1 -1
  145. package/__cjs/link/utils/index.d.cts +0 -2
  146. package/__cjs/link/ws/index.cjs.map +1 -1
  147. package/__cjs/link/ws/index.d.cts +1 -2
  148. package/__cjs/local-state/LocalState.cjs +55 -9
  149. package/__cjs/local-state/LocalState.cjs.map +1 -1
  150. package/__cjs/local-state/LocalState.d.cts +94 -0
  151. package/__cjs/masking/GraphQLCodegenDataMasking.d.cts +6 -7
  152. package/__cjs/masking/internal/types.d.cts +70 -70
  153. package/__cjs/masking/maskDefinition.cjs +2 -2
  154. package/__cjs/masking/maskFragment.cjs +2 -2
  155. package/__cjs/masking/maskOperation.cjs +1 -1
  156. package/__cjs/masking/utils.cjs +3 -3
  157. package/__cjs/react/context/ApolloContext.cjs +1 -1
  158. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  159. package/__cjs/react/hooks/internal/useDeepMemo.cjs +0 -3
  160. package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
  161. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -1
  162. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +2 -2
  163. package/__cjs/react/hooks/internal/wrapHook.cjs +1 -0
  164. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  165. package/__cjs/react/hooks/internal/wrapHook.d.cts +8 -7
  166. package/__cjs/react/hooks/useApolloClient.cjs +2 -2
  167. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  168. package/__cjs/react/hooks/useApolloClient.d.cts +2 -2
  169. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  170. package/__cjs/react/hooks/useBackgroundQuery.d.cts +850 -90
  171. package/__cjs/react/hooks/useFragment.cjs +7 -0
  172. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  173. package/__cjs/react/hooks/useFragment.d.cts +53 -2
  174. package/__cjs/react/hooks/useLazyQuery.cjs +0 -38
  175. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  176. package/__cjs/react/hooks/useLazyQuery.d.cts +317 -165
  177. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  178. package/__cjs/react/hooks/useLoadableQuery.d.cts +153 -175
  179. package/__cjs/react/hooks/useMutation.cjs +6 -7
  180. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  181. package/__cjs/react/hooks/useMutation.d.cts +87 -65
  182. package/__cjs/react/hooks/useQuery.cjs +1 -35
  183. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  184. package/__cjs/react/hooks/useQuery.d.cts +207 -103
  185. package/__cjs/react/hooks/useQueryRefHandlers.cjs +2 -1
  186. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  187. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +34 -5
  188. package/__cjs/react/hooks/useReactiveVar.cjs +2 -1
  189. package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
  190. package/__cjs/react/hooks/useReactiveVar.d.cts +2 -1
  191. package/__cjs/react/hooks/useReadQuery.cjs +29 -0
  192. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  193. package/__cjs/react/hooks/useReadQuery.d.cts +92 -16
  194. package/__cjs/react/hooks/useSubscription.cjs +8 -9
  195. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  196. package/__cjs/react/hooks/useSubscription.d.cts +108 -33
  197. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  198. package/__cjs/react/hooks/useSuspenseFragment.d.cts +61 -29
  199. package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -1
  200. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  201. package/__cjs/react/hooks/useSuspenseQuery.d.cts +471 -69
  202. package/__cjs/react/index.cjs +1 -3
  203. package/__cjs/react/index.cjs.map +1 -1
  204. package/__cjs/react/index.d.cts +0 -1
  205. package/__cjs/react/index.react-server.cjs +1 -3
  206. package/__cjs/react/index.react-server.cjs.map +1 -1
  207. package/__cjs/react/index.react-server.d.cts +0 -1
  208. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  209. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -3
  210. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  211. package/__cjs/react/internal/cache/QueryReference.d.cts +14 -12
  212. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  213. package/__cjs/react/internal/cache/SuspenseCache.d.cts +2 -2
  214. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  215. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +6 -4
  216. package/__cjs/react/internal/index.cjs +1 -0
  217. package/__cjs/react/internal/index.cjs.map +1 -1
  218. package/__cjs/react/internal/index.d.cts +1 -1
  219. package/__cjs/react/internal/types.d.cts +3 -3
  220. package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -1
  221. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  222. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +60 -51
  223. package/__cjs/react/ssr/prerenderStatic.cjs +5 -4
  224. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  225. package/__cjs/react/ssr/prerenderStatic.d.cts +11 -9
  226. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  227. package/__cjs/react/types/deprecated.d.cts +1 -1
  228. package/__cjs/react/types/types.documentation.d.cts +15 -15
  229. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  230. package/__cjs/testing/core/mocking/mockLink.d.cts +8 -8
  231. package/__cjs/testing/core/mocking/mockSubscriptionLink.cjs.map +1 -1
  232. package/__cjs/testing/core/mocking/mockSubscriptionLink.d.cts +3 -4
  233. package/__cjs/testing/core/types/deprecated.d.cts +3 -2
  234. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  235. package/__cjs/testing/react/MockedProvider.d.cts +2 -3
  236. package/__cjs/utilities/HKT.d.cts +8 -7
  237. package/__cjs/utilities/caching/sizes.cjs +3 -3
  238. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  239. package/__cjs/utilities/caching/sizes.d.cts +4 -6
  240. package/__cjs/utilities/graphql/DocumentTransform.cjs +2 -2
  241. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  242. package/__cjs/utilities/index.cjs +2 -3
  243. package/__cjs/utilities/index.cjs.map +1 -1
  244. package/__cjs/utilities/index.d.cts +1 -2
  245. package/__cjs/utilities/{shared → internal}/canonicalStringify.cjs +5 -7
  246. package/__cjs/utilities/internal/canonicalStringify.cjs.map +1 -0
  247. package/__cjs/utilities/{shared → internal}/canonicalStringify.d.cts +1 -1
  248. package/__cjs/utilities/internal/checkDocument.cjs +2 -2
  249. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  250. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -1
  251. package/__cjs/{core → utilities/internal}/equalByQuery.cjs +13 -7
  252. package/__cjs/utilities/internal/equalByQuery.cjs.map +1 -0
  253. package/__cjs/utilities/internal/equalByQuery.d.cts +5 -0
  254. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +13 -3
  255. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -1
  256. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +13 -3
  257. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  258. package/__cjs/utilities/internal/getStoreKeyName.cjs +1 -2
  259. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  260. package/__cjs/utilities/internal/index.cjs +6 -2
  261. package/__cjs/utilities/internal/index.cjs.map +1 -1
  262. package/__cjs/utilities/internal/index.d.cts +2 -0
  263. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -1
  264. package/__cjs/utilities/internal/mergeOptions.d.cts +2 -2
  265. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  266. package/__cjs/utilities/internal/toQueryResult.d.cts +2 -2
  267. package/__cjs/utilities/internal/types/DocumentationTypes.d.cts +32 -26
  268. package/__cjs/utilities/internal/types/NoInfer.d.cts +31 -25
  269. package/__cjs/utilities/internal/types/VariablesOption.d.cts +2 -6
  270. package/__cjs/utilities/subscriptions/relay/index.cjs +2 -0
  271. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  272. package/__cjs/version.cjs +1 -1
  273. package/cache/core/cache.d.ts +77 -71
  274. package/cache/core/cache.js +15 -14
  275. package/cache/core/cache.js.map +1 -1
  276. package/cache/core/types/Cache.d.ts +200 -15
  277. package/cache/core/types/Cache.js +1 -3
  278. package/cache/core/types/Cache.js.map +1 -1
  279. package/cache/deprecated.d.ts +6 -0
  280. package/cache/deprecated.js +2 -0
  281. package/cache/deprecated.js.map +1 -0
  282. package/cache/index.d.ts +2 -2
  283. package/cache/index.js.map +1 -1
  284. package/cache/inmemory/entityStore.d.ts +17 -16
  285. package/cache/inmemory/entityStore.js +25 -28
  286. package/cache/inmemory/entityStore.js.map +1 -1
  287. package/cache/inmemory/inMemoryCache.d.ts +4 -4
  288. package/cache/inmemory/inMemoryCache.js.map +1 -1
  289. package/cache/inmemory/key-extractor.js +1 -1
  290. package/cache/inmemory/policies.d.ts +3 -2
  291. package/cache/inmemory/policies.js +4 -4
  292. package/cache/inmemory/policies.js.map +1 -1
  293. package/cache/inmemory/readFromStore.js +2 -2
  294. package/cache/inmemory/writeToStore.d.ts +1 -1
  295. package/cache/inmemory/writeToStore.js +4 -4
  296. package/cache/inmemory/writeToStore.js.map +1 -1
  297. package/core/ApolloClient.d.ts +758 -182
  298. package/core/ApolloClient.js +94 -112
  299. package/core/ApolloClient.js.map +1 -1
  300. package/core/ObservableQuery.d.ts +131 -112
  301. package/core/ObservableQuery.js +10 -10
  302. package/core/ObservableQuery.js.map +1 -1
  303. package/core/QueryInfo.d.ts +8 -7
  304. package/core/QueryInfo.js.map +1 -1
  305. package/core/QueryManager.d.ts +20 -20
  306. package/core/QueryManager.js +15 -15
  307. package/core/QueryManager.js.map +1 -1
  308. package/core/deprecated.d.ts +29 -0
  309. package/core/deprecated.js +2 -0
  310. package/core/deprecated.js.map +1 -0
  311. package/core/index.d.ts +10 -6
  312. package/core/index.js.map +1 -1
  313. package/core/types.d.ts +69 -157
  314. package/core/types.js.map +1 -1
  315. package/core/watchQueryOptions.d.ts +9 -298
  316. package/core/watchQueryOptions.js.map +1 -1
  317. package/dev/setErrorMessageHandler.d.ts +4 -4
  318. package/dev/setErrorMessageHandler.js.map +1 -1
  319. package/errors/CombinedGraphQLErrors.d.ts +169 -15
  320. package/errors/CombinedGraphQLErrors.js +65 -12
  321. package/errors/CombinedGraphQLErrors.js.map +1 -1
  322. package/errors/CombinedProtocolErrors.d.ts +133 -3
  323. package/errors/CombinedProtocolErrors.js +55 -2
  324. package/errors/CombinedProtocolErrors.js.map +1 -1
  325. package/errors/LinkError.d.ts +45 -2
  326. package/errors/LinkError.js +45 -2
  327. package/errors/LinkError.js.map +1 -1
  328. package/errors/LocalStateError.d.ts +42 -6
  329. package/errors/LocalStateError.js +36 -6
  330. package/errors/LocalStateError.js.map +1 -1
  331. package/errors/ServerError.d.ts +72 -12
  332. package/errors/ServerError.js +52 -9
  333. package/errors/ServerError.js.map +1 -1
  334. package/errors/ServerParseError.d.ts +73 -17
  335. package/errors/ServerParseError.js +47 -9
  336. package/errors/ServerParseError.js.map +1 -1
  337. package/errors/UnconventionalError.d.ts +46 -2
  338. package/errors/UnconventionalError.js +46 -2
  339. package/errors/UnconventionalError.js.map +1 -1
  340. package/incremental/handlers/defer20220824.d.ts +4 -4
  341. package/incremental/handlers/defer20220824.js.map +1 -1
  342. package/incremental/handlers/notImplemented.d.ts +2 -2
  343. package/incremental/handlers/notImplemented.js +1 -1
  344. package/incremental/handlers/notImplemented.js.map +1 -1
  345. package/incremental/types.d.ts +4 -4
  346. package/incremental/types.js.map +1 -1
  347. package/invariantErrorCodes.js +81 -85
  348. package/link/batch/batchLink.d.ts +2 -3
  349. package/link/batch/batchLink.js +3 -9
  350. package/link/batch/batchLink.js.map +1 -1
  351. package/link/batch/batching.d.ts +7 -7
  352. package/link/batch/batching.js +2 -2
  353. package/link/batch/batching.js.map +1 -1
  354. package/link/batch-http/batchHttpLink.d.ts +1 -2
  355. package/link/batch-http/batchHttpLink.js +7 -4
  356. package/link/batch-http/batchHttpLink.js.map +1 -1
  357. package/link/client-awareness/ClientAwarenessLink.d.ts +4 -4
  358. package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
  359. package/link/context/index.d.ts +4 -5
  360. package/link/context/index.js +1 -1
  361. package/link/context/index.js.map +1 -1
  362. package/link/core/ApolloLink.d.ts +355 -9
  363. package/link/core/ApolloLink.js +228 -57
  364. package/link/core/ApolloLink.js.map +1 -1
  365. package/link/core/concat.d.ts +4 -0
  366. package/link/core/concat.js +4 -0
  367. package/link/core/concat.js.map +1 -1
  368. package/link/core/deprecated.d.ts +10 -0
  369. package/link/core/deprecated.js +2 -0
  370. package/link/core/deprecated.js.map +1 -0
  371. package/link/core/empty.d.ts +4 -0
  372. package/link/core/empty.js +4 -0
  373. package/link/core/empty.js.map +1 -1
  374. package/link/core/from.d.ts +4 -0
  375. package/link/core/from.js +4 -0
  376. package/link/core/from.js.map +1 -1
  377. package/link/core/split.d.ts +4 -0
  378. package/link/core/split.js +4 -0
  379. package/link/core/split.js.map +1 -1
  380. package/link/core/types.d.ts +2 -33
  381. package/link/core/types.js.map +1 -1
  382. package/link/error/index.d.ts +20 -6
  383. package/link/error/index.js.map +1 -1
  384. package/link/http/BaseHttpLink.js +2 -2
  385. package/link/http/BaseHttpLink.js.map +1 -1
  386. package/link/http/HttpLink.d.ts +3 -3
  387. package/link/http/HttpLink.js +4 -1
  388. package/link/http/HttpLink.js.map +1 -1
  389. package/link/http/checkFetcher.js +1 -1
  390. package/link/http/parseAndCheckHttpResponse.d.ts +2 -2
  391. package/link/http/parseAndCheckHttpResponse.js +41 -26
  392. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  393. package/link/http/selectHttpOptionsAndBody.d.ts +3 -3
  394. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  395. package/link/http/selectURI.d.ts +2 -2
  396. package/link/http/selectURI.js.map +1 -1
  397. package/link/http/serializeFetchParameter.js +1 -1
  398. package/link/index.d.ts +2 -1
  399. package/link/index.js.map +1 -1
  400. package/link/persisted-queries/index.d.ts +11 -12
  401. package/link/persisted-queries/index.js +2 -2
  402. package/link/persisted-queries/index.js.map +1 -1
  403. package/link/retry/delayFunction.d.ts +3 -3
  404. package/link/retry/delayFunction.js.map +1 -1
  405. package/link/retry/retryFunction.d.ts +4 -4
  406. package/link/retry/retryFunction.js.map +1 -1
  407. package/link/retry/retryLink.d.ts +1 -2
  408. package/link/retry/retryLink.js +2 -2
  409. package/link/retry/retryLink.js.map +1 -1
  410. package/link/schema/index.d.ts +2 -3
  411. package/link/schema/index.js.map +1 -1
  412. package/link/subscriptions/index.d.ts +1 -2
  413. package/link/subscriptions/index.js.map +1 -1
  414. package/link/utils/createOperation.d.ts +2 -2
  415. package/link/utils/createOperation.js +12 -4
  416. package/link/utils/createOperation.js.map +1 -1
  417. package/link/utils/index.d.ts +0 -2
  418. package/link/utils/index.js +0 -2
  419. package/link/utils/index.js.map +1 -1
  420. package/link/ws/index.d.ts +1 -2
  421. package/link/ws/index.js.map +1 -1
  422. package/local-state/LocalState.d.ts +94 -0
  423. package/local-state/LocalState.js +55 -9
  424. package/local-state/LocalState.js.map +1 -1
  425. package/masking/GraphQLCodegenDataMasking.d.ts +6 -7
  426. package/masking/GraphQLCodegenDataMasking.js.map +1 -1
  427. package/masking/internal/types.d.ts +70 -70
  428. package/masking/internal/types.js.map +1 -1
  429. package/masking/maskDefinition.js +2 -2
  430. package/masking/maskFragment.js +2 -2
  431. package/masking/maskOperation.js +1 -1
  432. package/masking/types.js.map +1 -1
  433. package/masking/utils.js +3 -3
  434. package/package.json +1 -1
  435. package/react/context/ApolloContext.js +1 -1
  436. package/react/context/ApolloProvider.js +1 -1
  437. package/react/hooks/internal/useDeepMemo.js +0 -3
  438. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  439. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +2 -2
  440. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -1
  441. package/react/hooks/internal/wrapHook.d.ts +8 -7
  442. package/react/hooks/internal/wrapHook.js +1 -0
  443. package/react/hooks/internal/wrapHook.js.map +1 -1
  444. package/react/hooks/useApolloClient.d.ts +2 -2
  445. package/react/hooks/useApolloClient.js +2 -2
  446. package/react/hooks/useApolloClient.js.map +1 -1
  447. package/react/hooks/useBackgroundQuery.d.ts +850 -90
  448. package/react/hooks/useBackgroundQuery.js.map +1 -1
  449. package/react/hooks/useFragment.d.ts +54 -3
  450. package/react/hooks/useFragment.js +7 -0
  451. package/react/hooks/useFragment.js.map +1 -1
  452. package/react/hooks/useLazyQuery.d.ts +317 -165
  453. package/react/hooks/useLazyQuery.js +0 -38
  454. package/react/hooks/useLazyQuery.js.map +1 -1
  455. package/react/hooks/useLoadableQuery.d.ts +153 -175
  456. package/react/hooks/useLoadableQuery.js.map +1 -1
  457. package/react/hooks/useMutation.d.ts +87 -65
  458. package/react/hooks/useMutation.js +6 -7
  459. package/react/hooks/useMutation.js.map +1 -1
  460. package/react/hooks/useQuery.d.ts +207 -103
  461. package/react/hooks/useQuery.js +1 -35
  462. package/react/hooks/useQuery.js.map +1 -1
  463. package/react/hooks/useQueryRefHandlers.d.ts +34 -5
  464. package/react/hooks/useQueryRefHandlers.js +2 -1
  465. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  466. package/react/hooks/useReactiveVar.d.ts +2 -1
  467. package/react/hooks/useReactiveVar.js +2 -1
  468. package/react/hooks/useReactiveVar.js.map +1 -1
  469. package/react/hooks/useReadQuery.d.ts +93 -17
  470. package/react/hooks/useReadQuery.js +29 -0
  471. package/react/hooks/useReadQuery.js.map +1 -1
  472. package/react/hooks/useSubscription.d.ts +108 -33
  473. package/react/hooks/useSubscription.js +8 -9
  474. package/react/hooks/useSubscription.js.map +1 -1
  475. package/react/hooks/useSuspenseFragment.d.ts +62 -30
  476. package/react/hooks/useSuspenseFragment.js.map +1 -1
  477. package/react/hooks/useSuspenseQuery.d.ts +471 -69
  478. package/react/hooks/useSuspenseQuery.js +4 -1
  479. package/react/hooks/useSuspenseQuery.js.map +1 -1
  480. package/react/hooks-compiled/internal/useDeepMemo.js +0 -3
  481. package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
  482. package/react/hooks-compiled/internal/validateSuspenseHookOptions.d.ts +2 -2
  483. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js.map +1 -1
  484. package/react/hooks-compiled/internal/wrapHook.d.ts +8 -7
  485. package/react/hooks-compiled/internal/wrapHook.js +1 -0
  486. package/react/hooks-compiled/internal/wrapHook.js.map +1 -1
  487. package/react/hooks-compiled/useApolloClient.d.ts +2 -2
  488. package/react/hooks-compiled/useApolloClient.js +2 -2
  489. package/react/hooks-compiled/useApolloClient.js.map +1 -1
  490. package/react/hooks-compiled/useBackgroundQuery.d.ts +850 -90
  491. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  492. package/react/hooks-compiled/useFragment.d.ts +54 -3
  493. package/react/hooks-compiled/useFragment.js +7 -0
  494. package/react/hooks-compiled/useFragment.js.map +1 -1
  495. package/react/hooks-compiled/useLazyQuery.d.ts +317 -165
  496. package/react/hooks-compiled/useLazyQuery.js +0 -38
  497. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  498. package/react/hooks-compiled/useLoadableQuery.d.ts +153 -175
  499. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  500. package/react/hooks-compiled/useMutation.d.ts +87 -65
  501. package/react/hooks-compiled/useMutation.js +6 -7
  502. package/react/hooks-compiled/useMutation.js.map +1 -1
  503. package/react/hooks-compiled/useQuery.d.ts +207 -103
  504. package/react/hooks-compiled/useQuery.js +1 -35
  505. package/react/hooks-compiled/useQuery.js.map +1 -1
  506. package/react/hooks-compiled/useQueryRefHandlers.d.ts +34 -5
  507. package/react/hooks-compiled/useQueryRefHandlers.js +2 -1
  508. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  509. package/react/hooks-compiled/useReactiveVar.d.ts +2 -1
  510. package/react/hooks-compiled/useReactiveVar.js +2 -1
  511. package/react/hooks-compiled/useReactiveVar.js.map +1 -1
  512. package/react/hooks-compiled/useReadQuery.d.ts +93 -17
  513. package/react/hooks-compiled/useReadQuery.js +29 -0
  514. package/react/hooks-compiled/useReadQuery.js.map +1 -1
  515. package/react/hooks-compiled/useSubscription.d.ts +108 -33
  516. package/react/hooks-compiled/useSubscription.js +8 -9
  517. package/react/hooks-compiled/useSubscription.js.map +1 -1
  518. package/react/hooks-compiled/useSuspenseFragment.d.ts +62 -30
  519. package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  520. package/react/hooks-compiled/useSuspenseQuery.d.ts +471 -69
  521. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  522. package/react/index.compiled.d.ts +0 -1
  523. package/react/index.compiled.js +0 -1
  524. package/react/index.compiled.js.map +1 -1
  525. package/react/index.d.ts +0 -1
  526. package/react/index.js +0 -1
  527. package/react/index.js.map +1 -1
  528. package/react/index.react-server.d.ts +0 -1
  529. package/react/index.react-server.js +0 -2
  530. package/react/index.react-server.js.map +1 -1
  531. package/react/internal/cache/FragmentReference.d.ts +2 -3
  532. package/react/internal/cache/FragmentReference.js.map +1 -1
  533. package/react/internal/cache/QueryReference.d.ts +14 -12
  534. package/react/internal/cache/QueryReference.js.map +1 -1
  535. package/react/internal/cache/SuspenseCache.d.ts +2 -2
  536. package/react/internal/cache/SuspenseCache.js.map +1 -1
  537. package/react/internal/cache/getSuspenseCache.d.ts +6 -4
  538. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  539. package/react/internal/index.d.ts +1 -1
  540. package/react/internal/index.js +1 -0
  541. package/react/internal/index.js.map +1 -1
  542. package/react/internal/types.d.ts +3 -3
  543. package/react/internal/types.js.map +1 -1
  544. package/react/query-preloader/createQueryPreloader.d.ts +60 -51
  545. package/react/query-preloader/createQueryPreloader.js +1 -1
  546. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  547. package/react/ssr/prerenderStatic.d.ts +11 -9
  548. package/react/ssr/prerenderStatic.js +5 -4
  549. package/react/ssr/prerenderStatic.js.map +1 -1
  550. package/react/ssr/useSSRQuery.js.map +1 -1
  551. package/react/types/deprecated.d.ts +1 -1
  552. package/react/types/deprecated.js.map +1 -1
  553. package/react/types/types.documentation.d.ts +15 -15
  554. package/react/types/types.documentation.js.map +1 -1
  555. package/testing/core/mocking/mockLink.d.ts +8 -8
  556. package/testing/core/mocking/mockLink.js.map +1 -1
  557. package/testing/core/mocking/mockSubscriptionLink.d.ts +3 -4
  558. package/testing/core/mocking/mockSubscriptionLink.js.map +1 -1
  559. package/testing/core/types/deprecated.d.ts +3 -2
  560. package/testing/core/types/deprecated.js.map +1 -1
  561. package/testing/react/MockedProvider.d.ts +2 -3
  562. package/testing/react/MockedProvider.js.map +1 -1
  563. package/utilities/HKT.d.ts +8 -7
  564. package/utilities/HKT.js.map +1 -1
  565. package/utilities/caching/sizes.d.ts +4 -6
  566. package/utilities/caching/sizes.js +3 -3
  567. package/utilities/caching/sizes.js.map +1 -1
  568. package/utilities/graphql/DocumentTransform.js +1 -1
  569. package/utilities/graphql/DocumentTransform.js.map +1 -1
  570. package/utilities/index.d.ts +1 -2
  571. package/utilities/index.js +1 -2
  572. package/utilities/index.js.map +1 -1
  573. package/utilities/{shared → internal}/canonicalStringify.d.ts +1 -1
  574. package/utilities/{shared → internal}/canonicalStringify.js +4 -6
  575. package/utilities/internal/canonicalStringify.js.map +1 -0
  576. package/utilities/internal/checkDocument.js +1 -1
  577. package/utilities/internal/checkDocument.js.map +1 -1
  578. package/utilities/internal/createFragmentMap.js.map +1 -1
  579. package/utilities/internal/equalByQuery.d.ts +5 -0
  580. package/{core → utilities/internal}/equalByQuery.js +7 -1
  581. package/utilities/internal/equalByQuery.js.map +1 -0
  582. package/utilities/internal/getFragmentQueryDocument.d.ts +13 -3
  583. package/utilities/internal/getFragmentQueryDocument.js +13 -3
  584. package/utilities/internal/getFragmentQueryDocument.js.map +1 -1
  585. package/utilities/internal/getMemoryInternals.js.map +1 -1
  586. package/utilities/internal/getStoreKeyName.js +1 -2
  587. package/utilities/internal/getStoreKeyName.js.map +1 -1
  588. package/utilities/internal/index.d.ts +2 -0
  589. package/utilities/internal/index.js +2 -0
  590. package/utilities/internal/index.js.map +1 -1
  591. package/utilities/internal/mergeOptions.d.ts +2 -2
  592. package/utilities/internal/mergeOptions.js.map +1 -1
  593. package/utilities/internal/toQueryResult.d.ts +2 -2
  594. package/utilities/internal/toQueryResult.js.map +1 -1
  595. package/utilities/internal/types/DocumentationTypes.d.ts +32 -26
  596. package/utilities/internal/types/DocumentationTypes.js.map +1 -1
  597. package/utilities/internal/types/NoInfer.d.ts +31 -25
  598. package/utilities/internal/types/NoInfer.js.map +1 -1
  599. package/utilities/internal/types/VariablesOption.d.ts +2 -6
  600. package/utilities/subscriptions/relay/index.js +2 -0
  601. package/utilities/subscriptions/relay/index.js.map +1 -1
  602. package/version.js +1 -1
  603. package/__cjs/cache/core/types/DataProxy.cjs.map +0 -1
  604. package/__cjs/cache/core/types/DataProxy.d.cts +0 -140
  605. package/__cjs/core/equalByQuery.cjs.map +0 -1
  606. package/__cjs/core/equalByQuery.d.cts +0 -4
  607. package/__cjs/link/utils/transformOperation.cjs +0 -22
  608. package/__cjs/link/utils/transformOperation.cjs.map +0 -1
  609. package/__cjs/link/utils/transformOperation.d.cts +0 -3
  610. package/__cjs/link/utils/validateOperation.cjs +0 -21
  611. package/__cjs/link/utils/validateOperation.cjs.map +0 -1
  612. package/__cjs/link/utils/validateOperation.d.cts +0 -3
  613. package/__cjs/react/context/ApolloConsumer.cjs +0 -16
  614. package/__cjs/react/context/ApolloConsumer.cjs.map +0 -1
  615. package/__cjs/react/context/ApolloConsumer.d.cts +0 -10
  616. package/__cjs/utilities/shared/canonicalStringify.cjs.map +0 -1
  617. package/cache/core/types/DataProxy.d.ts +0 -140
  618. package/cache/core/types/DataProxy.js +0 -2
  619. package/cache/core/types/DataProxy.js.map +0 -1
  620. package/core/equalByQuery.d.ts +0 -4
  621. package/core/equalByQuery.js.map +0 -1
  622. package/link/utils/transformOperation.d.ts +0 -3
  623. package/link/utils/transformOperation.js +0 -19
  624. package/link/utils/transformOperation.js.map +0 -1
  625. package/link/utils/validateOperation.d.ts +0 -3
  626. package/link/utils/validateOperation.js +0 -18
  627. package/link/utils/validateOperation.js.map +0 -1
  628. package/react/context/ApolloConsumer.d.ts +0 -10
  629. package/react/context/ApolloConsumer.js +0 -11
  630. package/react/context/ApolloConsumer.js.map +0 -1
  631. package/utilities/shared/canonicalStringify.js.map +0 -1
@@ -2,8 +2,10 @@ import type { TypedDocumentNode } from "@graphql-typed-document-node/core";
2
2
  import type { DocumentNode } from "graphql";
3
3
  import type { ApolloClient, DefaultContext, ErrorLike, ErrorPolicy, FetchPolicy, OperationVariables } from "@apollo/client";
4
4
  import type { MaybeMasked } from "@apollo/client/masking";
5
+ import type { DocumentationTypes as UtilityDocumentationTypes } from "@apollo/client/utilities/internal";
5
6
  import type { NoInfer, VariablesOption } from "@apollo/client/utilities/internal";
6
7
  export declare namespace useSubscription {
8
+ import _self = useSubscription;
7
9
  namespace Base {
8
10
  interface Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> {
9
11
  /**
@@ -36,33 +38,21 @@ export declare namespace useSubscription {
36
38
  extensions?: Record<string, any>;
37
39
  /**
38
40
  * Allows the registration of a callback function that will be triggered each time the `useSubscription` Hook / `Subscription` component completes the subscription.
39
- *
40
- * @since
41
- *
42
- * 3.7.0
43
41
  */
44
42
  onComplete?: () => void;
45
43
  /**
46
44
  * Allows the registration of a callback function that will be triggered each time the `useSubscription` Hook / `Subscription` component receives data. The callback `options` object param consists of the current Apollo Client instance in `client`, and the received subscription data in `data`.
47
- *
48
- * @since
49
- *
50
- * 3.7.0
51
45
  */
52
46
  onData?: (options: OnDataOptions<TData>) => any;
53
47
  /**
54
48
  * Allows the registration of a callback function that will be triggered each time the `useSubscription` Hook / `Subscription` component receives an error.
55
- *
56
- * @since
57
- *
58
- * 3.7.0
59
49
  */
60
50
  onError?: (error: ErrorLike) => void;
61
51
  /**
62
52
  * If `true`, the hook will not cause the component to rerender. This is useful when you want to control the rendering of your component yourself with logic in the `onData` and `onError` callbacks.
63
53
  *
64
54
  * Changing this to `true` when the hook already has `data` will reset the `data` to `undefined`.
65
- *
55
+ *
66
56
  * @defaultValue `false`
67
57
  */
68
58
  ignoreResults?: boolean;
@@ -70,17 +60,9 @@ export declare namespace useSubscription {
70
60
  }
71
61
  type Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> = Base.Options<TData, TVariables> & VariablesOption<TVariables>;
72
62
  namespace DocumentationTypes {
73
- interface Result<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Options<TData, TVariables> {
74
- /**
75
- * An object containing all of the GraphQL variables your query requires to execute.
76
- *
77
- * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
78
- *
79
- * @docGroup
80
- *
81
- * 1. Operation options
82
- */
83
- variables?: TVariables;
63
+ namespace useSubscription {
64
+ interface Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Options<TData, TVariables>, UtilityDocumentationTypes.VariableOptions<TVariables> {
65
+ }
84
66
  }
85
67
  }
86
68
  interface Result<TData = unknown> {
@@ -96,8 +78,102 @@ export declare namespace useSubscription {
96
78
  * A runtime error with `graphQLErrors` and `networkError` properties
97
79
  */
98
80
  error?: ErrorLike;
81
+ /**
82
+ * A function that when called will disconnect and reconnect the connection
83
+ * to the subscription. If the subscription is deduplicated, this will
84
+ * restart the connection for all deduplicated subscriptions.
85
+ */
99
86
  restart: () => void;
100
87
  }
88
+ namespace DocumentationTypes {
89
+ namespace useSubscription {
90
+ interface Result<TData = unknown> extends _self.Result<TData> {
91
+ }
92
+ }
93
+ }
94
+ namespace DocumentationTypes {
95
+ /**
96
+ * > Refer to the [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/) section for a more in-depth overview of `useSubscription`.
97
+ *
98
+ * @example
99
+ *
100
+ * ```jsx
101
+ * const COMMENTS_SUBSCRIPTION = gql`
102
+ * subscription OnCommentAdded($repoFullName: String!) {
103
+ * commentAdded(repoFullName: $repoFullName) {
104
+ * id
105
+ * content
106
+ * }
107
+ * }
108
+ * `;
109
+ *
110
+ * function DontReadTheComments({ repoFullName }) {
111
+ * const {
112
+ * data: { commentAdded },
113
+ * loading,
114
+ * } = useSubscription(COMMENTS_SUBSCRIPTION, { variables: { repoFullName } });
115
+ * return <h4>New comment: {!loading && commentAdded.content}</h4>;
116
+ * }
117
+ * ```
118
+ *
119
+ * @remarks
120
+ *
121
+ * #### Consider using `onData` instead of `useEffect`
122
+ *
123
+ * If you want to react to incoming data, please use the `onData` option instead of `useEffect`.
124
+ * State updates you make inside a `useEffect` hook might cause additional rerenders, and `useEffect` is mostly meant for side effects of rendering, not as an event handler.
125
+ * State updates made in an event handler like `onData` might - depending on the React version - be batched and cause only a single rerender.
126
+ *
127
+ * Consider the following component:
128
+ *
129
+ * ```jsx
130
+ * export function Subscriptions() {
131
+ * const { data, error, loading } = useSubscription(query);
132
+ * const [accumulatedData, setAccumulatedData] = useState([]);
133
+ *
134
+ * useEffect(() => {
135
+ * setAccumulatedData((prev) => [...prev, data]);
136
+ * }, [data]);
137
+ *
138
+ * return (
139
+ * <>
140
+ * {loading && <p>Loading...</p>}
141
+ * {JSON.stringify(accumulatedData, undefined, 2)}
142
+ * </>
143
+ * );
144
+ * }
145
+ * ```
146
+ *
147
+ * Instead of using `useEffect` here, we can re-write this component to use the `onData` callback function accepted in `useSubscription`'s `options` object:
148
+ *
149
+ * ```jsx
150
+ * export function Subscriptions() {
151
+ * const [accumulatedData, setAccumulatedData] = useState([]);
152
+ * const { data, error, loading } = useSubscription(query, {
153
+ * onData({ data }) {
154
+ * setAccumulatedData((prev) => [...prev, data]);
155
+ * },
156
+ * });
157
+ *
158
+ * return (
159
+ * <>
160
+ * {loading && <p>Loading...</p>}
161
+ * {JSON.stringify(accumulatedData, undefined, 2)}
162
+ * </>
163
+ * );
164
+ * }
165
+ * ```
166
+ *
167
+ * > ⚠️ **Note:** The `useSubscription` option `onData` is available in Apollo Client >= 3.7. In previous versions, the equivalent option is named `onSubscriptionData`.
168
+ *
169
+ * Now, the first message will be added to the `accumulatedData` array since `onData` is called _before_ the component re-renders. React 18 automatic batching is still in effect and results in a single re-render, but with `onData` we can guarantee each message received after the component mounts is added to `accumulatedData`.
170
+ *
171
+ * @param subscription - A GraphQL subscription document parsed into an AST by `gql`.
172
+ * @param options - Options to control how the subscription is executed.
173
+ * @returns Query result object
174
+ */
175
+ function useSubscription<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options?: useSubscription.Options<TData, TVariables>): useSubscription.Result<TData>;
176
+ }
101
177
  type OnDataResult<TData = unknown> = Omit<Result<TData>, "restart">;
102
178
  interface OnDataOptions<TData = unknown> {
103
179
  client: ApolloClient;
@@ -112,6 +188,7 @@ export declare namespace useSubscription {
112
188
  * > Refer to the [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/) section for a more in-depth overview of `useSubscription`.
113
189
  *
114
190
  * @example
191
+ *
115
192
  * ```jsx
116
193
  * const COMMENTS_SUBSCRIPTION = gql`
117
194
  * subscription OnCommentAdded($repoFullName: String!) {
@@ -130,7 +207,9 @@ export declare namespace useSubscription {
130
207
  * return <h4>New comment: {!loading && commentAdded.content}</h4>;
131
208
  * }
132
209
  * ```
210
+ *
133
211
  * @remarks
212
+ *
134
213
  * #### Consider using `onData` instead of `useEffect`
135
214
  *
136
215
  * If you want to react to incoming data, please use the `onData` option instead of `useEffect`.
@@ -162,14 +241,11 @@ export declare namespace useSubscription {
162
241
  * ```jsx
163
242
  * export function Subscriptions() {
164
243
  * const [accumulatedData, setAccumulatedData] = useState([]);
165
- * const { data, error, loading } = useSubscription(
166
- * query,
167
- * {
168
- * onData({ data }) {
169
- * setAccumulatedData((prev) => [...prev, data])
170
- * }
171
- * }
172
- * );
244
+ * const { data, error, loading } = useSubscription(query, {
245
+ * onData({ data }) {
246
+ * setAccumulatedData((prev) => [...prev, data]);
247
+ * },
248
+ * });
173
249
  *
174
250
  * return (
175
251
  * <>
@@ -184,7 +260,6 @@ export declare namespace useSubscription {
184
260
  *
185
261
  * Now, the first message will be added to the `accumulatedData` array since `onData` is called _before_ the component re-renders. React 18 automatic batching is still in effect and results in a single re-render, but with `onData` we can guarantee each message received after the component mounts is added to `accumulatedData`.
186
262
  *
187
- * @since 3.0.0
188
263
  * @param subscription - A GraphQL subscription document parsed into an AST by `gql`.
189
264
  * @param options - Options to control how the subscription is executed.
190
265
  * @returns Query result object
@@ -1 +1 @@
1
- {"version":3,"file":"useSuspenseFragment.cjs","sources":["../../../../src/react/hooks/useSuspenseFragment.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n DataValue,\n DocumentNode,\n OperationVariables,\n Reference,\n StoreObject,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type { FragmentType, MaybeMasked } from \"@apollo/client/masking\";\nimport { getSuspenseCache } from \"@apollo/client/react/internal\";\nimport type {\n NoInfer,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { FragmentKey } from \"../internal/cache/types.js\";\n\nimport { __use } from \"./internal/__use.js\";\nimport { wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\ntype From<TData> =\n | StoreObject\n | Reference\n | FragmentType<NoInfer<TData>>\n | string\n | null;\n\nexport declare namespace useSuspenseFragment {\n export type Options<TData, TVariables extends OperationVariables> = {\n /**\n * A GraphQL document created using the `gql` template string tag from\n * `graphql-tag` with one or more fragments which will be used to determine\n * the shape of data to read. If you provide more than one fragment in this\n * document then you must also specify `fragmentName` to select a single.\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * The name of the fragment in your GraphQL document to be used. If you do\n * not provide a `fragmentName` and there is only one fragment in your\n * `fragment` document then that fragment will be used.\n */\n fragmentName?: string;\n from: From<TData>;\n // Override this field to make it optional (default: true).\n optimistic?: boolean;\n /**\n * The instance of `ApolloClient` to use to look up the fragment.\n *\n * By default, the instance that's passed down via context is used, but you\n * can provide a different instance here.\n *\n * @docGroup 1. Operation options\n */\n client?: ApolloClient;\n } & VariablesOption<NoInfer<TVariables>>;\n\n export type Result<TData> = { data: DataValue.Complete<MaybeMasked<TData>> };\n}\n\nconst NULL_PLACEHOLDER = [] as unknown as [\n FragmentKey,\n Promise<MaybeMasked<any> | null>,\n];\n\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: NonNullable<From<TData>>;\n }\n): useSuspenseFragment.Result<TData>;\n\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: null;\n }\n): useSuspenseFragment.Result<null>;\n\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: From<TData>;\n }\n): useSuspenseFragment.Result<TData | null>;\n\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData>;\n\nexport function useSuspenseFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData | null> {\n \"use no memo\";\n return wrapHook(\n \"useSuspenseFragment\",\n // eslint-disable-next-line react-compiler/react-compiler\n useSuspenseFragment_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(options);\n}\n\nfunction useSuspenseFragment_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData | null> {\n const client = useApolloClient(options.client);\n const { from, variables } = options;\n const { cache } = client;\n\n const id = React.useMemo(\n () =>\n typeof from === \"string\" ? from\n : from === null ? null\n : cache.identify(from),\n [cache, from]\n ) as string | null;\n\n const fragmentRef =\n id === null ? null : (\n getSuspenseCache(client).getFragmentRef(\n [id, options.fragment, canonicalStringify(variables)],\n client,\n { ...options, variables: variables as TVariables, from: id }\n )\n );\n\n let [current, setPromise] = React.useState<\n [FragmentKey, Promise<MaybeMasked<TData> | null>]\n >(\n fragmentRef === null ? NULL_PLACEHOLDER : (\n [fragmentRef.key, fragmentRef.promise]\n )\n );\n\n React.useEffect(() => {\n if (fragmentRef === null) {\n return;\n }\n\n const dispose = fragmentRef.retain();\n const removeListener = fragmentRef.listen((promise) => {\n setPromise([fragmentRef.key, promise]);\n });\n\n return () => {\n dispose();\n removeListener();\n };\n }, [fragmentRef]);\n\n if (fragmentRef === null) {\n return { data: null };\n }\n\n if (current[0] !== fragmentRef.key) {\n // eslint-disable-next-line react-compiler/react-compiler\n current[0] = fragmentRef.key;\n current[1] = fragmentRef.promise;\n }\n\n const data = __use(current[1]);\n\n return { data };\n}\n"],"names":[],"mappings":";;AAwGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAxGA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAWA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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"}
1
+ {"version":3,"file":"useSuspenseFragment.cjs","sources":["../../../../src/react/hooks/useSuspenseFragment.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n DataValue,\n DocumentNode,\n OperationVariables,\n Reference,\n StoreObject,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type { FragmentType, MaybeMasked } from \"@apollo/client/masking\";\nimport type { FragmentKey } from \"@apollo/client/react/internal\";\nimport { getSuspenseCache } from \"@apollo/client/react/internal\";\nimport type {\n DocumentationTypes as UtilityDocumentationTypes,\n NoInfer,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\n\nimport { __use } from \"./internal/__use.js\";\nimport { wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\ntype From<TData> =\n | StoreObject\n | Reference\n | FragmentType<NoInfer<TData>>\n | string\n | null;\n\nexport declare namespace useSuspenseFragment {\n import _self = useSuspenseFragment;\n export namespace Base {\n export type Options<TData, TVariables extends OperationVariables> = {\n /**\n * A GraphQL document created using the `gql` template string tag from\n * `graphql-tag` with one or more fragments which will be used to determine\n * the shape of data to read. If you provide more than one fragment in this\n * document then you must also specify `fragmentName` to select a single.\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * The name of the fragment in your GraphQL document to be used. If you do\n * not provide a `fragmentName` and there is only one fragment in your\n * `fragment` document then that fragment will be used.\n */\n fragmentName?: string;\n from: From<TData>;\n // Override this field to make it optional (default: true).\n optimistic?: boolean;\n /**\n * The instance of `ApolloClient` to use to look up the fragment.\n *\n * By default, the instance that's passed down via context is used, but you\n * can provide a different instance here.\n *\n * @docGroup 1. Operation options\n */\n client?: ApolloClient;\n };\n }\n export type Options<\n TData,\n TVariables extends OperationVariables,\n > = Base.Options<TData, TVariables> & VariablesOption<NoInfer<TVariables>>;\n\n export namespace DocumentationTypes {\n export namespace useSuspenseFragment {\n export interface Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Options<TData, TVariables>,\n UtilityDocumentationTypes.VariableOptions<TVariables> {}\n }\n }\n\n export interface Result<TData> {\n data: DataValue.Complete<MaybeMasked<TData>>;\n }\n export namespace DocumentationTypes {\n export namespace useSuspenseFragment {\n export interface Result<TData = unknown> extends _self.Result<TData> {}\n }\n }\n\n export namespace DocumentationTypes {\n /** {@inheritDoc @apollo/client/react!useSuspenseFragment:function(1)} */\n export function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: useSuspenseFragment.Options<TData, TVariables>\n ): useSuspenseFragment.Result<TData>;\n }\n}\n\nconst NULL_PLACEHOLDER = [] as unknown as [\n FragmentKey,\n Promise<MaybeMasked<any> | null>,\n];\n\n/** #TODO documentation */\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: NonNullable<From<TData>>;\n }\n): useSuspenseFragment.Result<TData>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseFragment:function(1)} */\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: null;\n }\n): useSuspenseFragment.Result<null>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseFragment:function(1)} */\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables> & {\n from: From<TData>;\n }\n): useSuspenseFragment.Result<TData | null>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseFragment:function(1)} */\nexport function useSuspenseFragment<\n TData,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData>;\n\nexport function useSuspenseFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData | null> {\n \"use no memo\";\n return wrapHook(\n \"useSuspenseFragment\",\n // eslint-disable-next-line react-compiler/react-compiler\n useSuspenseFragment_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(options);\n}\n\nfunction useSuspenseFragment_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n options: useSuspenseFragment.Options<TData, TVariables>\n): useSuspenseFragment.Result<TData | null> {\n const client = useApolloClient(options.client);\n const { from, variables } = options;\n const { cache } = client;\n\n const id = React.useMemo(\n () =>\n typeof from === \"string\" ? from\n : from === null ? null\n : cache.identify(from),\n [cache, from]\n ) as string | null;\n\n const fragmentRef =\n id === null ? null : (\n getSuspenseCache(client).getFragmentRef(\n [id, options.fragment, canonicalStringify(variables)],\n client,\n { ...options, variables: variables as TVariables, from: id }\n )\n );\n\n let [current, setPromise] = React.useState<\n [FragmentKey, Promise<MaybeMasked<TData> | null>]\n >(\n fragmentRef === null ? NULL_PLACEHOLDER : (\n [fragmentRef.key, fragmentRef.promise]\n )\n );\n\n React.useEffect(() => {\n if (fragmentRef === null) {\n return;\n }\n\n const dispose = fragmentRef.retain();\n const removeListener = fragmentRef.listen((promise) => {\n setPromise([fragmentRef.key, promise]);\n });\n\n return () => {\n dispose();\n removeListener();\n };\n }, [fragmentRef]);\n\n if (fragmentRef === null) {\n return { data: null };\n }\n\n if (current[0] !== fragmentRef.key) {\n // eslint-disable-next-line react-compiler/react-compiler\n current[0] = fragmentRef.key;\n current[1] = fragmentRef.promise;\n }\n\n const data = __use(current[1]);\n\n return { data };\n}\n"],"names":[],"mappings":";;AA8IA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AA9IA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAWA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBAAA,CAAA;AA4EA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAyB,CAAzB,CAGC;AAwCD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAIjC,CAJF,CAAA,CAAA,CAAA,CAAA,CAAA,CAIyD,EAJzD;IAME,CAAF,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAe;IACb,CAAF,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAA,EAAS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAjB,CACI,CADJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACyB;IACrB,CAAJ,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACI,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,EACpB,CADJ,CAAA,EACI,CADJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACmB,CADnB,CACoB,CADpB,CAAA,CAAA,CAAA,CAAA,EAC2B,CAD3B,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EACuC,CADvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACgD,EAAE,CADlD,CAAA,CAAA,CAAA,CAAA,CAAA,CACyD,CAAC,CAD1D,CAAA,CAAA,CAAA,CAAA,EACiE,EAAE,CADnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC4E,CAAC,CAC1E,CAAC,CAFJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAEW,CAAC;AACZ;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAI3B,CAJF,CAAA,CAAA,CAAA,CAAA,CAAA,CAIyD,EAJzD;IAME,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,EAAA,EAAiB,CAAjB,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAhC,CAAiC,CAAjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAC,CAAzC,CAAA,CAAA,CAAA,CAAA,CAA+C,CAAC;IAC9C,CAAF,CAAA,CAAA,CAAA,EAAQ,EAAE,CAAV,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAA8B,CAA9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC;IACnC,CAAF,CAAA,CAAA,CAAA,EAAQ,EAAE,CAAV,CAAA,CAAA,CAAA,EAAA,EAAA,EAAoB,CAApB,CAAA,CAAA,CAAA,CAAA,CAA0B;IAExB,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,EAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CACtB,CADJ,EACO,CADP,EAEM,CAFN,CAAA,CAAA,CAAA,CAAA,EAEa,CAFb,CAAA,CAAA,EAAA,CAAA,CAAA,EAEsB,CAFtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAE+B,EAAE,CAFjC,CAAA,CAAA;QAGM,EAAE,CAAR,CAAA,CAAA,EAAA,CAAA,CAAA,EAAiB,CAAjB,CAAA,CAAA,EAAsB,EAAE,CAAxB,CAAA,CAAA;YACM,EAAE,CAAR,CAAA,CAAA,CAAA,CAAa,CAAC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAvB,CAAA,CAAA,CAA2B,CAAC,EACxB,CAAC,CADL,CAAA,CAAA,CAAA,CACU,EAAE,CADZ,CAAA,CAAA,CACgB,CAAC,CACG;IAElB,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EACI,CADJ,EAAA,CAAA,CAAA,EACW,CADX,CAAA,CAAA,EACgB,EAAE,CADlB,CAAA,CAAA,EACuB,EAAE,CACnB,CAFN,CAAA,EAEM,CAFN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEsB,CAFtB,CAEuB,CAFvB,CAAA,CAAA,CAAA,CAAA,CAE6B,CAAC,CAAC,CAF/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE6C,CACrC,CAAC,CAHT,CAGW,EAAE,CAHb,CAAA,CAAA,CAAA,CAAA,CAAA,CAGoB,CAAC,CAHrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAG6B,EAAE,CAH/B,CAAA,EAG+B,CAH/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGiD,CAHjD,CAGkD,CAHlD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAG2D,CAAC,CAAC,EACrD,CAJR,CAAA,CAAA,CAAA,CAAA,CAIc,EACN,EAAE,CALV,CAAA,CAKa,CALb,CAAA,CAAA,CAAA,CAAA,CAAA,CAKoB,EAAE,CALtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAK+B,EAAE,CALjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKwD,EAAE,CAL1D,CAAA,CAAA,CAK8D,EAAE,CALhE,EAAA,CAKoE,CAC7D,CACF;IAEH,CAAF,CAAA,EAAM,CAAC,CAAP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,EAA1B,EAA8B,CAA9B,CAAA,CAAA,CAAA,CAAmC,CAAC,CAApC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C,CAGxC,CAHJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAGoB,CAHpB,CAAA,CAAA,EAGyB,EAAE,CAH3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAG4C,EAAE,CACxC,CAAC,CAJP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIkB,CAAC,CAJnB,CAAA,CAIsB,EAAE,CAJxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAImC,CAAC,CAJpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAI2C,CAAC,CACvC,CACF;IAED,CAAF,CAAA,CAAA,CAAA,CAAO,CAAC,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAlB,EAAqB,CAArB,EAAA;QACI,CAAJ,EAAA,CAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAwB,CAAxB,CAAA,CAAA,CAA4B,EAAE;YACxB,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA;QACI;QAEA,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAoB,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAtC,CAAwC;QACpC,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAA2B,CAA3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC,CAAvC,CAAA,CAAA,CAAA,CAAA,CAA6C,CAAC,CAAC,CAA/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsD,EAAE,CAAxD,EAAA;YACM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAC,CAA9B,CAAA,CAAiC,EAAE,CAAnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,EAAc,CAAd,EAAA;YACM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAb,CAAe;YACT,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAApB,CAAsB;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC;IAEjB,CAAF,EAAA,CAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAsB,CAAtB,CAAA,CAAA,CAA0B,EAAE;QACxB,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,EAAE,CAAb,CAAA,CAAA,CAAiB,EAAE,CAAnB,CAAA,CAAA,EAAA,CAAyB;IACvB;IAEA,CAAF,EAAA,CAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,EAAf,CAAA,CAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC,CAAjC,CAAA,CAAoC,EAAE;QAClC,CAAJ,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACI,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,EAAb,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAgC;QAC5B,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,EAAb,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC;IAClC;IAEA,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,CAAA,CAAA,EAAA,EAAe,CAAf,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAApB,CAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAAC,CAAC,CAAC;IAE9B,CAAF,CAAA,CAAA,CAAA,CAAA,EAAS,EAAE,CAAX,CAAA,CAAA,EAAA,CAAiB;AACjB;"}
@@ -1,47 +1,79 @@
1
1
  import type { ApolloClient, DataValue, DocumentNode, OperationVariables, Reference, StoreObject, TypedDocumentNode } from "@apollo/client";
2
2
  import type { FragmentType, MaybeMasked } from "@apollo/client/masking";
3
- import type { NoInfer, VariablesOption } from "@apollo/client/utilities/internal";
3
+ import type { DocumentationTypes as UtilityDocumentationTypes, NoInfer, VariablesOption } from "@apollo/client/utilities/internal";
4
4
  type From<TData> = StoreObject | Reference | FragmentType<NoInfer<TData>> | string | null;
5
5
  export declare namespace useSuspenseFragment {
6
- type Options<TData, TVariables extends OperationVariables> = {
7
- /**
8
- * A GraphQL document created using the `gql` template string tag from
9
- * `graphql-tag` with one or more fragments which will be used to determine
10
- * the shape of data to read. If you provide more than one fragment in this
11
- * document then you must also specify `fragmentName` to select a single.
12
- */
13
- fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;
14
- /**
15
- * The name of the fragment in your GraphQL document to be used. If you do
16
- * not provide a `fragmentName` and there is only one fragment in your
17
- * `fragment` document then that fragment will be used.
18
- */
19
- fragmentName?: string;
20
- from: From<TData>;
21
- optimistic?: boolean;
22
- /**
23
- * The instance of `ApolloClient` to use to look up the fragment.
24
- *
25
- * By default, the instance that's passed down via context is used, but you
26
- * can provide a different instance here.
27
- *
28
- * @docGroup 1. Operation options
29
- */
30
- client?: ApolloClient;
31
- } & VariablesOption<NoInfer<TVariables>>;
32
- type Result<TData> = {
6
+ import _self = useSuspenseFragment;
7
+ namespace Base {
8
+ type Options<TData, TVariables extends OperationVariables> = {
9
+ /**
10
+ * A GraphQL document created using the `gql` template string tag from
11
+ * `graphql-tag` with one or more fragments which will be used to determine
12
+ * the shape of data to read. If you provide more than one fragment in this
13
+ * document then you must also specify `fragmentName` to select a single.
14
+ */
15
+ fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;
16
+ /**
17
+ * The name of the fragment in your GraphQL document to be used. If you do
18
+ * not provide a `fragmentName` and there is only one fragment in your
19
+ * `fragment` document then that fragment will be used.
20
+ */
21
+ fragmentName?: string;
22
+ from: From<TData>;
23
+ optimistic?: boolean;
24
+ /**
25
+ * The instance of `ApolloClient` to use to look up the fragment.
26
+ *
27
+ * By default, the instance that's passed down via context is used, but you
28
+ * can provide a different instance here.
29
+ *
30
+ * @docGroup 1. Operation options
31
+ */
32
+ client?: ApolloClient;
33
+ };
34
+ }
35
+ type Options<TData, TVariables extends OperationVariables> = Base.Options<TData, TVariables> & VariablesOption<NoInfer<TVariables>>;
36
+ namespace DocumentationTypes {
37
+ namespace useSuspenseFragment {
38
+ interface Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Options<TData, TVariables>, UtilityDocumentationTypes.VariableOptions<TVariables> {
39
+ }
40
+ }
41
+ }
42
+ interface Result<TData> {
33
43
  data: DataValue.Complete<MaybeMasked<TData>>;
34
- };
44
+ }
45
+ namespace DocumentationTypes {
46
+ namespace useSuspenseFragment {
47
+ interface Result<TData = unknown> extends _self.Result<TData> {
48
+ }
49
+ }
50
+ }
51
+ namespace DocumentationTypes {
52
+ /**
53
+ * #TODO documentation
54
+ */
55
+ function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables>): useSuspenseFragment.Result<TData>;
56
+ }
35
57
  }
58
+ /** #TODO documentation */
36
59
  export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
37
60
  from: NonNullable<From<TData>>;
38
61
  }): useSuspenseFragment.Result<TData>;
62
+ /**
63
+ * #TODO documentation
64
+ */
39
65
  export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
40
66
  from: null;
41
67
  }): useSuspenseFragment.Result<null>;
68
+ /**
69
+ * #TODO documentation
70
+ */
42
71
  export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
43
72
  from: From<TData>;
44
73
  }): useSuspenseFragment.Result<TData | null>;
74
+ /**
75
+ * #TODO documentation
76
+ */
45
77
  export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables>): useSuspenseFragment.Result<TData>;
46
78
  export {};
47
79
  //# sourceMappingURL=useSuspenseFragment.d.cts.map
@@ -98,7 +98,10 @@ function useSuspenseQuery_(query, options) {
98
98
  function useWatchQueryOptions({ client, query, options, }) {
99
99
  return (0, index_js_1.useDeepMemo)(() => {
100
100
  if (options === constants_js_1.skipToken) {
101
- return { query, fetchPolicy: "standby" };
101
+ return {
102
+ query,
103
+ fetchPolicy: "standby",
104
+ };
102
105
  }
103
106
  const fetchPolicy = options.fetchPolicy ||
104
107
  client.defaultOptions.watchQuery?.fetchPolicy ||
@@ -1 +1 @@
1
- {"version":3,"file":"useSuspenseQuery.cjs","sources":["../../../../src/react/hooks/useSuspenseQuery.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n ApolloQueryResult,\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorLike,\n ErrorPolicy,\n GetDataState,\n MaybeMasked,\n OperationVariables,\n RefetchWritePolicy,\n TypedDocumentNode,\n WatchQueryFetchPolicy,\n WatchQueryOptions,\n} from \"@apollo/client\";\nimport type { SubscribeToMoreFunction } from \"@apollo/client\";\nimport { NetworkStatus } from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type {\n CacheKey,\n FetchMoreFunction,\n QueryKey,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport { getSuspenseCache } from \"@apollo/client/react/internal\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type {\n DocumentationTypes as UtilityDocumentationTypes,\n NoInfer,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { SkipToken } from \"./constants.js\";\nimport { skipToken } from \"./constants.js\";\nimport { __use, useDeepMemo, wrapHook } from \"./internal/index.js\";\nimport { validateSuspenseHookOptions } from \"./internal/validateSuspenseHookOptions.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\nexport declare namespace useSuspenseQuery {\n export type FetchPolicy = Extract<\n WatchQueryFetchPolicy,\n \"cache-first\" | \"network-only\" | \"no-cache\" | \"cache-and-network\"\n >;\n\n export namespace Base {\n export interface Options<\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client?: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#context:member} */\n context?: DefaultContext;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#errorPolicy:member} */\n errorPolicy?: ErrorPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy_suspense:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#fetchPolicy:member} */\n fetchPolicy?: FetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#queryKey:member} */\n queryKey?: string | number | any[];\n\n /**\n * {@inheritDoc @apollo/client!QueryOptionsDocumentation#skip_deprecated:member}\n *\n * @example Recommended usage of `skipToken`:\n * ```ts\n * import { skipToken, useSuspenseQuery } from '@apollo/client';\n *\n * const { data } = useSuspenseQuery(query, id ? { variables: { id } } : skipToken);\n * ```\n */\n skip?: boolean;\n }\n }\n export type Options<\n TVariables extends OperationVariables = OperationVariables,\n > = Base.Options<TVariables> & VariablesOption<TVariables>;\n\n export namespace DocumentationTypes {\n export interface Options<\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Options<TVariables> {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#variables:member} */\n variables?: TVariables;\n }\n }\n\n export namespace Base {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#error:member} */\n error: ErrorLike | undefined;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#networkStatus:member} */\n networkStatus: NetworkStatus;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member} */\n refetch: RefetchFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#subscribeToMore:member} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n }\n }\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n > = Base.Result<TData, TVariables> &\n GetDataState<MaybeMasked<TData>, TStates>;\n\n export namespace DocumentationTypes {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Result<TData, TVariables>,\n UtilityDocumentationTypes.DataState<TData> {}\n }\n}\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy: \"ignore\" | \"all\";\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n errorPolicy: \"ignore\" | \"all\";\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n skip: boolean;\n returnPartialData: true;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"empty\" | \"streaming\" | \"partial\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"partial\" | \"streaming\" | \"complete\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n skip: boolean;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n })\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"streaming\" | \"complete\" | \"partial\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: useSuspenseQuery.Options<NoInfer<TVariables>>]\n : [options: useSuspenseQuery.Options<NoInfer<TVariables>>]\n): useSuspenseQuery.Result<TData, TVariables, \"complete\" | \"streaming\">;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]\n : [options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"streaming\" | \"complete\" | \"partial\"\n> {\n \"use no memo\";\n return wrapHook(\n \"useSuspenseQuery\",\n // eslint-disable-next-line react-compiler/react-compiler\n useSuspenseQuery_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(query, options ?? ({} as any));\n}\n\nfunction useSuspenseQuery_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | (SkipToken & Partial<useSuspenseQuery.Options<TVariables>>)\n | useSuspenseQuery.Options<TVariables>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"partial\" | \"complete\" | \"streaming\" | \"empty\"\n> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions<any, any>({\n client,\n query,\n options,\n });\n const { fetchPolicy, variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n let [current, setPromise] = React.useState<\n [QueryKey, Promise<ApolloQueryResult<any>>]\n >([queryRef.key, queryRef.promise]);\n\n // This saves us a re-execution of the render function when a variable changed.\n if (current[0] !== queryRef.key) {\n // eslint-disable-next-line react-compiler/react-compiler\n current[0] = queryRef.key;\n current[1] = queryRef.promise;\n }\n let promise = current[1];\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n current[1] = promise = queryRef.applyOptions(watchQueryOptions);\n }\n\n React.useEffect(() => {\n const dispose = queryRef.retain();\n\n const removeListener = queryRef.listen((promise) => {\n setPromise([queryRef.key, promise]);\n });\n\n return () => {\n removeListener();\n dispose();\n };\n }, [queryRef]);\n\n const skipResult = React.useMemo<ApolloQueryResult<TData>>(() => {\n const error = queryRef.result.error;\n const complete = !!queryRef.result.data;\n\n return {\n loading: false,\n data: queryRef.result.data,\n dataState: queryRef.result.dataState,\n networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,\n error,\n complete,\n partial: !complete,\n };\n }, [queryRef.result]);\n\n const result = fetchPolicy === \"standby\" ? skipResult : __use(promise);\n\n const fetchMore = React.useCallback<\n FetchMoreFunction<unknown, OperationVariables>\n >(\n (options) => {\n const promise = queryRef.fetchMore(options);\n setPromise([queryRef.key, queryRef.promise]);\n\n return promise;\n },\n [queryRef]\n ) as FetchMoreFunction<TData | undefined, TVariables>;\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n setPromise([queryRef.key, queryRef.promise]);\n\n return promise;\n },\n [queryRef]\n );\n\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n const subscribeToMore = queryRef.observable\n .subscribeToMore as SubscribeToMoreFunction<TData | undefined, TVariables>;\n\n return React.useMemo<\n useSuspenseQuery.Result<TData, TVariables, DataState<TData>[\"dataState\"]>\n >(() => {\n return {\n client,\n data: result.data,\n dataState: result.dataState,\n error: result.error,\n networkStatus: result.networkStatus,\n fetchMore,\n refetch,\n subscribeToMore,\n } as useSuspenseQuery.Result<\n TData,\n TVariables,\n DataState<TData>[\"dataState\"]\n >;\n }, [client, fetchMore, refetch, result, subscribeToMore]);\n}\n\ninterface UseWatchQueryOptionsHookOptions<\n TData,\n TVariables extends OperationVariables,\n> {\n client: ApolloClient;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: SkipToken | useSuspenseQuery.Options<TVariables>;\n}\n\nexport function useWatchQueryOptions<\n TData,\n TVariables extends OperationVariables,\n>({\n client,\n query,\n options,\n}: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<\n TVariables,\n TData\n> {\n return useDeepMemo<WatchQueryOptions<TVariables, TData>>(() => {\n if (options === skipToken) {\n return { query, fetchPolicy: \"standby\" } as WatchQueryOptions<\n TVariables,\n TData\n >;\n }\n\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n \"cache-first\";\n\n const watchQueryOptions: WatchQueryOptions<TVariables, TData> = {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateSuspenseHookOptions(watchQueryOptions);\n }\n\n // Assign the updated fetch policy after our validation since `standby` is\n // not a supported fetch policy on its own without the use of `skip`.\n if (options.skip) {\n watchQueryOptions.fetchPolicy = \"standby\";\n }\n\n return watchQueryOptions;\n }, [client, options, query]);\n}\n"],"names":[],"mappings":";;AAuQA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA0JA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAjaA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAmBA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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"}
1
+ {"version":3,"file":"useSuspenseQuery.cjs","sources":["../../../../src/react/hooks/useSuspenseQuery.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorLike,\n ErrorPolicy,\n GetDataState,\n MaybeMasked,\n ObservableQuery,\n OperationVariables,\n RefetchWritePolicy,\n TypedDocumentNode,\n WatchQueryFetchPolicy,\n} from \"@apollo/client\";\nimport type { SubscribeToMoreFunction } from \"@apollo/client\";\nimport { NetworkStatus } from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type {\n CacheKey,\n FetchMoreFunction,\n QueryKey,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport { getSuspenseCache } from \"@apollo/client/react/internal\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type {\n DocumentationTypes as UtilityDocumentationTypes,\n NoInfer,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { SkipToken } from \"./constants.js\";\nimport { skipToken } from \"./constants.js\";\nimport { __use, useDeepMemo, wrapHook } from \"./internal/index.js\";\nimport { validateSuspenseHookOptions } from \"./internal/validateSuspenseHookOptions.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\nexport declare namespace useSuspenseQuery {\n export type FetchPolicy = Extract<\n WatchQueryFetchPolicy,\n \"cache-first\" | \"network-only\" | \"no-cache\" | \"cache-and-network\"\n >;\n\n export namespace Base {\n export interface Options<\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client?: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#context:member} */\n context?: DefaultContext;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#errorPolicy:member} */\n errorPolicy?: ErrorPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy_suspense:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#fetchPolicy:member} */\n fetchPolicy?: FetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#queryKey:member} */\n queryKey?: string | number | any[];\n\n /**\n * {@inheritDoc @apollo/client!QueryOptionsDocumentation#skip_deprecated:member}\n *\n * @example Recommended usage of `skipToken`:\n *\n * ```ts\n * import { skipToken, useSuspenseQuery } from \"@apollo/client\";\n *\n * const { data } = useSuspenseQuery(\n * query,\n * id ? { variables: { id } } : skipToken\n * );\n * ```\n */\n skip?: boolean;\n }\n }\n export type Options<\n TVariables extends OperationVariables = OperationVariables,\n > = Base.Options<TVariables> & VariablesOption<TVariables>;\n\n export namespace DocumentationTypes {\n namespace useSuspenseQuery {\n export interface Options<\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Options<TVariables>,\n UtilityDocumentationTypes.VariableOptions<TVariables> {}\n }\n }\n\n export namespace Base {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#error:member} */\n error: ErrorLike | undefined;\n\n /**\n * {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member}\n *\n * @remarks\n * Calling this function will cause the component to re-suspend, unless the call site is wrapped in [`startTransition`](https://react.dev/reference/react/startTransition).\n */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#networkStatus:member} */\n networkStatus: NetworkStatus;\n\n /**\n * {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member}\n *\n * @remarks\n * Calling this function will cause the component to re-suspend, unless the call site is wrapped in [`startTransition`](https://react.dev/reference/react/startTransition).\n */\n refetch: RefetchFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#subscribeToMore:member} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n }\n }\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n > = Base.Result<TData, TVariables> &\n GetDataState<MaybeMasked<TData>, TStates>;\n\n export namespace DocumentationTypes {\n namespace useSuspenseQuery {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Result<TData, TVariables>,\n UtilityDocumentationTypes.DataState<TData> {}\n }\n }\n export namespace DocumentationTypes {\n /** Test {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\n export function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: useSuspenseQuery.Options<TVariables>\n ): useSuspenseQuery.Result<TData, TVariables>;\n }\n}\n\n/**\n * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).\n *\n * @example\n *\n * ```jsx\n * import { Suspense } from \"react\";\n * import { useSuspenseQuery } from \"@apollo/client\";\n *\n * const listQuery = gql`\n * query {\n * list {\n * id\n * }\n * }\n * `;\n *\n * function App() {\n * return (\n * <Suspense fallback={<Spinner />}>\n * <List />\n * </Suspense>\n * );\n * }\n *\n * function List() {\n * const { data } = useSuspenseQuery(listQuery);\n *\n * return (\n * <ol>\n * {data.list.map((item) => (\n * <Item key={item.id} id={item.id} />\n * ))}\n * </ol>\n * );\n * }\n * ```\n *\n * @param query - A GraphQL query document parsed into an AST by `gql`.\n * @param options - An optional object containing options for the query. Instead of passing a `useSuspenseQuery.Options` object into the hook, you can also pass a [`skipToken`](#skiptoken) to prevent the `useSuspenseQuery` hook from executing the query or suspending.\n */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy: \"ignore\" | \"all\";\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n errorPolicy: \"ignore\" | \"all\";\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n skip: boolean;\n returnPartialData: true;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"empty\" | \"streaming\" | \"partial\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"partial\" | \"streaming\" | \"complete\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useSuspenseQuery.Options<NoInfer<TVariables>> & {\n skip: boolean;\n }\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useSuspenseQuery.Options<NoInfer<TVariables>> & {\n returnPartialData: true;\n })\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"streaming\" | \"complete\" | \"partial\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: useSuspenseQuery.Options<NoInfer<TVariables>>]\n : [options: useSuspenseQuery.Options<NoInfer<TVariables>>]\n): useSuspenseQuery.Result<TData, TVariables, \"complete\" | \"streaming\">;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]\n : [options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useSuspenseQuery:function(1)} */\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"streaming\" | \"complete\" | \"partial\"\n> {\n \"use no memo\";\n return wrapHook(\n \"useSuspenseQuery\",\n // eslint-disable-next-line react-compiler/react-compiler\n useSuspenseQuery_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(query, options ?? ({} as any));\n}\n\nfunction useSuspenseQuery_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | (SkipToken & Partial<useSuspenseQuery.Options<TVariables>>)\n | useSuspenseQuery.Options<TVariables>\n): useSuspenseQuery.Result<\n TData,\n TVariables,\n \"partial\" | \"complete\" | \"streaming\" | \"empty\"\n> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions<any, any>({\n client,\n query,\n options,\n });\n const { fetchPolicy, variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n let [current, setPromise] = React.useState<\n [QueryKey, Promise<ObservableQuery.Result<any>>]\n >([queryRef.key, queryRef.promise]);\n\n // This saves us a re-execution of the render function when a variable changed.\n if (current[0] !== queryRef.key) {\n // eslint-disable-next-line react-compiler/react-compiler\n current[0] = queryRef.key;\n current[1] = queryRef.promise;\n }\n let promise = current[1];\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n current[1] = promise = queryRef.applyOptions(watchQueryOptions);\n }\n\n React.useEffect(() => {\n const dispose = queryRef.retain();\n\n const removeListener = queryRef.listen((promise) => {\n setPromise([queryRef.key, promise]);\n });\n\n return () => {\n removeListener();\n dispose();\n };\n }, [queryRef]);\n\n const skipResult = React.useMemo<ObservableQuery.Result<TData>>(() => {\n const error = queryRef.result.error;\n const complete = !!queryRef.result.data;\n\n return {\n loading: false,\n data: queryRef.result.data,\n dataState: queryRef.result.dataState,\n networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,\n error,\n complete,\n partial: !complete,\n };\n }, [queryRef.result]);\n\n const result = fetchPolicy === \"standby\" ? skipResult : __use(promise);\n\n const fetchMore = React.useCallback<\n FetchMoreFunction<unknown, OperationVariables>\n >(\n (options) => {\n const promise = queryRef.fetchMore(options);\n setPromise([queryRef.key, queryRef.promise]);\n\n return promise;\n },\n [queryRef]\n ) as FetchMoreFunction<TData | undefined, TVariables>;\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n setPromise([queryRef.key, queryRef.promise]);\n\n return promise;\n },\n [queryRef]\n );\n\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n const subscribeToMore = queryRef.observable\n .subscribeToMore as SubscribeToMoreFunction<TData | undefined, TVariables>;\n\n return React.useMemo<\n useSuspenseQuery.Result<TData, TVariables, DataState<TData>[\"dataState\"]>\n >(() => {\n return {\n client,\n data: result.data,\n dataState: result.dataState,\n error: result.error,\n networkStatus: result.networkStatus,\n fetchMore,\n refetch,\n subscribeToMore,\n } as useSuspenseQuery.Result<\n TData,\n TVariables,\n DataState<TData>[\"dataState\"]\n >;\n }, [client, fetchMore, refetch, result, subscribeToMore]);\n}\n\ninterface UseWatchQueryOptionsHookOptions<\n TData,\n TVariables extends OperationVariables,\n> {\n client: ApolloClient;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: SkipToken | useSuspenseQuery.Options<TVariables>;\n}\n\nexport function useWatchQueryOptions<\n TData,\n TVariables extends OperationVariables,\n>({\n client,\n query,\n options,\n}: UseWatchQueryOptionsHookOptions<\n TData,\n TVariables\n>): ApolloClient.WatchQueryOptions<TData, TVariables> {\n return useDeepMemo<ApolloClient.WatchQueryOptions<TData, TVariables>>(() => {\n if (options === skipToken) {\n return {\n query,\n fetchPolicy: \"standby\",\n } as ApolloClient.WatchQueryOptions<TData, TVariables>;\n }\n\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n \"cache-first\";\n\n const watchQueryOptions: ApolloClient.WatchQueryOptions<TData, TVariables> =\n {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateSuspenseHookOptions(watchQueryOptions);\n }\n\n // Assign the updated fetch policy after our validation since `standby` is\n // not a supported fetch policy on its own without the use of `skip`.\n if (options.skip) {\n watchQueryOptions.fetchPolicy = \"standby\";\n }\n\n return watchQueryOptions;\n }, [client, options, query]);\n}\n"],"names":[],"mappings":";;AAiVA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA0JA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AA3eA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAkBA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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"}