@apollo/client 4.2.0-alpha.0 → 4.2.0-alpha.2

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 (99) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/__cjs/core/ApolloClient.cjs +16 -3
  3. package/__cjs/core/ApolloClient.cjs.map +1 -1
  4. package/__cjs/core/ApolloClient.d.cts +180 -131
  5. package/__cjs/core/ObservableQuery.cjs +13 -1
  6. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  7. package/__cjs/core/QueryManager.cjs +2 -3
  8. package/__cjs/core/QueryManager.cjs.map +1 -1
  9. package/__cjs/core/defaultOptions.cjs +3 -0
  10. package/__cjs/core/defaultOptions.cjs.map +1 -0
  11. package/__cjs/core/defaultOptions.d.cts +90 -0
  12. package/__cjs/core/index.cjs.map +1 -1
  13. package/__cjs/core/index.d.cts +2 -1
  14. package/__cjs/react/hooks/useBackgroundQuery.cjs +3 -3
  15. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  16. package/__cjs/react/hooks/useBackgroundQuery.d.cts +254 -822
  17. package/__cjs/react/hooks/useLazyQuery.cjs +3 -5
  18. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  19. package/__cjs/react/hooks/useLazyQuery.d.cts +93 -146
  20. package/__cjs/react/hooks/useLoadableQuery.cjs +8 -4
  21. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  22. package/__cjs/react/hooks/useLoadableQuery.d.cts +105 -233
  23. package/__cjs/react/hooks/useQuery.cjs +9 -5
  24. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  25. package/__cjs/react/hooks/useQuery.d.cts +138 -308
  26. package/__cjs/react/hooks/useSuspenseQuery.cjs +3 -3
  27. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  28. package/__cjs/react/hooks/useSuspenseQuery.d.cts +147 -436
  29. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  30. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +7 -0
  31. package/__cjs/utilities/internal/LazyType.cjs +3 -0
  32. package/__cjs/utilities/internal/LazyType.cjs.map +1 -0
  33. package/__cjs/utilities/internal/LazyType.d.cts +10 -0
  34. package/__cjs/utilities/internal/index.cjs.map +1 -1
  35. package/__cjs/utilities/internal/index.d.cts +3 -0
  36. package/__cjs/utilities/internal/types/OptionWithFallback.cjs +3 -0
  37. package/__cjs/utilities/internal/types/OptionWithFallback.cjs.map +1 -0
  38. package/__cjs/utilities/internal/types/OptionWithFallback.d.cts +5 -0
  39. package/__cjs/utilities/internal/types/SignatureStyle.cjs +3 -0
  40. package/__cjs/utilities/internal/types/SignatureStyle.cjs.map +1 -0
  41. package/__cjs/utilities/internal/types/SignatureStyle.d.cts +24 -0
  42. package/__cjs/version.cjs +1 -1
  43. package/core/ApolloClient.d.ts +180 -131
  44. package/core/ApolloClient.js +16 -3
  45. package/core/ApolloClient.js.map +1 -1
  46. package/core/ObservableQuery.js +13 -1
  47. package/core/ObservableQuery.js.map +1 -1
  48. package/core/QueryManager.js +3 -4
  49. package/core/QueryManager.js.map +1 -1
  50. package/core/defaultOptions.d.ts +90 -0
  51. package/core/defaultOptions.js +2 -0
  52. package/core/defaultOptions.js.map +1 -0
  53. package/core/index.d.ts +2 -1
  54. package/core/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/react/hooks/useBackgroundQuery.d.ts +254 -822
  57. package/react/hooks/useBackgroundQuery.js +2 -2
  58. package/react/hooks/useBackgroundQuery.js.map +1 -1
  59. package/react/hooks/useLazyQuery.d.ts +93 -146
  60. package/react/hooks/useLazyQuery.js +2 -4
  61. package/react/hooks/useLazyQuery.js.map +1 -1
  62. package/react/hooks/useLoadableQuery.d.ts +105 -233
  63. package/react/hooks/useLoadableQuery.js +7 -3
  64. package/react/hooks/useLoadableQuery.js.map +1 -1
  65. package/react/hooks/useQuery.d.ts +138 -308
  66. package/react/hooks/useQuery.js +7 -3
  67. package/react/hooks/useQuery.js.map +1 -1
  68. package/react/hooks/useSuspenseQuery.d.ts +147 -436
  69. package/react/hooks/useSuspenseQuery.js +2 -2
  70. package/react/hooks/useSuspenseQuery.js.map +1 -1
  71. package/react/hooks-compiled/useBackgroundQuery.d.ts +254 -822
  72. package/react/hooks-compiled/useBackgroundQuery.js +2 -2
  73. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  74. package/react/hooks-compiled/useLazyQuery.d.ts +93 -146
  75. package/react/hooks-compiled/useLazyQuery.js +2 -4
  76. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  77. package/react/hooks-compiled/useLoadableQuery.d.ts +105 -233
  78. package/react/hooks-compiled/useLoadableQuery.js +2 -2
  79. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  80. package/react/hooks-compiled/useQuery.d.ts +138 -308
  81. package/react/hooks-compiled/useQuery.js +7 -3
  82. package/react/hooks-compiled/useQuery.js.map +1 -1
  83. package/react/hooks-compiled/useSuspenseQuery.d.ts +147 -436
  84. package/react/hooks-compiled/useSuspenseQuery.js +2 -2
  85. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  86. package/react/internal/cache/getSuspenseCache.d.ts +7 -0
  87. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  88. package/utilities/internal/LazyType.d.ts +10 -0
  89. package/utilities/internal/LazyType.js +2 -0
  90. package/utilities/internal/LazyType.js.map +1 -0
  91. package/utilities/internal/index.d.ts +3 -0
  92. package/utilities/internal/index.js.map +1 -1
  93. package/utilities/internal/types/OptionWithFallback.d.ts +5 -0
  94. package/utilities/internal/types/OptionWithFallback.js +2 -0
  95. package/utilities/internal/types/OptionWithFallback.js.map +1 -0
  96. package/utilities/internal/types/SignatureStyle.d.ts +24 -0
  97. package/utilities/internal/types/SignatureStyle.js +2 -0
  98. package/utilities/internal/types/SignatureStyle.js.map +1 -0
  99. package/version.js +1 -1
@@ -2,7 +2,7 @@ import type { ApolloClient, DataState, DefaultContext, DocumentNode, ErrorLike,
2
2
  import type { SubscribeToMoreFunction } from "@apollo/client";
3
3
  import { NetworkStatus } from "@apollo/client";
4
4
  import type { FetchMoreFunction, RefetchFunction } from "@apollo/client/react/internal";
5
- import type { DocumentationTypes as UtilityDocumentationTypes, NoInfer, VariablesOption } from "@apollo/client/utilities/internal";
5
+ import type { DocumentationTypes as UtilityDocumentationTypes, NoInfer, OptionWithFallback, SignatureStyle, VariablesOption } from "@apollo/client/utilities/internal";
6
6
  import type { SkipToken } from "./constants.js";
7
7
  export declare namespace useSuspenseQuery {
8
8
  type FetchPolicy = Extract<WatchQueryFetchPolicy, "cache-first" | "network-only" | "no-cache" | "cache-and-network">;
@@ -172,6 +172,12 @@ export declare namespace useSuspenseQuery {
172
172
  }
173
173
  }
174
174
  type Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TStates extends DataState<TData>["dataState"] = DataState<TData>["dataState"]> = Base.Result<TData, TVariables> & GetDataState<MaybeMasked<TData>, TStates>;
175
+ interface DefaultOptions extends ApolloClient.DefaultOptions.WatchQuery.Calculated {
176
+ skip: false;
177
+ }
178
+ type ResultForOptions<TData, TVariables extends OperationVariables, TOptions extends Record<string, never> | Options<TVariables> | SkipToken> = Result<TData, TVariables, "complete" | "streaming" | (TOptions extends any ? TOptions extends SkipToken ? "empty" : (OptionWithFallback<TOptions, DefaultOptions, "errorPolicy"> extends "none" ? never : "empty") | (OptionWithFallback<TOptions, DefaultOptions, "skip"> extends (false) ? never : "empty") | (OptionWithFallback<TOptions, DefaultOptions, "returnPartialData"> extends false ? never : "partial") : never) | ([TOptions] extends [SkipToken] ? DefaultOptions extends {
179
+ returnPartialData: false;
180
+ } ? never : "partial" : never)>;
175
181
  namespace DocumentationTypes {
176
182
  namespace useSuspenseQuery {
177
183
  interface Result<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Result<TData, TVariables>, UtilityDocumentationTypes.DataState<TData> {
@@ -180,446 +186,151 @@ export declare namespace useSuspenseQuery {
180
186
  }
181
187
  namespace DocumentationTypes {
182
188
  /**
183
- * Test
184
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
185
- *
186
- * @example
187
- *
188
- * ```jsx
189
- * import { Suspense } from "react";
190
- * import { useSuspenseQuery } from "@apollo/client";
191
- *
192
- * const listQuery = gql`
193
- * query {
194
- * list {
195
- * id
196
- * }
197
- * }
198
- * `;
199
- *
200
- * function App() {
201
- * return (
202
- * <Suspense fallback={<Spinner />}>
203
- * <List />
204
- * </Suspense>
205
- * );
206
- * }
207
- *
208
- * function List() {
209
- * const { data } = useSuspenseQuery(listQuery);
189
+ * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
190
+ *
191
+ * @example
192
+ *
193
+ * ```jsx
194
+ * import { Suspense } from "react";
195
+ * import { useSuspenseQuery } from "@apollo/client";
196
+ *
197
+ * const listQuery = gql`
198
+ * query {
199
+ * list {
200
+ * id
201
+ * }
202
+ * }
203
+ * `;
204
+ *
205
+ * function App() {
206
+ * return (
207
+ * <Suspense fallback={<Spinner />}>
208
+ * <List />
209
+ * </Suspense>
210
+ * );
211
+ * }
212
+ *
213
+ * function List() {
214
+ * const { data } = useSuspenseQuery(listQuery);
215
+ *
216
+ * return (
217
+ * <ol>
218
+ * {data.list.map((item) => (
219
+ * <Item key={item.id} id={item.id} />
220
+ * ))}
221
+ * </ol>
222
+ * );
223
+ * }
224
+ * ```
225
+ *
226
+ * @param query - A GraphQL query document parsed into an AST by `gql`.
227
+ * @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.
228
+ */
229
+ interface useSuspenseQuery {
230
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: useSuspenseQuery.Options<TVariables>): useSuspenseQuery.Result<TData, TVariables>;
231
+ }
232
+ /**
233
+ * @deprecated Avoid manually specifying generic arguments on `useSuspenseQuery`.
234
+ * Instead, rely on TypeScript's type inference along with a correctly typed `TypedDocumentNode` to get accurate types for your query results.
235
+ */
236
+ interface useSuspenseQuery_Deprecated {
237
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: useSuspenseQuery.Options<TVariables>): useSuspenseQuery.Result<TData, TVariables>;
238
+ }
239
+ }
240
+ namespace Signatures {
241
+ /**
210
242
  *
211
- * return (
212
- * <ol>
213
- * {data.list.map((item) => (
214
- * <Item key={item.id} id={item.id} />
215
- * ))}
216
- * </ol>
217
- * );
218
- * }
219
- * ```
243
+ */
244
+ interface Classic {
245
+ /**
246
+ *
247
+ */
248
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
249
+ returnPartialData: true;
250
+ errorPolicy: "ignore" | "all";
251
+ }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "partial" | "empty">;
252
+ /**
253
+ *
254
+ */
255
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
256
+ errorPolicy: "ignore" | "all";
257
+ }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
258
+ /**
259
+ *
260
+ */
261
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
262
+ skip: boolean;
263
+ returnPartialData: true;
264
+ }): useSuspenseQuery.Result<TData, TVariables, "complete" | "empty" | "streaming" | "partial">;
265
+ /**
266
+ *
267
+ */
268
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
269
+ returnPartialData: true;
270
+ }): useSuspenseQuery.Result<TData, TVariables, "partial" | "streaming" | "complete">;
271
+ /**
272
+ *
273
+ */
274
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
275
+ skip: boolean;
276
+ }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
277
+ /**
278
+ *
279
+ */
280
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useSuspenseQuery.Options<NoInfer<TVariables>> & {
281
+ returnPartialData: true;
282
+ })): useSuspenseQuery.Result<TData, TVariables, "empty" | "streaming" | "complete" | "partial">;
283
+ /**
284
+ *
285
+ */
286
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
287
+ options?: useSuspenseQuery.Options<NoInfer<TVariables>>
288
+ ] : [options: useSuspenseQuery.Options<NoInfer<TVariables>>]): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming">;
289
+ /**
290
+ *
291
+ */
292
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
293
+ options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>
294
+ ] : [options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
295
+ /**
296
+ *
297
+ */
298
+ <TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
299
+ }
300
+ /**
220
301
  *
221
- * @param query - A GraphQL query document parsed into an AST by `gql`.
222
- * @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.
223
302
  */
224
- function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: useSuspenseQuery.Options<TVariables>): useSuspenseQuery.Result<TData, TVariables>;
303
+ interface Modern {
304
+ /**
305
+ *
306
+ */
307
+ <TData, TVariables extends OperationVariables, Options extends never>(query: {} extends TVariables ? DocumentNode | TypedDocumentNode<TData, TVariables> : never): useSuspenseQuery.ResultForOptions<TData, TVariables, Record<string, never>>;
308
+ /**
309
+ *
310
+ */
311
+ <TData, TVariables extends OperationVariables, TOptions extends never>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, skipToken: SkipToken): useSuspenseQuery.ResultForOptions<TData, TVariables, SkipToken>;
312
+ /**
313
+ *
314
+ */
315
+ <TData, TVariables extends OperationVariables, TOptions extends useSuspenseQuery.Options<NoInfer<TVariables>> & VariablesOption<TVariables & {
316
+ [K in Exclude<keyof TOptions["variables"], keyof TVariables>]?: never;
317
+ }>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [options?: TOptions] : [options: TOptions]): useSuspenseQuery.ResultForOptions<TData, TVariables, TOptions>;
318
+ /**
319
+ *
320
+ */
321
+ <TData, TVariables extends OperationVariables, TOptions extends useSuspenseQuery.Options<NoInfer<TVariables>> & VariablesOption<TVariables & {
322
+ [K in Exclude<keyof TOptions["variables"], keyof TVariables>]?: never;
323
+ }>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [options?: TOptions | SkipToken] : [options: TOptions | SkipToken]): useSuspenseQuery.ResultForOptions<TData, TVariables, TOptions | SkipToken>;
324
+ }
325
+ type Evaluated = SignatureStyle extends "classic" ? Classic : Modern;
326
+ }
327
+ /**
328
+ *
329
+ */
330
+ interface Signature extends Signatures.Evaluated {
225
331
  }
226
332
  }
227
- /**
228
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
229
- *
230
- * @example
231
- *
232
- * ```jsx
233
- * import { Suspense } from "react";
234
- * import { useSuspenseQuery } from "@apollo/client";
235
- *
236
- * const listQuery = gql`
237
- * query {
238
- * list {
239
- * id
240
- * }
241
- * }
242
- * `;
243
- *
244
- * function App() {
245
- * return (
246
- * <Suspense fallback={<Spinner />}>
247
- * <List />
248
- * </Suspense>
249
- * );
250
- * }
251
- *
252
- * function List() {
253
- * const { data } = useSuspenseQuery(listQuery);
254
- *
255
- * return (
256
- * <ol>
257
- * {data.list.map((item) => (
258
- * <Item key={item.id} id={item.id} />
259
- * ))}
260
- * </ol>
261
- * );
262
- * }
263
- * ```
264
- *
265
- * @param query - A GraphQL query document parsed into an AST by `gql`.
266
- * @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.
267
- */
268
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
269
- returnPartialData: true;
270
- errorPolicy: "ignore" | "all";
271
- }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "partial" | "empty">;
272
- /**
273
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
274
- *
275
- * @example
276
- *
277
- * ```jsx
278
- * import { Suspense } from "react";
279
- * import { useSuspenseQuery } from "@apollo/client";
280
- *
281
- * const listQuery = gql`
282
- * query {
283
- * list {
284
- * id
285
- * }
286
- * }
287
- * `;
288
- *
289
- * function App() {
290
- * return (
291
- * <Suspense fallback={<Spinner />}>
292
- * <List />
293
- * </Suspense>
294
- * );
295
- * }
296
- *
297
- * function List() {
298
- * const { data } = useSuspenseQuery(listQuery);
299
- *
300
- * return (
301
- * <ol>
302
- * {data.list.map((item) => (
303
- * <Item key={item.id} id={item.id} />
304
- * ))}
305
- * </ol>
306
- * );
307
- * }
308
- * ```
309
- *
310
- * @param query - A GraphQL query document parsed into an AST by `gql`.
311
- * @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.
312
- */
313
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
314
- errorPolicy: "ignore" | "all";
315
- }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
316
- /**
317
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
318
- *
319
- * @example
320
- *
321
- * ```jsx
322
- * import { Suspense } from "react";
323
- * import { useSuspenseQuery } from "@apollo/client";
324
- *
325
- * const listQuery = gql`
326
- * query {
327
- * list {
328
- * id
329
- * }
330
- * }
331
- * `;
332
- *
333
- * function App() {
334
- * return (
335
- * <Suspense fallback={<Spinner />}>
336
- * <List />
337
- * </Suspense>
338
- * );
339
- * }
340
- *
341
- * function List() {
342
- * const { data } = useSuspenseQuery(listQuery);
343
- *
344
- * return (
345
- * <ol>
346
- * {data.list.map((item) => (
347
- * <Item key={item.id} id={item.id} />
348
- * ))}
349
- * </ol>
350
- * );
351
- * }
352
- * ```
353
- *
354
- * @param query - A GraphQL query document parsed into an AST by `gql`.
355
- * @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.
356
- */
357
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
358
- skip: boolean;
359
- returnPartialData: true;
360
- }): useSuspenseQuery.Result<TData, TVariables, "complete" | "empty" | "streaming" | "partial">;
361
- /**
362
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
363
- *
364
- * @example
365
- *
366
- * ```jsx
367
- * import { Suspense } from "react";
368
- * import { useSuspenseQuery } from "@apollo/client";
369
- *
370
- * const listQuery = gql`
371
- * query {
372
- * list {
373
- * id
374
- * }
375
- * }
376
- * `;
377
- *
378
- * function App() {
379
- * return (
380
- * <Suspense fallback={<Spinner />}>
381
- * <List />
382
- * </Suspense>
383
- * );
384
- * }
385
- *
386
- * function List() {
387
- * const { data } = useSuspenseQuery(listQuery);
388
- *
389
- * return (
390
- * <ol>
391
- * {data.list.map((item) => (
392
- * <Item key={item.id} id={item.id} />
393
- * ))}
394
- * </ol>
395
- * );
396
- * }
397
- * ```
398
- *
399
- * @param query - A GraphQL query document parsed into an AST by `gql`.
400
- * @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.
401
- */
402
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
403
- returnPartialData: true;
404
- }): useSuspenseQuery.Result<TData, TVariables, "partial" | "streaming" | "complete">;
405
- /**
406
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
407
- *
408
- * @example
409
- *
410
- * ```jsx
411
- * import { Suspense } from "react";
412
- * import { useSuspenseQuery } from "@apollo/client";
413
- *
414
- * const listQuery = gql`
415
- * query {
416
- * list {
417
- * id
418
- * }
419
- * }
420
- * `;
421
- *
422
- * function App() {
423
- * return (
424
- * <Suspense fallback={<Spinner />}>
425
- * <List />
426
- * </Suspense>
427
- * );
428
- * }
429
- *
430
- * function List() {
431
- * const { data } = useSuspenseQuery(listQuery);
432
- *
433
- * return (
434
- * <ol>
435
- * {data.list.map((item) => (
436
- * <Item key={item.id} id={item.id} />
437
- * ))}
438
- * </ol>
439
- * );
440
- * }
441
- * ```
442
- *
443
- * @param query - A GraphQL query document parsed into an AST by `gql`.
444
- * @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.
445
- */
446
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useSuspenseQuery.Options<NoInfer<TVariables>> & {
447
- skip: boolean;
448
- }): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
449
- /**
450
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
451
- *
452
- * @example
453
- *
454
- * ```jsx
455
- * import { Suspense } from "react";
456
- * import { useSuspenseQuery } from "@apollo/client";
457
- *
458
- * const listQuery = gql`
459
- * query {
460
- * list {
461
- * id
462
- * }
463
- * }
464
- * `;
465
- *
466
- * function App() {
467
- * return (
468
- * <Suspense fallback={<Spinner />}>
469
- * <List />
470
- * </Suspense>
471
- * );
472
- * }
473
- *
474
- * function List() {
475
- * const { data } = useSuspenseQuery(listQuery);
476
- *
477
- * return (
478
- * <ol>
479
- * {data.list.map((item) => (
480
- * <Item key={item.id} id={item.id} />
481
- * ))}
482
- * </ol>
483
- * );
484
- * }
485
- * ```
486
- *
487
- * @param query - A GraphQL query document parsed into an AST by `gql`.
488
- * @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.
489
- */
490
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useSuspenseQuery.Options<NoInfer<TVariables>> & {
491
- returnPartialData: true;
492
- })): useSuspenseQuery.Result<TData, TVariables, "empty" | "streaming" | "complete" | "partial">;
493
- /**
494
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
495
- *
496
- * @example
497
- *
498
- * ```jsx
499
- * import { Suspense } from "react";
500
- * import { useSuspenseQuery } from "@apollo/client";
501
- *
502
- * const listQuery = gql`
503
- * query {
504
- * list {
505
- * id
506
- * }
507
- * }
508
- * `;
509
- *
510
- * function App() {
511
- * return (
512
- * <Suspense fallback={<Spinner />}>
513
- * <List />
514
- * </Suspense>
515
- * );
516
- * }
517
- *
518
- * function List() {
519
- * const { data } = useSuspenseQuery(listQuery);
520
- *
521
- * return (
522
- * <ol>
523
- * {data.list.map((item) => (
524
- * <Item key={item.id} id={item.id} />
525
- * ))}
526
- * </ol>
527
- * );
528
- * }
529
- * ```
530
- *
531
- * @param query - A GraphQL query document parsed into an AST by `gql`.
532
- * @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.
533
- */
534
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
535
- options?: useSuspenseQuery.Options<NoInfer<TVariables>>
536
- ] : [options: useSuspenseQuery.Options<NoInfer<TVariables>>]): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming">;
537
- /**
538
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
539
- *
540
- * @example
541
- *
542
- * ```jsx
543
- * import { Suspense } from "react";
544
- * import { useSuspenseQuery } from "@apollo/client";
545
- *
546
- * const listQuery = gql`
547
- * query {
548
- * list {
549
- * id
550
- * }
551
- * }
552
- * `;
553
- *
554
- * function App() {
555
- * return (
556
- * <Suspense fallback={<Spinner />}>
557
- * <List />
558
- * </Suspense>
559
- * );
560
- * }
561
- *
562
- * function List() {
563
- * const { data } = useSuspenseQuery(listQuery);
564
- *
565
- * return (
566
- * <ol>
567
- * {data.list.map((item) => (
568
- * <Item key={item.id} id={item.id} />
569
- * ))}
570
- * </ol>
571
- * );
572
- * }
573
- * ```
574
- *
575
- * @param query - A GraphQL query document parsed into an AST by `gql`.
576
- * @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.
577
- */
578
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
579
- options?: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>
580
- ] : [options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>]): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
581
- /**
582
- * For a detailed explanation of `useSuspenseQuery`, see the [fetching with Suspense reference](https://www.apollographql.com/docs/react/data/suspense).
583
- *
584
- * @example
585
- *
586
- * ```jsx
587
- * import { Suspense } from "react";
588
- * import { useSuspenseQuery } from "@apollo/client";
589
- *
590
- * const listQuery = gql`
591
- * query {
592
- * list {
593
- * id
594
- * }
595
- * }
596
- * `;
597
- *
598
- * function App() {
599
- * return (
600
- * <Suspense fallback={<Spinner />}>
601
- * <List />
602
- * </Suspense>
603
- * );
604
- * }
605
- *
606
- * function List() {
607
- * const { data } = useSuspenseQuery(listQuery);
608
- *
609
- * return (
610
- * <ol>
611
- * {data.list.map((item) => (
612
- * <Item key={item.id} id={item.id} />
613
- * ))}
614
- * </ol>
615
- * );
616
- * }
617
- * ```
618
- *
619
- * @param query - A GraphQL query document parsed into an AST by `gql`.
620
- * @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.
621
- */
622
- export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | useSuspenseQuery.Options<NoInfer<TVariables>>): useSuspenseQuery.Result<TData, TVariables, "complete" | "streaming" | "empty">;
333
+ export declare const useSuspenseQuery: useSuspenseQuery.Signature;
623
334
  interface UseWatchQueryOptionsHookOptions<TData, TVariables extends OperationVariables> {
624
335
  client: ApolloClient;
625
336
  query: DocumentNode | TypedDocumentNode<TData, TVariables>;
@@ -7,10 +7,10 @@ import { skipToken } from "./constants.js";
7
7
  import { __use, useDeepMemo, useSuspenseHookCacheKey, wrapHook, } from "./internal/index.js";
8
8
  import { validateSuspenseHookOptions } from "./internal/validateSuspenseHookOptions.js";
9
9
  import { useApolloClient } from "./useApolloClient.js";
10
- export function useSuspenseQuery(query, options) {
10
+ export const useSuspenseQuery = function useSuspenseQuery(query, options) {
11
11
  "use no memo";
12
12
  return wrapHook("useSuspenseQuery", useSuspenseQuery_, useApolloClient(typeof options === "object" ? options.client : undefined))(query, options ?? {});
13
- }
13
+ };
14
14
  function useSuspenseQuery_(query, options) {
15
15
  const client = useApolloClient(options.client);
16
16
  const suspenseCache = getSuspenseCache(client);