@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
@@ -7,58 +7,56 @@ export declare namespace useLoadableQuery {
7
7
  type Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TStates extends DataState<TData>["dataState"] = DataState<TData>["dataState"]> = [
8
8
  loadQuery: LoadQueryFunction<TVariables>,
9
9
  queryRef: QueryRef<TData, TVariables, TStates> | null,
10
- handlers: {
11
- /**
12
- * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).
13
- *
14
- *
15
- * @docGroup
16
- *
17
- * 3. Helper functions
18
- */
19
- fetchMore: FetchMoreFunction<TData, TVariables>;
20
- /**
21
- * A function that enables you to re-execute the query, optionally passing in new `variables`.
22
- *
23
- * To guarantee that the refetch performs a network request, its `fetchPolicy` is set to `network-only` (unless the original query's `fetchPolicy` is `no-cache` or `cache-and-network`, which also guarantee a network request).
24
- *
25
- * See also [Refetching](https://www.apollographql.com/docs/react/data/queries/#refetching).
26
- *
27
- * @docGroup
28
- *
29
- * 3. Helper functions
30
- */
31
- refetch: RefetchFunction<TData, TVariables>;
32
- /**
33
- * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.
34
- *
35
- * This function returns _another_ function that you can call to terminate the subscription.
36
- */
37
- subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;
38
- /**
39
- * A function that resets the `queryRef` back to `null`.
40
- */
41
- reset: ResetFunction;
42
- }
10
+ handlers: Handlers<TData, TVariables>
43
11
  ];
12
+ interface Handlers<TData = unknown, TVariables extends OperationVariables = OperationVariables> {
13
+ /**
14
+ * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).
15
+ *
16
+ *
17
+ * @docGroup 3. Helper functions
18
+ */
19
+ fetchMore: FetchMoreFunction<TData, TVariables>;
20
+ /**
21
+ * A function that enables you to re-execute the query, optionally passing in new `variables`.
22
+ *
23
+ * To guarantee that the refetch performs a network request, its `fetchPolicy` is set to `network-only` (unless the original query's `fetchPolicy` is `no-cache` or `cache-and-network`, which also guarantee a network request).
24
+ *
25
+ * See also [Refetching](https://www.apollographql.com/docs/react/data/queries/#refetching).
26
+ *
27
+ * Returns a `ResultPromise` with an additional `.retain()` method. Calling
28
+ * `.retain()` keeps the network operation running even if the `ObservableQuery`
29
+ * no longer requires the result.
30
+ *
31
+ * @docGroup 3. Helper functions
32
+ */
33
+ refetch: RefetchFunction<TData, TVariables>;
34
+ /**
35
+ * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.
36
+ *
37
+ * This function returns _another_ function that you can call to terminate the subscription.
38
+ */
39
+ subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;
40
+ /**
41
+ * A function that resets the `queryRef` back to `null`.
42
+ */
43
+ reset: ResetFunction;
44
+ }
44
45
  type FetchPolicy = Extract<WatchQueryFetchPolicy, "cache-first" | "network-only" | "no-cache" | "cache-and-network">;
45
46
  interface Options {
46
47
  /**
47
48
  * The instance of `ApolloClient` to use to execute the query.
48
49
  *
49
- * By default, the instance that's passed down via context is used, but you can provide a different instance here.
50
- *
51
- * @docGroup
50
+ * By default, the instance that's passed down via context is used, but you
51
+ * can provide a different instance here.
52
52
  *
53
- * 1. Operation options
53
+ * @docGroup 1. Operation options
54
54
  */
55
55
  client?: ApolloClient;
56
56
  /**
57
57
  * If you're using [Apollo Link](https://www.apollographql.com/docs/react/api/link/introduction/), this object is the initial value of the `context` object that's passed along your link chain.
58
58
  *
59
- * @docGroup
60
- *
61
- * 2. Networking options
59
+ * @docGroup 2. Networking options
62
60
  */
63
61
  context?: DefaultContext;
64
62
  /**
@@ -68,9 +66,7 @@ export declare namespace useLoadableQuery {
68
66
  *
69
67
  * The default value is `none`, meaning that the query result includes error details but not partial results.
70
68
  *
71
- * @docGroup
72
- *
73
- * 1. Operation options
69
+ * @docGroup 1. Operation options
74
70
  */
75
71
  errorPolicy?: ErrorPolicy;
76
72
  /**
@@ -80,27 +76,27 @@ export declare namespace useLoadableQuery {
80
76
  *
81
77
  * The default value is `cache-first`.
82
78
  *
83
- * @docGroup
84
- *
85
- * 3. Caching options
79
+ * @docGroup 3. Caching options
86
80
  */
87
81
  fetchPolicy?: FetchPolicy;
88
82
  /**
89
- * A unique identifier for the query. Each item in the array must be a stable identifier to prevent infinite fetches.
83
+ * A unique identifier for the query. Each item in the array must be a stable
84
+ * identifier to prevent infinite fetches.
90
85
  *
91
- * This is useful when using the same query and variables combination in more than one component, otherwise the components may clobber each other. This can also be used to force the query to re-evaluate fresh.
86
+ * This is useful when using the same query and variables combination in more
87
+ * than one component, otherwise the components may clobber each other. This
88
+ * can also be used to force the query to re-evaluate fresh.
92
89
  *
93
- * @docGroup
94
- *
95
- * 1. Operation options
90
+ * @docGroup 1. Operation options
96
91
  */
97
92
  queryKey?: string | number | any[];
98
93
  /**
99
- * Specifies whether a `NetworkStatus.refetch` operation should merge incoming field data with existing data, or overwrite the existing data. Overwriting is probably preferable, but merging is currently the default behavior, for backwards compatibility with Apollo Client 3.x.
100
- *
101
- * @docGroup
94
+ * Specifies whether a `NetworkStatus.refetch` operation should merge
95
+ * incoming field data with existing data, or overwrite the existing data.
96
+ * Overwriting is probably preferable, but merging is currently the default
97
+ * behavior, for backwards compatibility with Apollo Client 3.x.
102
98
  *
103
- * 3. Caching options
99
+ * @docGroup 3. Caching options
104
100
  */
105
101
  refetchWritePolicy?: RefetchWritePolicy;
106
102
  /**
@@ -108,61 +104,55 @@ export declare namespace useLoadableQuery {
108
104
  *
109
105
  * The default value is `false`.
110
106
  *
111
- * @docGroup
112
- *
113
- * 3. Caching options
107
+ * @docGroup 3. Caching options
114
108
  */
115
109
  returnPartialData?: boolean;
116
110
  }
117
111
  namespace DocumentationTypes {
118
112
  /**
119
- * A hook for imperatively loading a query, such as responding to a user interaction.
113
+ * A hook for imperatively loading a query, such as responding to a user
114
+ * interaction.
120
115
  *
121
116
  * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.
122
117
  *
123
- * @param query - A GraphQL query document parsed into an AST by `gql`.
124
- *
125
- * @param options - Options to control how the query is executed.
126
- *
127
- * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
128
- *
129
118
  * @example
119
+ *
130
120
  * ```jsx
131
121
  * import { gql, useLoadableQuery } from "@apollo/client";
132
122
  *
133
123
  * const GET_GREETING = gql`
134
- * query GetGreeting($language: String!) {
135
- * greeting(language: $language) {
136
- * message
137
- * }
138
- * }
124
+ * query GetGreeting($language: String!) {
125
+ * greeting(language: $language) {
126
+ * message
127
+ * }
128
+ * }
139
129
  * `;
140
130
  *
141
131
  * function App() {
142
- * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
143
- *
144
- * return (
145
- * <>
146
- * <button onClick={() => loadGreeting({ language: "english" })}>
147
- * Load greeting
148
- * </button>
149
- * <Suspense fallback={<div>Loading...</div>}>
150
- * {queryRef && <Hello queryRef={queryRef} />}
151
- * </Suspense>
152
- * </>
153
- * );
132
+ * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
133
+ *
134
+ * return (
135
+ * <>
136
+ * <button onClick={() => loadGreeting({ language: "english" })}>
137
+ * Load greeting
138
+ * </button>
139
+ * <Suspense fallback={<div>Loading...</div>}>
140
+ * {queryRef && <Hello queryRef={queryRef} />}
141
+ * </Suspense>
142
+ * </>
143
+ * );
154
144
  * }
155
145
  *
156
146
  * function Hello({ queryRef }) {
157
- * const { data } = useReadQuery(queryRef);
147
+ * const { data } = useReadQuery(queryRef);
158
148
  *
159
- * return <div>{data.greeting.message}</div>;
149
+ * return <div>{data.greeting.message}</div>;
160
150
  * }
161
151
  * ```
162
152
  *
163
- * @since
164
- *
165
- * 3.9.0
153
+ * @param query - A GraphQL query document parsed into an AST by `gql`.
154
+ * @param options - Options to control how the query is executed.
155
+ * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
166
156
  */
167
157
  function useLoadableQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useLoadableQuery.Options): useLoadableQuery.Result<TData, TVariables>;
168
158
  }
@@ -174,6 +164,7 @@ export declare namespace useLoadableQuery {
174
164
  * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.
175
165
  *
176
166
  * @example
167
+ *
177
168
  * ```jsx
178
169
  * import { gql, useLoadableQuery } from "@apollo/client";
179
170
  *
@@ -207,7 +198,6 @@ export declare namespace useLoadableQuery {
207
198
  * }
208
199
  * ```
209
200
  *
210
- * @since 3.9.0
211
201
  * @param query - A GraphQL query document parsed into an AST by `gql`.
212
202
  * @param options - Options to control how the query is executed.
213
203
  * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
@@ -217,157 +207,145 @@ export declare function useLoadableQuery<TData = unknown, TVariables extends Ope
217
207
  errorPolicy: "ignore" | "all";
218
208
  }): useLoadableQuery.Result<TData, TVariables, "complete" | "streaming" | "partial" | "empty">;
219
209
  /**
220
- * A hook for imperatively loading a query, such as responding to a user interaction.
210
+ * A hook for imperatively loading a query, such as responding to a user
211
+ * interaction.
221
212
  *
222
213
  * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.
223
214
  *
224
- * @param query - A GraphQL query document parsed into an AST by `gql`.
225
- *
226
- * @param options - Options to control how the query is executed.
227
- *
228
- * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
229
- *
230
215
  * @example
216
+ *
231
217
  * ```jsx
232
218
  * import { gql, useLoadableQuery } from "@apollo/client";
233
219
  *
234
220
  * const GET_GREETING = gql`
235
- * query GetGreeting($language: String!) {
236
- * greeting(language: $language) {
237
- * message
238
- * }
239
- * }
221
+ * query GetGreeting($language: String!) {
222
+ * greeting(language: $language) {
223
+ * message
224
+ * }
225
+ * }
240
226
  * `;
241
227
  *
242
228
  * function App() {
243
- * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
244
- *
245
- * return (
246
- * <>
247
- * <button onClick={() => loadGreeting({ language: "english" })}>
248
- * Load greeting
249
- * </button>
250
- * <Suspense fallback={<div>Loading...</div>}>
251
- * {queryRef && <Hello queryRef={queryRef} />}
252
- * </Suspense>
253
- * </>
254
- * );
229
+ * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
230
+ *
231
+ * return (
232
+ * <>
233
+ * <button onClick={() => loadGreeting({ language: "english" })}>
234
+ * Load greeting
235
+ * </button>
236
+ * <Suspense fallback={<div>Loading...</div>}>
237
+ * {queryRef && <Hello queryRef={queryRef} />}
238
+ * </Suspense>
239
+ * </>
240
+ * );
255
241
  * }
256
242
  *
257
243
  * function Hello({ queryRef }) {
258
- * const { data } = useReadQuery(queryRef);
244
+ * const { data } = useReadQuery(queryRef);
259
245
  *
260
- * return <div>{data.greeting.message}</div>;
246
+ * return <div>{data.greeting.message}</div>;
261
247
  * }
262
248
  * ```
263
249
  *
264
- * @since
265
- *
266
- * 3.9.0
250
+ * @param query - A GraphQL query document parsed into an AST by `gql`.
251
+ * @param options - Options to control how the query is executed.
252
+ * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
267
253
  */
268
254
  export declare function useLoadableQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useLoadableQuery.Options & {
269
255
  errorPolicy: "ignore" | "all";
270
256
  }): useLoadableQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
271
257
  /**
272
- * A hook for imperatively loading a query, such as responding to a user interaction.
258
+ * A hook for imperatively loading a query, such as responding to a user
259
+ * interaction.
273
260
  *
274
261
  * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.
275
262
  *
276
- * @param query - A GraphQL query document parsed into an AST by `gql`.
277
- *
278
- * @param options - Options to control how the query is executed.
279
- *
280
- * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
281
- *
282
263
  * @example
264
+ *
283
265
  * ```jsx
284
266
  * import { gql, useLoadableQuery } from "@apollo/client";
285
267
  *
286
268
  * const GET_GREETING = gql`
287
- * query GetGreeting($language: String!) {
288
- * greeting(language: $language) {
289
- * message
290
- * }
291
- * }
269
+ * query GetGreeting($language: String!) {
270
+ * greeting(language: $language) {
271
+ * message
272
+ * }
273
+ * }
292
274
  * `;
293
275
  *
294
276
  * function App() {
295
- * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
296
- *
297
- * return (
298
- * <>
299
- * <button onClick={() => loadGreeting({ language: "english" })}>
300
- * Load greeting
301
- * </button>
302
- * <Suspense fallback={<div>Loading...</div>}>
303
- * {queryRef && <Hello queryRef={queryRef} />}
304
- * </Suspense>
305
- * </>
306
- * );
277
+ * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
278
+ *
279
+ * return (
280
+ * <>
281
+ * <button onClick={() => loadGreeting({ language: "english" })}>
282
+ * Load greeting
283
+ * </button>
284
+ * <Suspense fallback={<div>Loading...</div>}>
285
+ * {queryRef && <Hello queryRef={queryRef} />}
286
+ * </Suspense>
287
+ * </>
288
+ * );
307
289
  * }
308
290
  *
309
291
  * function Hello({ queryRef }) {
310
- * const { data } = useReadQuery(queryRef);
292
+ * const { data } = useReadQuery(queryRef);
311
293
  *
312
- * return <div>{data.greeting.message}</div>;
294
+ * return <div>{data.greeting.message}</div>;
313
295
  * }
314
296
  * ```
315
297
  *
316
- * @since
317
- *
318
- * 3.9.0
298
+ * @param query - A GraphQL query document parsed into an AST by `gql`.
299
+ * @param options - Options to control how the query is executed.
300
+ * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
319
301
  */
320
302
  export declare function useLoadableQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useLoadableQuery.Options & {
321
303
  returnPartialData: true;
322
304
  }): useLoadableQuery.Result<TData, TVariables, "complete" | "streaming" | "partial">;
323
305
  /**
324
- * A hook for imperatively loading a query, such as responding to a user interaction.
306
+ * A hook for imperatively loading a query, such as responding to a user
307
+ * interaction.
325
308
  *
326
309
  * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.
327
310
  *
328
- * @param query - A GraphQL query document parsed into an AST by `gql`.
329
- *
330
- * @param options - Options to control how the query is executed.
331
- *
332
- * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
333
- *
334
311
  * @example
312
+ *
335
313
  * ```jsx
336
314
  * import { gql, useLoadableQuery } from "@apollo/client";
337
315
  *
338
316
  * const GET_GREETING = gql`
339
- * query GetGreeting($language: String!) {
340
- * greeting(language: $language) {
341
- * message
342
- * }
343
- * }
317
+ * query GetGreeting($language: String!) {
318
+ * greeting(language: $language) {
319
+ * message
320
+ * }
321
+ * }
344
322
  * `;
345
323
  *
346
324
  * function App() {
347
- * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
348
- *
349
- * return (
350
- * <>
351
- * <button onClick={() => loadGreeting({ language: "english" })}>
352
- * Load greeting
353
- * </button>
354
- * <Suspense fallback={<div>Loading...</div>}>
355
- * {queryRef && <Hello queryRef={queryRef} />}
356
- * </Suspense>
357
- * </>
358
- * );
325
+ * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);
326
+ *
327
+ * return (
328
+ * <>
329
+ * <button onClick={() => loadGreeting({ language: "english" })}>
330
+ * Load greeting
331
+ * </button>
332
+ * <Suspense fallback={<div>Loading...</div>}>
333
+ * {queryRef && <Hello queryRef={queryRef} />}
334
+ * </Suspense>
335
+ * </>
336
+ * );
359
337
  * }
360
338
  *
361
339
  * function Hello({ queryRef }) {
362
- * const { data } = useReadQuery(queryRef);
340
+ * const { data } = useReadQuery(queryRef);
363
341
  *
364
- * return <div>{data.greeting.message}</div>;
342
+ * return <div>{data.greeting.message}</div>;
365
343
  * }
366
344
  * ```
367
345
  *
368
- * @since
369
- *
370
- * 3.9.0
346
+ * @param query - A GraphQL query document parsed into an AST by `gql`.
347
+ * @param options - Options to control how the query is executed.
348
+ * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`
371
349
  */
372
350
  export declare function useLoadableQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: useLoadableQuery.Options): useLoadableQuery.Result<TData, TVariables, "complete" | "streaming">;
373
351
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadableQuery.js","sources":["../../../src/react/hooks/useLoadableQuery.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorPolicy,\n OperationVariables,\n RefetchWritePolicy,\n TypedDocumentNode,\n WatchQueryFetchPolicy,\n WatchQueryOptions,\n} from \"@apollo/client\";\nimport type {\n SubscribeToMoreFunction,\n SubscribeToMoreOptions,\n} from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type {\n CacheKey,\n FetchMoreFunction,\n QueryRef,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport {\n assertWrappedQueryRef,\n getSuspenseCache,\n unwrapQueryRef,\n updateWrappedQueryRef,\n wrapQueryRef,\n} from \"@apollo/client/react/internal\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { __use, useDeepMemo, useRenderGuard } from \"./internal/index.js\";\nimport { validateSuspenseHookOptions } from \"./internal/validateSuspenseHookOptions.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\ntype ResetFunction = () => void;\n\nexport declare namespace useLoadableQuery {\n export type LoadQueryFunction<TVariables extends OperationVariables> = (\n // Use variadic args to handle cases where TVariables is type `never`, in\n // which case we don't want to allow a variables argument. In other\n // words, we don't want to allow variables to be passed as an argument to this\n // function if the query does not expect variables in the document.\n ...args: {} extends TVariables ? [variables?: TVariables]\n : [variables: TVariables]\n ) => void;\n\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n > = [\n loadQuery: LoadQueryFunction<TVariables>,\n queryRef: QueryRef<TData, TVariables, TStates> | null,\n handlers: {\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member} */\n refetch: RefetchFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#subscribeToMore:member(1)} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n /**\n * A function that resets the `queryRef` back to `null`.\n */\n reset: ResetFunction;\n },\n ];\n\n export type FetchPolicy = Extract<\n WatchQueryFetchPolicy,\n \"cache-first\" | \"network-only\" | \"no-cache\" | \"cache-and-network\"\n >;\n\n export interface Options {\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#fetchPolicy:member} */\n fetchPolicy?: FetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#queryKey:member} */\n queryKey?: string | number | any[];\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n }\n\n export namespace DocumentationTypes {\n /** {@inheritDoc @apollo/client!useLoadableQuery:function(1)} */\n export function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options\n ): useLoadableQuery.Result<TData, TVariables>;\n }\n}\n\n/**\n * A hook for imperatively loading a query, such as responding to a user\n * interaction.\n *\n * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.\n *\n * @example\n * ```jsx\n * import { gql, useLoadableQuery } from \"@apollo/client\";\n *\n * const GET_GREETING = gql`\n * query GetGreeting($language: String!) {\n * greeting(language: $language) {\n * message\n * }\n * }\n * `;\n *\n * function App() {\n * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);\n *\n * return (\n * <>\n * <button onClick={() => loadGreeting({ language: \"english\" })}>\n * Load greeting\n * </button>\n * <Suspense fallback={<div>Loading...</div>}>\n * {queryRef && <Hello queryRef={queryRef} />}\n * </Suspense>\n * </>\n * );\n * }\n *\n * function Hello({ queryRef }) {\n * const { data } = useReadQuery(queryRef);\n *\n * return <div>{data.greeting.message}</div>;\n * }\n * ```\n *\n * @since 3.9.0\n * @param query - A GraphQL query document parsed into an AST by `gql`.\n * @param options - Options to control how the query is executed.\n * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`\n */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n returnPartialData: true;\n errorPolicy: \"ignore\" | \"all\";\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n errorPolicy: \"ignore\" | \"all\";\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n returnPartialData: true;\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\"\n>;\n\n/** {@inheritDoc @apollo/client!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: useLoadableQuery.Options\n): useLoadableQuery.Result<TData, TVariables, \"complete\" | \"streaming\">;\n\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options = {}\n): useLoadableQuery.Result<TData, TVariables> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { queryKey = [] } = options;\n\n const [queryRef, setQueryRef] = React.useState<QueryRef<\n TData,\n TVariables,\n DataState<TData>[\"dataState\"]\n > | null>(null);\n\n assertWrappedQueryRef(queryRef);\n\n const internalQueryRef = queryRef && unwrapQueryRef(queryRef);\n\n if (queryRef && internalQueryRef?.didChangeOptions(watchQueryOptions)) {\n const promise = internalQueryRef.applyOptions(watchQueryOptions);\n updateWrappedQueryRef(queryRef, promise);\n }\n\n const calledDuringRender = useRenderGuard();\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n if (!internalQueryRef) {\n throw new Error(\n \"The query has not been loaded. Please load the query.\"\n );\n }\n\n const promise = internalQueryRef.fetchMore(options);\n\n setQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (options) => {\n if (!internalQueryRef) {\n throw new Error(\n \"The query has not been loaded. Please load the query.\"\n );\n }\n\n const promise = internalQueryRef.refetch(options);\n\n setQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const loadQuery: useLoadableQuery.LoadQueryFunction<TVariables> =\n React.useCallback(\n (...args) => {\n invariant(\n !calledDuringRender(),\n \"useLoadableQuery: 'loadQuery' should not be called during render. To start a query during render, use the 'useBackgroundQuery' hook.\"\n );\n\n const [variables] = args;\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({\n ...watchQueryOptions,\n variables,\n } as WatchQueryOptions<any, any>)\n );\n\n setQueryRef(wrapQueryRef(queryRef));\n },\n [\n query,\n queryKey,\n suspenseCache,\n watchQueryOptions,\n calledDuringRender,\n client,\n ]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n React.useCallback(\n (options) => {\n invariant(\n internalQueryRef,\n \"The query has not been loaded. Please load the query.\"\n );\n\n return internalQueryRef.observable.subscribeToMore(\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n options as any as SubscribeToMoreOptions<TData, OperationVariables>\n );\n },\n [internalQueryRef]\n );\n\n const reset: ResetFunction = React.useCallback(() => {\n setQueryRef(null);\n }, []);\n\n return [loadQuery, queryRef, { fetchMore, refetch, reset, subscribeToMore }];\n}\n\nfunction useWatchQueryOptions<TData, TVariables extends OperationVariables>({\n client,\n query,\n options,\n}: {\n client: ApolloClient;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: useLoadableQuery.Options;\n}): WatchQueryOptions<TVariables, TData> {\n return useDeepMemo<WatchQueryOptions<TVariables, TData>>(() => {\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n \"cache-first\";\n\n const watchQueryOptions = {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateSuspenseHookOptions(watchQueryOptions as any);\n }\n\n return watchQueryOptions as WatchQueryOptions<TVariables, TData>;\n }, [client, options, query]);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLoadableQuery.js","sources":["../../../src/react/hooks/useLoadableQuery.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n ApolloClient,\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorPolicy,\n ObservableQuery,\n OperationVariables,\n RefetchWritePolicy,\n TypedDocumentNode,\n WatchQueryFetchPolicy,\n} from \"@apollo/client\";\nimport type { SubscribeToMoreFunction } from \"@apollo/client\";\nimport { canonicalStringify } from \"@apollo/client/cache\";\nimport type {\n CacheKey,\n FetchMoreFunction,\n QueryRef,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport {\n assertWrappedQueryRef,\n getSuspenseCache,\n unwrapQueryRef,\n updateWrappedQueryRef,\n wrapQueryRef,\n} from \"@apollo/client/react/internal\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { __use, useDeepMemo, useRenderGuard } from \"./internal/index.js\";\nimport { validateSuspenseHookOptions } from \"./internal/validateSuspenseHookOptions.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\ntype ResetFunction = () => void;\n\nexport declare namespace useLoadableQuery {\n export type LoadQueryFunction<TVariables extends OperationVariables> = (\n // Use variadic args to handle cases where TVariables is type `never`, in\n // which case we don't want to allow a variables argument. In other\n // words, we don't want to allow variables to be passed as an argument to this\n // function if the query does not expect variables in the document.\n ...args: {} extends TVariables ? [variables?: TVariables]\n : [variables: TVariables]\n ) => void;\n\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n > = [\n loadQuery: LoadQueryFunction<TVariables>,\n queryRef: QueryRef<TData, TVariables, TStates> | null,\n handlers: Handlers<TData, TVariables>,\n ];\n export interface Handlers<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member} */\n refetch: RefetchFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#subscribeToMore:member(1)} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n /**\n * A function that resets the `queryRef` back to `null`.\n */\n reset: ResetFunction;\n }\n\n export type FetchPolicy = Extract<\n WatchQueryFetchPolicy,\n \"cache-first\" | \"network-only\" | \"no-cache\" | \"cache-and-network\"\n >;\n\n export interface Options {\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#fetchPolicy:member} */\n fetchPolicy?: FetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#queryKey:member} */\n queryKey?: string | number | any[];\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n }\n\n export namespace DocumentationTypes {\n /** {@inheritDoc @apollo/client/react!useLoadableQuery:function(1)} */\n export function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options\n ): useLoadableQuery.Result<TData, TVariables>;\n }\n}\n\n/**\n * A hook for imperatively loading a query, such as responding to a user\n * interaction.\n *\n * > Refer to the [Suspense - Fetching in response to user interaction](https://www.apollographql.com/docs/react/data/suspense#fetching-in-response-to-user-interaction) section for a more in-depth overview of `useLoadableQuery`.\n *\n * @example\n *\n * ```jsx\n * import { gql, useLoadableQuery } from \"@apollo/client\";\n *\n * const GET_GREETING = gql`\n * query GetGreeting($language: String!) {\n * greeting(language: $language) {\n * message\n * }\n * }\n * `;\n *\n * function App() {\n * const [loadGreeting, queryRef] = useLoadableQuery(GET_GREETING);\n *\n * return (\n * <>\n * <button onClick={() => loadGreeting({ language: \"english\" })}>\n * Load greeting\n * </button>\n * <Suspense fallback={<div>Loading...</div>}>\n * {queryRef && <Hello queryRef={queryRef} />}\n * </Suspense>\n * </>\n * );\n * }\n *\n * function Hello({ queryRef }) {\n * const { data } = useReadQuery(queryRef);\n *\n * return <div>{data.greeting.message}</div>;\n * }\n * ```\n *\n * @param query - A GraphQL query document parsed into an AST by `gql`.\n * @param options - Options to control how the query is executed.\n * @returns A tuple in the form of `[loadQuery, queryRef, handlers]`\n */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n returnPartialData: true;\n errorPolicy: \"ignore\" | \"all\";\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n errorPolicy: \"ignore\" | \"all\";\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"empty\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options & {\n returnPartialData: true;\n }\n): useLoadableQuery.Result<\n TData,\n TVariables,\n \"complete\" | \"streaming\" | \"partial\"\n>;\n\n/** {@inheritDoc @apollo/client/react!useLoadableQuery:function(1)} */\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: useLoadableQuery.Options\n): useLoadableQuery.Result<TData, TVariables, \"complete\" | \"streaming\">;\n\nexport function useLoadableQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useLoadableQuery.Options = {}\n): useLoadableQuery.Result<TData, TVariables> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { queryKey = [] } = options;\n\n const [queryRef, setQueryRef] = React.useState<QueryRef<\n TData,\n TVariables,\n DataState<TData>[\"dataState\"]\n > | null>(null);\n\n assertWrappedQueryRef(queryRef);\n\n const internalQueryRef = queryRef && unwrapQueryRef(queryRef);\n\n if (queryRef && internalQueryRef?.didChangeOptions(watchQueryOptions)) {\n const promise = internalQueryRef.applyOptions(watchQueryOptions);\n updateWrappedQueryRef(queryRef, promise);\n }\n\n const calledDuringRender = useRenderGuard();\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n if (!internalQueryRef) {\n throw new Error(\n \"The query has not been loaded. Please load the query.\"\n );\n }\n\n const promise = internalQueryRef.fetchMore(options);\n\n setQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (options) => {\n if (!internalQueryRef) {\n throw new Error(\n \"The query has not been loaded. Please load the query.\"\n );\n }\n\n const promise = internalQueryRef.refetch(options);\n\n setQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const loadQuery: useLoadableQuery.LoadQueryFunction<TVariables> =\n React.useCallback(\n (...args) => {\n invariant(\n !calledDuringRender(),\n \"useLoadableQuery: 'loadQuery' should not be called during render. To start a query during render, use the 'useBackgroundQuery' hook.\"\n );\n\n const [variables] = args;\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({\n ...watchQueryOptions,\n variables,\n } as ApolloClient.WatchQueryOptions<any, any>)\n );\n\n setQueryRef(wrapQueryRef(queryRef));\n },\n [\n query,\n queryKey,\n suspenseCache,\n watchQueryOptions,\n calledDuringRender,\n client,\n ]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n React.useCallback(\n (options) => {\n invariant(\n internalQueryRef,\n \"The query has not been loaded. Please load the query.\"\n );\n\n return internalQueryRef.observable.subscribeToMore(\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n options as any as ObservableQuery.SubscribeToMoreOptions<\n TData,\n OperationVariables\n >\n );\n },\n [internalQueryRef]\n );\n\n const reset: ResetFunction = React.useCallback(() => {\n setQueryRef(null);\n }, []);\n\n return [loadQuery, queryRef, { fetchMore, refetch, reset, subscribeToMore }];\n}\n\nfunction useWatchQueryOptions<TData, TVariables extends OperationVariables>({\n client,\n query,\n options,\n}: {\n client: ApolloClient;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: useLoadableQuery.Options;\n}): ApolloClient.WatchQueryOptions<TData, TVariables> {\n return useDeepMemo<ApolloClient.WatchQueryOptions<TData, TVariables>>(() => {\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n \"cache-first\";\n\n const watchQueryOptions = {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateSuspenseHookOptions(watchQueryOptions as any);\n }\n\n return watchQueryOptions as ApolloClient.WatchQueryOptions<\n TData,\n TVariables\n >;\n }, [client, options, query]);\n}\n"],"names":[],"mappings":"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"}