@apollo/client 4.2.9 → 4.2.11

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 (85) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/__cjs/cache/core/cache.cjs +1 -1
  3. package/__cjs/cache/inmemory/entityStore.cjs +3 -3
  4. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  5. package/__cjs/cache/inmemory/policies.cjs +4 -4
  6. package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
  7. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  8. package/__cjs/core/ApolloClient.cjs.map +1 -1
  9. package/__cjs/core/ApolloClient.d.cts +44 -10
  10. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  11. package/__cjs/core/ObservableQuery.d.cts +12 -1
  12. package/__cjs/core/QueryInfo.cjs +24 -1
  13. package/__cjs/core/QueryInfo.cjs.map +1 -1
  14. package/__cjs/core/QueryManager.cjs +12 -12
  15. package/__cjs/core/RefetchEventManager.cjs +3 -3
  16. package/__cjs/invariantErrorCodes.cjs +49 -30
  17. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  18. package/__cjs/react/hooks/useBackgroundQuery.d.cts +100 -47
  19. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  20. package/__cjs/react/hooks/useLazyQuery.d.cts +26 -20
  21. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  22. package/__cjs/react/hooks/useLoadableQuery.d.cts +23 -15
  23. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  24. package/__cjs/react/hooks/useMutation.d.cts +10 -7
  25. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  26. package/__cjs/react/hooks/useQuery.d.cts +74 -32
  27. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  28. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  29. package/__cjs/react/hooks/useSuspenseQuery.d.cts +83 -34
  30. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  31. package/__cjs/react/internal/types.d.cts +14 -3
  32. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  33. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +20 -5
  34. package/__cjs/version.cjs +1 -1
  35. package/__cjs/version.cjs.map +1 -1
  36. package/cache/core/cache.js +1 -1
  37. package/cache/inmemory/entityStore.js +3 -3
  38. package/cache/inmemory/key-extractor.js +1 -1
  39. package/cache/inmemory/policies.js +4 -4
  40. package/cache/inmemory/readFromStore.js +2 -2
  41. package/cache/inmemory/writeToStore.js +4 -4
  42. package/core/ApolloClient.d.ts +44 -10
  43. package/core/ApolloClient.js.map +1 -1
  44. package/core/ObservableQuery.d.ts +12 -1
  45. package/core/ObservableQuery.js.map +1 -1
  46. package/core/QueryInfo.js +19 -0
  47. package/core/QueryInfo.js.map +1 -1
  48. package/core/QueryManager.js +12 -12
  49. package/core/QueryManager.js.map +1 -1
  50. package/core/RefetchEventManager.js +3 -3
  51. package/invariantErrorCodes.js +49 -30
  52. package/package.json +1 -1
  53. package/react/hooks/useBackgroundQuery.d.ts +100 -47
  54. package/react/hooks/useBackgroundQuery.js.map +1 -1
  55. package/react/hooks/useLazyQuery.d.ts +26 -20
  56. package/react/hooks/useLazyQuery.js.map +1 -1
  57. package/react/hooks/useLoadableQuery.d.ts +23 -15
  58. package/react/hooks/useLoadableQuery.js.map +1 -1
  59. package/react/hooks/useMutation.d.ts +10 -7
  60. package/react/hooks/useMutation.js.map +1 -1
  61. package/react/hooks/useQuery.d.ts +74 -32
  62. package/react/hooks/useQuery.js.map +1 -1
  63. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  64. package/react/hooks/useSuspenseQuery.d.ts +83 -34
  65. package/react/hooks/useSuspenseQuery.js.map +1 -1
  66. package/react/hooks-compiled/useBackgroundQuery.d.ts +100 -47
  67. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  68. package/react/hooks-compiled/useLazyQuery.d.ts +26 -20
  69. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  70. package/react/hooks-compiled/useLoadableQuery.d.ts +23 -15
  71. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  72. package/react/hooks-compiled/useMutation.d.ts +10 -7
  73. package/react/hooks-compiled/useMutation.js.map +1 -1
  74. package/react/hooks-compiled/useQuery.d.ts +74 -32
  75. package/react/hooks-compiled/useQuery.js.map +1 -1
  76. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  77. package/react/hooks-compiled/useSuspenseQuery.d.ts +83 -34
  78. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  79. package/react/internal/cache/QueryReference.js.map +1 -1
  80. package/react/internal/types.d.ts +15 -4
  81. package/react/internal/types.js.map +1 -1
  82. package/react/query-preloader/createQueryPreloader.d.ts +20 -5
  83. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  84. package/version.js +1 -1
  85. package/version.js.map +1 -1
@@ -2,7 +2,8 @@ import type { DataState, DefaultContext, DocumentNode, ErrorLike, ErrorPolicy, G
2
2
  import type { ApolloClient } from "@apollo/client";
3
3
  import { NetworkStatus } from "@apollo/client";
4
4
  import type { MaybeMasked } from "@apollo/client/masking";
5
- import type { DocumentationTypes as UtilityDocumentationTypes, LazyType, NoInfer, OptionWithFallback, SignatureStyle, VariablesOption } from "@apollo/client/utilities/internal";
5
+ import type { FetchMoreFunction, RefetchFunction } from "@apollo/client/react/internal";
6
+ import type { DocumentationTypes as UtilityDocumentationTypes, LazyType, NoInfer, OptionWithFallback, Prettify, SignatureStyle, VariablesOption } from "@apollo/client/utilities/internal";
6
7
  import type { SkipToken } from "./constants.js";
7
8
  export declare namespace useQuery {
8
9
  namespace Base {
@@ -130,17 +131,33 @@ export declare namespace useQuery {
130
131
  * @docGroup 1. Operation options
131
132
  */
132
133
  refetchOn?: RefetchOn.Option;
134
+ /**
135
+ * An object containing all of the GraphQL variables your query requires to execute.
136
+ *
137
+ * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
138
+ *
139
+ * @docGroup 1. Operation options
140
+ */
141
+ variables?: unknown;
133
142
  }
134
143
  }
135
144
  type Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> = Base.Options<TData, TVariables> & VariablesOption<TVariables>;
136
145
  namespace DocumentationTypes {
137
146
  namespace useQuery {
138
- interface Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Options<TData, TVariables>, UtilityDocumentationTypes.VariableOptions<TVariables> {
147
+ interface Options<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Options<TData, TVariables> {
148
+ /**
149
+ * An object containing all of the GraphQL variables your query requires to execute.
150
+ *
151
+ * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
152
+ *
153
+ * @docGroup 1. Operation options
154
+ */
155
+ variables?: TVariables;
139
156
  }
140
157
  }
141
158
  }
142
159
  namespace Base {
143
- interface Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TReturnVariables extends OperationVariables = TVariables> {
160
+ interface Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TReturnVariables extends OperationVariables = TVariables, TErrorPolicy extends ErrorPolicy | undefined = undefined> {
144
161
  /**
145
162
  * The instance of Apollo Client that executed the query.
146
163
  * Can be useful for manually executing followup queries or writing data to the cache.
@@ -228,7 +245,7 @@ export declare namespace useQuery {
228
245
  *
229
246
  * @docGroup 3. Helper functions
230
247
  */
231
- refetch: (variables?: Partial<TVariables>) => Promise<ApolloClient.QueryResult<MaybeMasked<TData>>>;
248
+ refetch: RefetchFunction<TData, TVariables, TErrorPolicy>;
232
249
  /**
233
250
  * An object containing the variables that were provided for the query.
234
251
  *
@@ -241,14 +258,25 @@ export declare namespace useQuery {
241
258
  *
242
259
  * @docGroup 3. Helper functions
243
260
  */
244
- fetchMore: <TFetchData = TData, TFetchVars extends OperationVariables = TVariables>(fetchMoreOptions: ObservableQuery.FetchMoreOptions<TData, TVariables, TFetchData, TFetchVars>) => Promise<ApolloClient.QueryResult<MaybeMasked<TFetchData>>>;
261
+ fetchMore: FetchMoreFunction<TData, TVariables>;
245
262
  }
246
263
  }
247
- type Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TStates extends DataState<TData>["dataState"] = DataState<TData>["dataState"], TReturnVariables extends OperationVariables = TVariables> = Base.Result<TData, TVariables, TReturnVariables> & GetDataState<MaybeMasked<TData>, TStates>;
264
+ type Result<TData = unknown, TVariables extends OperationVariables = OperationVariables, TStates extends DataState<TData>["dataState"] = DataState<TData>["dataState"], TReturnVariables extends OperationVariables = TVariables, TErrorPolicy extends ErrorPolicy | undefined = undefined> = Base.Result<TData, TVariables, TReturnVariables, TErrorPolicy> & GetDataState<MaybeMasked<TData>, TStates>;
248
265
  interface DefaultOptions extends ApolloClient.DefaultOptions.WatchQuery.Calculated {
249
266
  skip: false;
250
267
  }
251
- type ResultForOptions<TData, TVariables extends OperationVariables, TOptions extends Record<string, never> | Options<TData, TVariables> | SkipToken> = LazyType<Result<TData, TVariables, "complete" | "streaming" | "empty" | (TOptions extends any ? TOptions extends SkipToken ? never : OptionWithFallback<TOptions, DefaultOptions, "returnPartialData"> extends false ? never : "partial" : never)>>;
268
+ type OptionsFor<TData, TVariables extends OperationVariables, TOptions extends {
269
+ variables?: unknown;
270
+ }> = useQuery.Options<TData, NoInfer<TVariables>> & {
271
+ variables?: Prettify<TVariables & {
272
+ [K in keyof TOptions["variables"]]: K extends keyof TVariables ? TVariables[K] : never;
273
+ }>;
274
+ } & (Exclude<keyof Exclude<TOptions, SkipToken>, keyof useQuery.Options<TData, TVariables>> extends infer InvalidOptionNames extends string ? [
275
+ InvalidOptionNames
276
+ ] extends [never] ? unknown : {
277
+ [K in InvalidOptionNames]: never;
278
+ } : never);
279
+ type ResultForOptions<TData, TVariables extends OperationVariables, TOptions extends Record<string, never> | Base.Options<TData, TVariables> | SkipToken> = LazyType<Result<TData, TVariables, "complete" | "streaming" | "empty" | (TOptions extends any ? TOptions extends SkipToken ? never : OptionWithFallback<TOptions, DefaultOptions, "returnPartialData"> extends false ? never : "partial" : never), TVariables, OptionWithFallback<TOptions, DefaultOptions, "errorPolicy"> & ErrorPolicy>>;
252
280
  namespace DocumentationTypes {
253
281
  namespace useQuery {
254
282
  interface Result<TData = unknown, TVariables extends OperationVariables = OperationVariables> extends Base.Result<TData, TVariables>, UtilityDocumentationTypes.DataState<TData> {
@@ -413,9 +441,10 @@ export declare namespace useQuery {
413
441
  * @param options - Options to control how the query is executed.
414
442
  * @returns Query result object
415
443
  */
416
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
444
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
417
445
  returnPartialData: true;
418
- }): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial">;
446
+ errorPolicy?: TErrorPolicy;
447
+ }): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", TVariables, TErrorPolicy>;
419
448
  /**
420
449
  * A hook for executing queries in an Apollo application.
421
450
  *
@@ -489,9 +518,10 @@ export declare namespace useQuery {
489
518
  * @param options - Options to control how the query is executed.
490
519
  * @returns Query result object
491
520
  */
492
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
521
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
493
522
  returnPartialData: true;
494
- })): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", Partial<TVariables>>;
523
+ errorPolicy?: TErrorPolicy;
524
+ })): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", Partial<TVariables>, TErrorPolicy>;
495
525
  /**
496
526
  * A hook for executing queries in an Apollo application.
497
527
  *
@@ -528,9 +558,10 @@ export declare namespace useQuery {
528
558
  * @param options - Options to control how the query is executed.
529
559
  * @returns Query result object
530
560
  */
531
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
561
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
532
562
  returnPartialData: boolean;
533
- }): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial">;
563
+ errorPolicy?: TErrorPolicy;
564
+ }): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", TVariables, TErrorPolicy>;
534
565
  /**
535
566
  * A hook for executing queries in an Apollo application.
536
567
  *
@@ -567,9 +598,10 @@ export declare namespace useQuery {
567
598
  * @param options - Options to control how the query is executed.
568
599
  * @returns Query result object
569
600
  */
570
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
601
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
571
602
  returnPartialData: boolean;
572
- })): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", Partial<TVariables>>;
603
+ errorPolicy?: TErrorPolicy;
604
+ })): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming" | "partial", Partial<TVariables>, TErrorPolicy>;
573
605
  /**
574
606
  * A hook for executing queries in an Apollo application.
575
607
  *
@@ -606,9 +638,15 @@ export declare namespace useQuery {
606
638
  * @param options - Options to control how the query is executed.
607
639
  * @returns Query result object
608
640
  */
609
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
610
- options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>
611
- ] : [options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming">;
641
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
642
+ options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
643
+ errorPolicy?: TErrorPolicy;
644
+ }
645
+ ] : [
646
+ options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
647
+ errorPolicy?: TErrorPolicy;
648
+ }
649
+ ]): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming", TVariables, TErrorPolicy>;
612
650
  /**
613
651
  * A hook for executing queries in an Apollo application.
614
652
  *
@@ -645,11 +683,15 @@ export declare namespace useQuery {
645
683
  * @param options - Options to control how the query is executed.
646
684
  * @returns Query result object
647
685
  */
648
- <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred">(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
649
- options?: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>
686
+ <TData, TVariables extends OperationVariables, _INFERENCE_ONLY_DO_NOT_SPECIFY extends "inferred", TErrorPolicy extends ErrorPolicy | undefined = undefined>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: {} extends TVariables ? [
687
+ options?: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
688
+ errorPolicy?: TErrorPolicy;
689
+ })
650
690
  ] : [
651
- options: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>
652
- ]): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming", Partial<TVariables>>;
691
+ options: SkipToken | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {
692
+ errorPolicy?: TErrorPolicy;
693
+ })
694
+ ]): useQuery.Result<TData, TVariables, "empty" | "complete" | "streaming", Partial<TVariables>, TErrorPolicy>;
653
695
  /**
654
696
  * @deprecated Avoid manually specifying generics on `useQuery`.
655
697
  * Instead, rely on TypeScript's type inference along with a correctly typed `TypedDocumentNode` to get accurate types for your query results.
@@ -1063,12 +1105,12 @@ export declare namespace useQuery {
1063
1105
  * @param options - Options to control how the query is executed.
1064
1106
  * @returns Query result object
1065
1107
  */
1066
- <TData, TVariables extends OperationVariables, TOptions extends useQuery.Options<TData, NoInfer<TVariables>> & VariablesOption<TVariables & {
1067
- [K in Exclude<keyof TOptions["variables"], keyof TVariables>]?: never;
1068
- }>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: [
1108
+ <TData, TVariables extends OperationVariables, TOptions extends Base.Options<TData, NoInfer<TVariables>>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: [
1069
1109
  TVariables
1070
- ] extends [never] ? [options: never] : {} extends TVariables ? [options?: TOptions] : [
1071
- options: TOptions
1110
+ ] extends [never] ? [options: never] : {} extends TVariables ? [
1111
+ options?: TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>
1112
+ ] : [
1113
+ options: TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>
1072
1114
  ]): useQuery.ResultForOptions<TData, TVariables, TOptions>;
1073
1115
  /**
1074
1116
  * A hook for executing queries in an Apollo application.
@@ -1143,12 +1185,12 @@ export declare namespace useQuery {
1143
1185
  * @param options - Options to control how the query is executed.
1144
1186
  * @returns Query result object
1145
1187
  */
1146
- <TData, TVariables extends OperationVariables, TOptions extends useQuery.Options<TData, NoInfer<TVariables>> & VariablesOption<TVariables & {
1147
- [K in Exclude<keyof TOptions["variables"], keyof TVariables>]?: never;
1148
- }>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: [
1188
+ <TData, TVariables extends OperationVariables, TOptions extends Base.Options<TData, NoInfer<TVariables>>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, ...[options]: [
1149
1189
  TVariables
1150
- ] extends [never] ? [options: never] : {} extends TVariables ? [options?: TOptions | SkipToken] : [
1151
- options: TOptions | SkipToken
1190
+ ] extends [never] ? [options: never] : {} extends TVariables ? [
1191
+ options?: (TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>) | SkipToken
1192
+ ] : [
1193
+ options: (TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>) | SkipToken
1152
1194
  ]): useQuery.ResultForOptions<TData, TVariables, TOptions | SkipToken>;
1153
1195
  ssrDisabledResult: ObservableQuery.Result<any>;
1154
1196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Function parameters in this file try to follow a common order for the sake of\n * readability and consistency. The order is as follows:\n *\n * resultData\n * observable\n * client\n * query\n * options\n * watchQueryOptions\n * makeWatchQueryOptions\n */\n/** */\nimport { equal } from \"@wry/equality\";\nimport * as React from \"react\";\nimport { asapScheduler, observeOn } from \"rxjs\";\n\nimport type {\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorLike,\n ErrorPolicy,\n GetDataState,\n InternalTypes,\n ObservableQuery,\n OperationVariables,\n RefetchOn,\n RefetchWritePolicy,\n SubscribeToMoreFunction,\n TypedDocumentNode,\n UpdateQueryMapFn,\n WatchQueryFetchPolicy,\n} from \"@apollo/client\";\nimport type { ApolloClient } from \"@apollo/client\";\nimport { NetworkStatus } from \"@apollo/client\";\nimport type { MaybeMasked } from \"@apollo/client/masking\";\nimport type {\n DocumentationTypes as UtilityDocumentationTypes,\n LazyType,\n NoInfer,\n OptionWithFallback,\n SignatureStyle,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\nimport {\n maybeDeepFreeze,\n mergeOptions,\n variablesUnknownSymbol,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { SkipToken } from \"./constants.js\";\nimport { skipToken } from \"./constants.js\";\nimport { useDeepMemo, wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\n\nexport declare namespace useQuery {\n import _self = useQuery;\n export namespace Base {\n export interface Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#fetchPolicy:member} */\n fetchPolicy?: WatchQueryFetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#nextFetchPolicy:member} */\n nextFetchPolicy?:\n | WatchQueryFetchPolicy\n | ((\n this: ApolloClient.WatchQueryOptions<TData, TVariables>,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: InternalTypes.NextFetchPolicyContext<TData, TVariables>\n ) => WatchQueryFetchPolicy);\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#initialFetchPolicy:member} */\n\n initialFetchPolicy?: WatchQueryFetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#errorPolicy:member} */\n errorPolicy?: ErrorPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#pollInterval:member} */\n pollInterval?: number;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#notifyOnNetworkStatusChange:member} */\n notifyOnNetworkStatusChange?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#skipPollAttempt:member} */\n skipPollAttempt?: () => boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#ssr:member} */\n ssr?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client?: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#context:member} */\n context?: DefaultContext;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#skip:member} */\n skip?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchOn:member} */\n refetchOn?: RefetchOn.Option;\n }\n }\n export type Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > = Base.Options<TData, TVariables> & VariablesOption<TVariables>;\n\n export namespace DocumentationTypes {\n namespace useQuery {\n export interface Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Options<TData, TVariables>,\n UtilityDocumentationTypes.VariableOptions<TVariables> {}\n }\n }\n\n export namespace Base {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TReturnVariables extends OperationVariables = TVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#client:member} */\n client: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#observable:member} */\n observable: ObservableQuery<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#previousData:member} */\n previousData?: MaybeMasked<TData>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#error:member} */\n error?: ErrorLike;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#loading:member} */\n loading: boolean;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#networkStatus:member} */\n networkStatus: NetworkStatus;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#startPolling:member} */\n startPolling: (pollInterval: number) => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#stopPolling:member} */\n stopPolling: () => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#subscribeToMore:member} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#updateQuery:member} */\n updateQuery: (mapFn: UpdateQueryMapFn<TData, TVariables>) => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member} */\n refetch: (\n variables?: Partial<TVariables>\n ) => Promise<ApolloClient.QueryResult<MaybeMasked<TData>>>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#variables:member} */\n variables: TReturnVariables;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member} */\n fetchMore: <\n TFetchData = TData,\n TFetchVars extends OperationVariables = TVariables,\n >(\n fetchMoreOptions: ObservableQuery.FetchMoreOptions<\n TData,\n TVariables,\n TFetchData,\n TFetchVars\n >\n ) => Promise<ApolloClient.QueryResult<MaybeMasked<TFetchData>>>;\n }\n }\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n TReturnVariables extends OperationVariables = TVariables,\n > = Base.Result<TData, TVariables, TReturnVariables> &\n GetDataState<MaybeMasked<TData>, TStates>;\n\n export interface DefaultOptions\n extends ApolloClient.DefaultOptions.WatchQuery.Calculated {\n skip: false;\n }\n\n export type ResultForOptions<\n TData,\n TVariables extends OperationVariables,\n TOptions extends\n | Record<string, never> // no options\n | Options<TData, TVariables>\n | SkipToken,\n > = LazyType<\n Result<\n TData,\n TVariables,\n | \"complete\"\n | \"streaming\"\n | \"empty\"\n | (TOptions extends any ?\n TOptions extends SkipToken ? never\n : OptionWithFallback<\n TOptions,\n DefaultOptions,\n \"returnPartialData\"\n > extends false ?\n never\n : \"partial\"\n : never)\n >\n >;\n\n export namespace DocumentationTypes {\n namespace useQuery {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Result<TData, TVariables>,\n UtilityDocumentationTypes.DataState<TData> {}\n }\n }\n\n export namespace DocumentationTypes {\n export interface useQuery {\n /**\n * A hook for executing queries in an Apollo application.\n *\n * To run a query within a React component, call `useQuery` and pass it a GraphQL query document.\n *\n * When your component renders, `useQuery` returns an object from Apollo Client that contains `loading`, `error`, `dataState`, and `data` properties you can use to render your UI.\n *\n * > Refer to the [Queries](https://www.apollographql.com/docs/react/data/queries) section for a more in-depth overview of `useQuery`.\n *\n * @example\n *\n * ```jsx\n * import { gql } from \"@apollo/client\";\n * import { useQuery } from \"@apollo/client/react\";\n *\n * const GET_GREETING = gql`\n * query GetGreeting($language: String!) {\n * greeting(language: $language) {\n * message\n * }\n * }\n * `;\n *\n * function Hello() {\n * const { loading, error, data } = useQuery(GET_GREETING, {\n * variables: { language: \"english\" },\n * });\n * if (loading) return <p>Loading ...</p>;\n * return <h1>Hello {data.greeting.message}!</h1>;\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 Query result object\n */\n <\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<TData, TVariables>\n ): useQuery.Result<TData, TVariables>;\n }\n\n export interface useQuery_Deprecated {\n /**\n * @deprecated Avoid manually specifying generics on `useQuery`.\n * Instead, rely on TypeScript's type inference along with a correctly typed `TypedDocumentNode` to get accurate types for your query results.\n *\n * {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)}\n */\n <\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<TData, TVariables>\n ): useQuery.Result<TData, TVariables>;\n }\n }\n\n export namespace Signatures {\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Classic {\n // _INFERENCE_ONLY_DO_NOT_SPECIFY is used to distinguish between inferred\n // generics arguments and explicit generic arguments so that we can\n // provide a `@deprecated` signature for explicit generic arguments. As\n // soon as a user provides a generic arg (e.g. useQuery<TData>(query))`,\n // the overload falls through to the overloads without\n // _INFERENCE_ONLY_DO_NOT_SPECIFY.\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n : [options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n ): useQuery.Result<TData, TVariables, \"empty\" | \"complete\" | \"streaming\">;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n : [\n options:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n : [options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n ): useQuery.Result<TData, TVariables, \"empty\" | \"complete\" | \"streaming\">;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n : [\n options:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\",\n Partial<TVariables>\n >;\n\n ssrDisabledResult: ObservableQuery.Result<any>;\n }\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Modern {\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n Options extends never,\n >(\n query: {} extends TVariables ?\n DocumentNode | TypedDocumentNode<TData, TVariables>\n : // this overload should only be accessible if all `TVariables` are optional\n never\n ): useQuery.ResultForOptions<TData, TVariables, Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends useQuery.Options<TData, NoInfer<TVariables>> &\n VariablesOption<\n TVariables & {\n [K in Exclude<\n keyof TOptions[\"variables\"],\n keyof TVariables\n >]?: never;\n }\n >,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: // we generally do not allow for a `TVariables` of `never`\n // TODO: check if we need a similar check in other hooks\n [TVariables] extends [never] ? [options: never]\n : // variables optional\n {} extends TVariables ? [options?: TOptions]\n : // variables required\n [options: TOptions]\n ): useQuery.ResultForOptions<TData, TVariables, TOptions>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends SkipToken,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends useQuery.Options<TData, NoInfer<TVariables>> &\n VariablesOption<\n TVariables & {\n [K in Exclude<\n keyof TOptions[\"variables\"],\n keyof TVariables\n >]?: never;\n }\n >,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: // we generally do not allow for a `TVariables` of `never`\n // TODO: check if we need a similar check in other hooks\n [TVariables] extends [never] ? [options: never]\n : // variables optional\n {} extends TVariables ? [options?: TOptions | SkipToken]\n : // variables required\n [options: TOptions | SkipToken]\n ): useQuery.ResultForOptions<TData, TVariables, TOptions | SkipToken>;\n\n ssrDisabledResult: ObservableQuery.Result<any>;\n }\n\n export type Evaluated = SignatureStyle extends \"classic\" ? Classic : Modern;\n }\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Signature extends Signatures.Evaluated {}\n}\n\nconst lastWatchOptions = Symbol();\n\ninterface ObsQueryWithMeta<TData, TVariables extends OperationVariables>\n extends ObservableQuery<TData, TVariables> {\n [lastWatchOptions]?: Readonly<\n ApolloClient.WatchQueryOptions<TData, TVariables>\n >;\n}\n\ninterface InternalResult<TData> {\n // These members are populated by getCurrentResult and setResult, and it's\n // okay/normal for them to be initially undefined.\n current: ObservableQuery.Result<TData>;\n previousData?: undefined | MaybeMasked<TData>;\n\n // Track current variables separately in case a call to e.g. `refetch(newVars)`\n // causes an emit that is deeply equal to the current result. This lets us\n // compare if we should force rerender due to changed variables\n variables: OperationVariables;\n}\n\ninterface InternalState<TData, TVariables extends OperationVariables> {\n client: ReturnType<typeof useApolloClient>;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n observable: ObsQueryWithMeta<TData, TVariables>;\n resultData: InternalResult<TData>;\n}\n\nexport const useQuery: useQuery.Signature = function useQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n : [options: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n): useQuery.Result<TData, TVariables> {\n \"use no memo\";\n return wrapHook(\n \"useQuery\",\n useQuery_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(query, options);\n} as any;\n\nfunction useQuery_<TData, TVariables extends OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | useQuery.Options<\n NoInfer<TData>,\n NoInfer<TVariables>\n > = {} as useQuery.Options<TData, TVariables>\n): useQuery.Result<TData, TVariables> {\n const client = useApolloClient(\n typeof options === \"object\" ? options.client : undefined\n );\n const { ssr } = typeof options === \"object\" ? options : {};\n\n const watchQueryOptions = useOptions(\n query,\n options,\n client.defaultOptions.watchQuery\n );\n\n function createState(\n previous?: InternalState<TData, TVariables>\n ): InternalState<TData, TVariables> {\n const observable = client.watchQuery(watchQueryOptions);\n\n return {\n client,\n query,\n observable,\n resultData: {\n current: observable.getCurrentResult(),\n // Reuse previousData from previous InternalState (if any) to provide\n // continuity of previousData even if/when the query or client changes.\n previousData: previous?.resultData.current.data as TData,\n variables: observable.variables,\n },\n };\n }\n\n let [state, setState] = React.useState(createState);\n\n if (client !== state.client || query !== state.query) {\n // If the client or query have changed, we need to create a new InternalState.\n // This will trigger a re-render with the new state, but it will also continue\n // to run the current render function to completion.\n // Since we sometimes trigger some side-effects in the render function, we\n // re-assign `state` to the new state to ensure that those side-effects are\n // triggered with the new state.\n setState((state = createState(state)));\n }\n\n const { observable, resultData } = state;\n\n useInitialFetchPolicyIfNecessary<TData, TVariables>(\n watchQueryOptions,\n observable\n );\n\n useResubscribeIfNecessary<TData, TVariables>(\n resultData, // might get mutated during render\n observable, // might get mutated during render\n watchQueryOptions\n );\n\n const result = useResult<TData, TVariables>(observable, resultData, ssr);\n\n const obsQueryFields = React.useMemo(\n () => ({\n refetch: observable.refetch.bind(observable),\n fetchMore: observable.fetchMore.bind(observable),\n updateQuery: observable.updateQuery.bind(observable),\n startPolling: observable.startPolling.bind(observable),\n stopPolling: observable.stopPolling.bind(observable),\n subscribeToMore: observable.subscribeToMore.bind(observable),\n }),\n [observable]\n );\n\n const previousData = resultData.previousData;\n return React.useMemo(() => {\n const { partial, ...rest } = result;\n\n return {\n ...rest,\n client,\n observable,\n variables: observable.variables,\n previousData,\n ...obsQueryFields,\n };\n }, [result, client, observable, previousData, obsQueryFields]);\n}\n\nconst fromSkipToken = Symbol();\n\nfunction useOptions<TData, TVariables extends OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n defaultOptions: Partial<ApolloClient.WatchQueryOptions<any, any>> | undefined\n): ApolloClient.WatchQueryOptions<TData, TVariables> {\n return useDeepMemo<ApolloClient.WatchQueryOptions<TData, TVariables>>(() => {\n if (options === skipToken) {\n const opts: ApolloClient.WatchQueryOptions<TData, TVariables> = {\n ...mergeOptions(defaultOptions as any, {\n query,\n fetchPolicy: \"standby\",\n }),\n [variablesUnknownSymbol]: true,\n };\n (opts as any)[fromSkipToken] = true;\n\n return opts;\n }\n\n const watchQueryOptions: ApolloClient.WatchQueryOptions<TData, TVariables> =\n mergeOptions(defaultOptions as any, { ...options, query });\n\n if (options.skip) {\n watchQueryOptions.initialFetchPolicy =\n options.initialFetchPolicy || options.fetchPolicy;\n watchQueryOptions.fetchPolicy = \"standby\";\n }\n\n return watchQueryOptions;\n }, [query, options, defaultOptions]);\n}\n\nfunction useInitialFetchPolicyIfNecessary<\n TData,\n TVariables extends OperationVariables,\n>(\n watchQueryOptions: ApolloClient.WatchQueryOptions<TData, TVariables>,\n observable: ObsQueryWithMeta<TData, TVariables>\n) {\n \"use no memo\";\n if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy = observable.options.initialFetchPolicy;\n }\n}\n\nfunction useResult<TData, TVariables extends OperationVariables>(\n observable: ObsQueryWithMeta<TData, TVariables>,\n resultData: InternalResult<TData>,\n ssr: boolean | undefined\n) {\n \"use no memo\";\n const fetchPolicy = observable.options.fetchPolicy;\n return useSyncExternalStore(\n React.useCallback(\n (handleStoreChange) => {\n const subscription = observable\n // We use the asapScheduler here to prevent issues with trying to\n // update in the middle of a render. `reobserve` is kicked off in the\n // middle of a render and because RxJS emits values synchronously,\n // its possible for this `handleStoreChange` to be called in that same\n // render. This allows the render to complete before trying to emit a\n // new value.\n .pipe(observeOn(asapScheduler))\n .subscribe((result) => {\n const previous = resultData.current;\n\n if (\n // Avoid rerendering if the result is the same\n equal(previous, result) &&\n // Force rerender if the value was emitted because variables\n // changed, such as when calling `refetch(newVars)` which returns\n // the same data when `notifyOnNetworkStatusChange` is `false`.\n equal(resultData.variables, observable.variables)\n ) {\n return;\n }\n\n resultData.variables = observable.variables;\n\n if (previous.data && !equal(previous.data, result.data)) {\n resultData.previousData = previous.data as TData;\n }\n\n resultData.current = result;\n handleStoreChange();\n });\n\n // Do the \"unsubscribe\" with a short delay.\n // This way, an existing subscription can be reused without an additional\n // request if \"unsubscribe\" and \"resubscribe\" to the same ObservableQuery\n // happen in very fast succession.\n return () => {\n setTimeout(() => subscription.unsubscribe());\n };\n },\n\n [observable, resultData]\n ),\n () => resultData.current,\n () =>\n (\n (fetchPolicy !== \"standby\" && ssr === false) ||\n fetchPolicy === \"no-cache\"\n ) ?\n useQuery.ssrDisabledResult\n : resultData.current\n );\n}\n\n// this hook is not compatible with any rules of React, and there's no good way to rewrite it.\n// it should stay a separate hook that will not be optimized by the compiler\nfunction useResubscribeIfNecessary<\n TData,\n TVariables extends OperationVariables,\n>(\n /** this hook will mutate properties on `resultData` */\n resultData: InternalResult<TData>,\n /** this hook will mutate properties on `observable` */\n observable: ObsQueryWithMeta<TData, TVariables>,\n watchQueryOptions: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>\n) {\n \"use no memo\";\n if (\n observable[lastWatchOptions] &&\n !equal(observable[lastWatchOptions], watchQueryOptions)\n ) {\n // If skipToken was used to generate options, we won't know the correct\n // initialFetchPolicy until the hook is rerendered with real options, so we\n // set it the next time we get real options\n if (\n (observable[lastWatchOptions] as any)[fromSkipToken] &&\n !watchQueryOptions.initialFetchPolicy\n ) {\n (watchQueryOptions.initialFetchPolicy as any) =\n watchQueryOptions.fetchPolicy;\n }\n // Though it might be tempting to postpone this reobserve call to the\n // useEffect block, we need getCurrentResult to return an appropriate\n // loading:true result synchronously (later within the same call to\n // useQuery). Since we already have this.observable here (not true for\n // the very first call to useQuery), we are not initiating any new\n // subscriptions, though it does feel less than ideal that reobserve\n // (potentially) kicks off a network request (for example, when the\n // variables have changed), which is technically a side-effect.\n if (shouldReobserve(observable[lastWatchOptions], watchQueryOptions)) {\n observable.reobserve(watchQueryOptions);\n } else {\n observable.applyOptions(watchQueryOptions);\n }\n\n // Make sure getCurrentResult returns a fresh ApolloQueryResult<TData>,\n // but save the current data as this.previousData, just like setResult\n // usually does.\n const result = observable.getCurrentResult();\n\n if (!equal(result.data, resultData.current.data)) {\n resultData.previousData = (resultData.current.data ||\n (resultData.previousData as TData)) as TData;\n }\n resultData.current = result;\n resultData.variables = observable.variables;\n }\n observable[lastWatchOptions] = watchQueryOptions;\n}\n\nfunction shouldReobserve<TData, TVariables extends OperationVariables>(\n previousOptions: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>,\n options: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>\n) {\n return (\n previousOptions.query !== options.query ||\n !equal(previousOptions.variables, options.variables) ||\n (previousOptions.fetchPolicy !== options.fetchPolicy &&\n (options.fetchPolicy === \"standby\" ||\n previousOptions.fetchPolicy === \"standby\"))\n );\n}\n\nuseQuery.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0 as any,\n dataState: \"empty\",\n error: void 0,\n networkStatus: NetworkStatus.loading,\n partial: true,\n}) satisfies ObservableQuery.Result<any> as ObservableQuery.Result<any>;\n"]}
1
+ {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useQuery.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Function parameters in this file try to follow a common order for the sake of\n * readability and consistency. The order is as follows:\n *\n * resultData\n * observable\n * client\n * query\n * options\n * watchQueryOptions\n * makeWatchQueryOptions\n */\n/** */\nimport { equal } from \"@wry/equality\";\nimport * as React from \"react\";\nimport { asapScheduler, observeOn } from \"rxjs\";\n\nimport type {\n DataState,\n DefaultContext,\n DocumentNode,\n ErrorLike,\n ErrorPolicy,\n GetDataState,\n InternalTypes,\n ObservableQuery,\n OperationVariables,\n RefetchOn,\n RefetchWritePolicy,\n SubscribeToMoreFunction,\n TypedDocumentNode,\n UpdateQueryMapFn,\n WatchQueryFetchPolicy,\n} from \"@apollo/client\";\nimport type { ApolloClient } from \"@apollo/client\";\nimport { NetworkStatus } from \"@apollo/client\";\nimport type { MaybeMasked } from \"@apollo/client/masking\";\nimport type {\n FetchMoreFunction,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport type {\n DocumentationTypes as UtilityDocumentationTypes,\n LazyType,\n NoInfer,\n OptionWithFallback,\n Prettify,\n SignatureStyle,\n VariablesOption,\n} from \"@apollo/client/utilities/internal\";\nimport {\n maybeDeepFreeze,\n mergeOptions,\n variablesUnknownSymbol,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { SkipToken } from \"./constants.js\";\nimport { skipToken } from \"./constants.js\";\nimport { useDeepMemo, wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\n\nexport declare namespace useQuery {\n import _self = useQuery;\n export namespace Base {\n export interface Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#fetchPolicy:member} */\n fetchPolicy?: WatchQueryFetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#nextFetchPolicy:member} */\n nextFetchPolicy?:\n | WatchQueryFetchPolicy\n | ((\n this: ApolloClient.WatchQueryOptions<TData, TVariables>,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: InternalTypes.NextFetchPolicyContext<TData, TVariables>\n ) => WatchQueryFetchPolicy);\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#initialFetchPolicy:member} */\n\n initialFetchPolicy?: WatchQueryFetchPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchWritePolicy:member} */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#errorPolicy:member} */\n errorPolicy?: ErrorPolicy;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#pollInterval:member} */\n pollInterval?: number;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#notifyOnNetworkStatusChange:member} */\n notifyOnNetworkStatusChange?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#returnPartialData:member} */\n returnPartialData?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#skipPollAttempt:member} */\n skipPollAttempt?: () => boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#ssr:member} */\n ssr?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#client:member} */\n client?: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#context:member} */\n context?: DefaultContext;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#skip:member} */\n skip?: boolean;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#refetchOn:member} */\n refetchOn?: RefetchOn.Option;\n\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#variables:member} */\n variables?: unknown;\n }\n }\n export type Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > = Base.Options<TData, TVariables> & VariablesOption<TVariables>;\n\n export namespace DocumentationTypes {\n namespace useQuery {\n export interface Options<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Options<TData, TVariables> {\n /** {@inheritDoc @apollo/client!QueryOptionsDocumentation#variables:member} */\n variables?: TVariables;\n }\n }\n }\n\n export namespace Base {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TReturnVariables extends OperationVariables = TVariables,\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n > {\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#client:member} */\n client: ApolloClient;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#observable:member} */\n observable: ObservableQuery<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#previousData:member} */\n previousData?: MaybeMasked<TData>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#error:member} */\n error?: ErrorLike;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#loading:member} */\n loading: boolean;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#networkStatus:member} */\n networkStatus: NetworkStatus;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#startPolling:member} */\n startPolling: (pollInterval: number) => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#stopPolling:member} */\n stopPolling: () => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#subscribeToMore:member} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#updateQuery:member} */\n updateQuery: (mapFn: UpdateQueryMapFn<TData, TVariables>) => void;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#refetch:member} */\n refetch: RefetchFunction<TData, TVariables, TErrorPolicy>;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#variables:member} */\n variables: TReturnVariables;\n\n /** {@inheritDoc @apollo/client!QueryResultDocumentation#fetchMore:member} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n }\n }\n export type Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n TStates extends\n DataState<TData>[\"dataState\"] = DataState<TData>[\"dataState\"],\n TReturnVariables extends OperationVariables = TVariables,\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n > = Base.Result<TData, TVariables, TReturnVariables, TErrorPolicy> &\n GetDataState<MaybeMasked<TData>, TStates>;\n\n export interface DefaultOptions\n extends ApolloClient.DefaultOptions.WatchQuery.Calculated {\n skip: false;\n }\n\n export type OptionsFor<\n TData,\n TVariables extends OperationVariables,\n TOptions extends { variables?: unknown },\n > = useQuery.Options<TData, NoInfer<TVariables>> & {\n variables?: Prettify<\n TVariables & {\n // variables that are not part of `TVariables`\n [K in keyof TOptions[\"variables\"]]: K extends keyof TVariables ?\n TVariables[K]\n : never;\n }\n >;\n } & (Exclude<\n keyof Exclude<TOptions, SkipToken>,\n keyof useQuery.Options<TData, TVariables>\n > extends infer InvalidOptionNames extends string ?\n [InvalidOptionNames] extends [never] ?\n unknown\n : { [K in InvalidOptionNames]: never }\n : never);\n\n export type ResultForOptions<\n TData,\n TVariables extends OperationVariables,\n TOptions extends\n | Record<string, never> // no options\n | Base.Options<TData, TVariables>\n | SkipToken,\n > = LazyType<\n Result<\n TData,\n TVariables,\n | \"complete\"\n | \"streaming\"\n | \"empty\"\n | (TOptions extends any ?\n TOptions extends SkipToken ? never\n : OptionWithFallback<\n TOptions,\n DefaultOptions,\n \"returnPartialData\"\n > extends false ?\n never\n : \"partial\"\n : never),\n TVariables,\n OptionWithFallback<TOptions, DefaultOptions, \"errorPolicy\"> & ErrorPolicy\n >\n >;\n\n export namespace DocumentationTypes {\n namespace useQuery {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > extends Base.Result<TData, TVariables>,\n UtilityDocumentationTypes.DataState<TData> {}\n }\n }\n\n export namespace DocumentationTypes {\n export interface useQuery {\n /**\n * A hook for executing queries in an Apollo application.\n *\n * To run a query within a React component, call `useQuery` and pass it a GraphQL query document.\n *\n * When your component renders, `useQuery` returns an object from Apollo Client that contains `loading`, `error`, `dataState`, and `data` properties you can use to render your UI.\n *\n * > Refer to the [Queries](https://www.apollographql.com/docs/react/data/queries) section for a more in-depth overview of `useQuery`.\n *\n * @example\n *\n * ```jsx\n * import { gql } from \"@apollo/client\";\n * import { useQuery } from \"@apollo/client/react\";\n *\n * const GET_GREETING = gql`\n * query GetGreeting($language: String!) {\n * greeting(language: $language) {\n * message\n * }\n * }\n * `;\n *\n * function Hello() {\n * const { loading, error, data } = useQuery(GET_GREETING, {\n * variables: { language: \"english\" },\n * });\n * if (loading) return <p>Loading ...</p>;\n * return <h1>Hello {data.greeting.message}!</h1>;\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 Query result object\n */\n <\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<TData, TVariables>\n ): useQuery.Result<TData, TVariables>;\n }\n\n export interface useQuery_Deprecated {\n /**\n * @deprecated Avoid manually specifying generics on `useQuery`.\n * Instead, rely on TypeScript's type inference along with a correctly typed `TypedDocumentNode` to get accurate types for your query results.\n *\n * {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)}\n */\n <\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<TData, TVariables>\n ): useQuery.Result<TData, TVariables>;\n }\n }\n\n export namespace Signatures {\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Classic {\n // _INFERENCE_ONLY_DO_NOT_SPECIFY is used to distinguish between inferred\n // generics arguments and explicit generic arguments so that we can\n // provide a `@deprecated` signature for explicit generic arguments. As\n // soon as a user provides a generic arg (e.g. useQuery<TData>(query))`,\n // the overload falls through to the overloads without\n // _INFERENCE_ONLY_DO_NOT_SPECIFY.\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy?: TErrorPolicy;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n TVariables,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy?: TErrorPolicy;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n errorPolicy?: TErrorPolicy;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n TVariables,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n errorPolicy?: TErrorPolicy;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy?: TErrorPolicy;\n },\n ]\n : [\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy?: TErrorPolicy;\n },\n ]\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\",\n TVariables,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n _INFERENCE_ONLY_DO_NOT_SPECIFY extends \"inferred\",\n TErrorPolicy extends ErrorPolicy | undefined = undefined,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy?: TErrorPolicy;\n }),\n ]\n : [\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy?: TErrorPolicy;\n }),\n ]\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\",\n Partial<TVariables>,\n TErrorPolicy\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n }\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\"\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | (useQuery.Options<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: boolean;\n })\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\" | \"partial\",\n Partial<TVariables>\n >;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [options?: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n : [options: useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n ): useQuery.Result<TData, TVariables, \"empty\" | \"complete\" | \"streaming\">;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery_Deprecated:call(1)} */\n <TData, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n : [\n options:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n ): useQuery.Result<\n TData,\n TVariables,\n \"empty\" | \"complete\" | \"streaming\",\n Partial<TVariables>\n >;\n\n ssrDisabledResult: ObservableQuery.Result<any>;\n }\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Modern {\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n Options extends never,\n >(\n query: {} extends TVariables ?\n DocumentNode | TypedDocumentNode<TData, TVariables>\n : // this overload should only be accessible if all `TVariables` are optional\n never\n ): useQuery.ResultForOptions<TData, TVariables, Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends Base.Options<TData, NoInfer<TVariables>>,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: // we generally do not allow for a `TVariables` of `never`\n // TODO: check if we need a similar check in other hooks\n [TVariables] extends [never] ? [options: never]\n : // variables optional\n {} extends TVariables ?\n [\n options?: TOptions &\n useQuery.OptionsFor<TData, TVariables, TOptions>,\n ]\n : // variables required\n [options: TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>]\n ): useQuery.ResultForOptions<TData, TVariables, TOptions>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends SkipToken,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken\n ): useQuery.Result<TData, TVariables, \"empty\", Record<string, never>>;\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n <\n TData,\n TVariables extends OperationVariables,\n // this overload should never be manually defined, it should always be inferred\n TOptions extends Base.Options<TData, NoInfer<TVariables>>,\n >(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: // we generally do not allow for a `TVariables` of `never`\n // TODO: check if we need a similar check in other hooks\n [TVariables] extends [never] ? [options: never]\n : // variables optional\n {} extends TVariables ?\n [\n options?:\n | (TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>)\n | SkipToken,\n ]\n : // variables required\n [\n options:\n | (TOptions & useQuery.OptionsFor<TData, TVariables, TOptions>)\n | SkipToken,\n ]\n ): useQuery.ResultForOptions<TData, TVariables, TOptions | SkipToken>;\n\n ssrDisabledResult: ObservableQuery.Result<any>;\n }\n\n export type Evaluated = SignatureStyle extends \"classic\" ? Classic : Modern;\n }\n\n /** {@inheritDoc @apollo/client/react!useQuery.DocumentationTypes.useQuery:call(1)} */\n export interface Signature extends Signatures.Evaluated {}\n}\n\nconst lastWatchOptions = Symbol();\n\ninterface ObsQueryWithMeta<TData, TVariables extends OperationVariables>\n extends ObservableQuery<TData, TVariables> {\n [lastWatchOptions]?: Readonly<\n ApolloClient.WatchQueryOptions<TData, TVariables>\n >;\n}\n\ninterface InternalResult<TData> {\n // These members are populated by getCurrentResult and setResult, and it's\n // okay/normal for them to be initially undefined.\n current: ObservableQuery.Result<TData>;\n previousData?: undefined | MaybeMasked<TData>;\n\n // Track current variables separately in case a call to e.g. `refetch(newVars)`\n // causes an emit that is deeply equal to the current result. This lets us\n // compare if we should force rerender due to changed variables\n variables: OperationVariables;\n}\n\ninterface InternalState<TData, TVariables extends OperationVariables> {\n client: ReturnType<typeof useApolloClient>;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n observable: ObsQueryWithMeta<TData, TVariables>;\n resultData: InternalResult<TData>;\n}\n\nexport const useQuery: useQuery.Signature = function useQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n ...[options]: {} extends TVariables ?\n [\n options?:\n | SkipToken\n | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n ]\n : [options: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>]\n): useQuery.Result<TData, TVariables> {\n \"use no memo\";\n return wrapHook(\n \"useQuery\",\n useQuery_,\n useApolloClient(typeof options === \"object\" ? options.client : undefined)\n )(query, options);\n} as any;\n\nfunction useQuery_<TData, TVariables extends OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options:\n | SkipToken\n | useQuery.Options<\n NoInfer<TData>,\n NoInfer<TVariables>\n > = {} as useQuery.Options<TData, TVariables>\n): useQuery.Result<TData, TVariables> {\n const client = useApolloClient(\n typeof options === \"object\" ? options.client : undefined\n );\n const { ssr } = typeof options === \"object\" ? options : {};\n\n const watchQueryOptions = useOptions(\n query,\n options,\n client.defaultOptions.watchQuery\n );\n\n function createState(\n previous?: InternalState<TData, TVariables>\n ): InternalState<TData, TVariables> {\n const observable = client.watchQuery(watchQueryOptions);\n\n return {\n client,\n query,\n observable,\n resultData: {\n current: observable.getCurrentResult(),\n // Reuse previousData from previous InternalState (if any) to provide\n // continuity of previousData even if/when the query or client changes.\n previousData: previous?.resultData.current.data as TData,\n variables: observable.variables,\n },\n };\n }\n\n let [state, setState] = React.useState(createState);\n\n if (client !== state.client || query !== state.query) {\n // If the client or query have changed, we need to create a new InternalState.\n // This will trigger a re-render with the new state, but it will also continue\n // to run the current render function to completion.\n // Since we sometimes trigger some side-effects in the render function, we\n // re-assign `state` to the new state to ensure that those side-effects are\n // triggered with the new state.\n setState((state = createState(state)));\n }\n\n const { observable, resultData } = state;\n\n useInitialFetchPolicyIfNecessary<TData, TVariables>(\n watchQueryOptions,\n observable\n );\n\n useResubscribeIfNecessary<TData, TVariables>(\n resultData, // might get mutated during render\n observable, // might get mutated during render\n watchQueryOptions\n );\n\n const result = useResult<TData, TVariables>(observable, resultData, ssr);\n\n const obsQueryFields = React.useMemo(\n () => ({\n refetch: observable.refetch.bind(observable),\n fetchMore: observable.fetchMore.bind(observable),\n updateQuery: observable.updateQuery.bind(observable),\n startPolling: observable.startPolling.bind(observable),\n stopPolling: observable.stopPolling.bind(observable),\n subscribeToMore: observable.subscribeToMore.bind(observable),\n }),\n [observable]\n );\n\n const previousData = resultData.previousData;\n return React.useMemo(() => {\n const { partial, ...rest } = result;\n\n return {\n ...rest,\n client,\n observable,\n variables: observable.variables,\n previousData,\n ...obsQueryFields,\n };\n }, [result, client, observable, previousData, obsQueryFields]);\n}\n\nconst fromSkipToken = Symbol();\n\nfunction useOptions<TData, TVariables extends OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SkipToken | useQuery.Options<NoInfer<TData>, NoInfer<TVariables>>,\n defaultOptions: Partial<ApolloClient.WatchQueryOptions<any, any>> | undefined\n): ApolloClient.WatchQueryOptions<TData, TVariables> {\n return useDeepMemo<ApolloClient.WatchQueryOptions<TData, TVariables>>(() => {\n if (options === skipToken) {\n const opts: ApolloClient.WatchQueryOptions<TData, TVariables> = {\n ...mergeOptions(defaultOptions as any, {\n query,\n fetchPolicy: \"standby\",\n }),\n [variablesUnknownSymbol]: true,\n };\n (opts as any)[fromSkipToken] = true;\n\n return opts;\n }\n\n const watchQueryOptions: ApolloClient.WatchQueryOptions<TData, TVariables> =\n mergeOptions(defaultOptions as any, { ...options, query });\n\n if (options.skip) {\n watchQueryOptions.initialFetchPolicy =\n options.initialFetchPolicy || options.fetchPolicy;\n watchQueryOptions.fetchPolicy = \"standby\";\n }\n\n return watchQueryOptions;\n }, [query, options, defaultOptions]);\n}\n\nfunction useInitialFetchPolicyIfNecessary<\n TData,\n TVariables extends OperationVariables,\n>(\n watchQueryOptions: ApolloClient.WatchQueryOptions<TData, TVariables>,\n observable: ObsQueryWithMeta<TData, TVariables>\n) {\n \"use no memo\";\n if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy = observable.options.initialFetchPolicy;\n }\n}\n\nfunction useResult<TData, TVariables extends OperationVariables>(\n observable: ObsQueryWithMeta<TData, TVariables>,\n resultData: InternalResult<TData>,\n ssr: boolean | undefined\n) {\n \"use no memo\";\n const fetchPolicy = observable.options.fetchPolicy;\n return useSyncExternalStore(\n React.useCallback(\n (handleStoreChange) => {\n const subscription = observable\n // We use the asapScheduler here to prevent issues with trying to\n // update in the middle of a render. `reobserve` is kicked off in the\n // middle of a render and because RxJS emits values synchronously,\n // its possible for this `handleStoreChange` to be called in that same\n // render. This allows the render to complete before trying to emit a\n // new value.\n .pipe(observeOn(asapScheduler))\n .subscribe((result) => {\n const previous = resultData.current;\n\n if (\n // Avoid rerendering if the result is the same\n equal(previous, result) &&\n // Force rerender if the value was emitted because variables\n // changed, such as when calling `refetch(newVars)` which returns\n // the same data when `notifyOnNetworkStatusChange` is `false`.\n equal(resultData.variables, observable.variables)\n ) {\n return;\n }\n\n resultData.variables = observable.variables;\n\n if (previous.data && !equal(previous.data, result.data)) {\n resultData.previousData = previous.data as TData;\n }\n\n resultData.current = result;\n handleStoreChange();\n });\n\n // Do the \"unsubscribe\" with a short delay.\n // This way, an existing subscription can be reused without an additional\n // request if \"unsubscribe\" and \"resubscribe\" to the same ObservableQuery\n // happen in very fast succession.\n return () => {\n setTimeout(() => subscription.unsubscribe());\n };\n },\n\n [observable, resultData]\n ),\n () => resultData.current,\n () =>\n (\n (fetchPolicy !== \"standby\" && ssr === false) ||\n fetchPolicy === \"no-cache\"\n ) ?\n useQuery.ssrDisabledResult\n : resultData.current\n );\n}\n\n// this hook is not compatible with any rules of React, and there's no good way to rewrite it.\n// it should stay a separate hook that will not be optimized by the compiler\nfunction useResubscribeIfNecessary<\n TData,\n TVariables extends OperationVariables,\n>(\n /** this hook will mutate properties on `resultData` */\n resultData: InternalResult<TData>,\n /** this hook will mutate properties on `observable` */\n observable: ObsQueryWithMeta<TData, TVariables>,\n watchQueryOptions: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>\n) {\n \"use no memo\";\n if (\n observable[lastWatchOptions] &&\n !equal(observable[lastWatchOptions], watchQueryOptions)\n ) {\n // If skipToken was used to generate options, we won't know the correct\n // initialFetchPolicy until the hook is rerendered with real options, so we\n // set it the next time we get real options\n if (\n (observable[lastWatchOptions] as any)[fromSkipToken] &&\n !watchQueryOptions.initialFetchPolicy\n ) {\n (watchQueryOptions.initialFetchPolicy as any) =\n watchQueryOptions.fetchPolicy;\n }\n // Though it might be tempting to postpone this reobserve call to the\n // useEffect block, we need getCurrentResult to return an appropriate\n // loading:true result synchronously (later within the same call to\n // useQuery). Since we already have this.observable here (not true for\n // the very first call to useQuery), we are not initiating any new\n // subscriptions, though it does feel less than ideal that reobserve\n // (potentially) kicks off a network request (for example, when the\n // variables have changed), which is technically a side-effect.\n if (shouldReobserve(observable[lastWatchOptions], watchQueryOptions)) {\n observable.reobserve(watchQueryOptions);\n } else {\n observable.applyOptions(watchQueryOptions);\n }\n\n // Make sure getCurrentResult returns a fresh ApolloQueryResult<TData>,\n // but save the current data as this.previousData, just like setResult\n // usually does.\n const result = observable.getCurrentResult();\n\n if (!equal(result.data, resultData.current.data)) {\n resultData.previousData = (resultData.current.data ||\n (resultData.previousData as TData)) as TData;\n }\n resultData.current = result;\n resultData.variables = observable.variables;\n }\n observable[lastWatchOptions] = watchQueryOptions;\n}\n\nfunction shouldReobserve<TData, TVariables extends OperationVariables>(\n previousOptions: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>,\n options: Readonly<ApolloClient.WatchQueryOptions<TData, TVariables>>\n) {\n return (\n previousOptions.query !== options.query ||\n !equal(previousOptions.variables, options.variables) ||\n (previousOptions.fetchPolicy !== options.fetchPolicy &&\n (options.fetchPolicy === \"standby\" ||\n previousOptions.fetchPolicy === \"standby\"))\n );\n}\n\nuseQuery.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0 as any,\n dataState: \"empty\",\n error: void 0,\n networkStatus: NetworkStatus.loading,\n partial: true,\n}) satisfies ObservableQuery.Result<any> as ObservableQuery.Result<any>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryRefHandlers.js","sourceRoot":"","sources":["../../../src/react/hooks/useQueryRefHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA0BvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAIjC,QAAoE;IAEpE,aAAa,CAAC;IACd,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,eAAe,CACtC,SAAS,CAAC,CAAC;QACT,0EAA0E;QAC1E,iFAAiF;QAChF,SAAS,CAAC,YAAY,CAAS;QAClC,CAAC,CAAC,SAAS,CAC6B,CAAC;IAE3C,OAAO,QAAQ,CACb,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CACjB,CAAC,QAAQ,CAAC,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAI3B,QAAoE;IAEpE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAElD,4EAA4E;IAC5E,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,OAAO,GAAuC,KAAK,CAAC,WAAW,CACnE,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpD,kBAAkB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,MAAM,SAAS,GAAyC,KAAK,CAAC,WAAW,CACvE,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CACxC,OAAqD,CACtD,CAAC;QAEF,kBAAkB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,SAAS;QACT,kGAAkG;QAClG,eAAe,EAAE,gBAAgB,CAAC,UAAU;aACzC,eAA6D;KACjE,CAAC;AACJ,CAAC","sourcesContent":["import * as React from \"react\";\n\nimport type { DataState, OperationVariables } from \"@apollo/client\";\nimport type { SubscribeToMoreFunction } from \"@apollo/client\";\nimport type { ApolloClient } from \"@apollo/client\";\nimport type { ObservableQuery } from \"@apollo/client\";\nimport type { QueryRef } from \"@apollo/client/react\";\nimport type {\n FetchMoreFunction,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport {\n assertWrappedQueryRef,\n getWrappedPromise,\n unwrapQueryRef,\n updateWrappedQueryRef,\n wrapQueryRef,\n} from \"@apollo/client/react/internal\";\n\nimport { wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\nexport declare namespace useQueryRefHandlers {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!ObservableQuery#refetch:member(1)} */\n refetch: RefetchFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#fetchMore:member(1)} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#subscribeToMore:member(1)} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n }\n\n export namespace DocumentationTypes {\n /** {@inheritDoc @apollo/client/react!useQueryRefHandlers:function(1)} */\n export function useQueryRefHandlers<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n queryRef: QueryRef<TData, TVariables>\n ): useQueryRefHandlers.Result<TData, TVariables>;\n }\n}\n\n/**\n * A React hook that returns a `refetch` and `fetchMore` function for a given\n * `queryRef`.\n *\n * This is useful to get access to handlers for a `queryRef` that was created by\n * `createQueryPreloader` or when the handlers for a `queryRef` produced in\n * a different component are inaccessible.\n *\n * @example\n *\n * ```tsx\n * const MyComponent({ queryRef }) {\n * const { refetch, fetchMore } = useQueryRefHandlers(queryRef);\n *\n * // ...\n * }\n * ```\n *\n * @param queryRef - A `QueryRef` returned from `useBackgroundQuery`, `useLoadableQuery`, or `createQueryPreloader`.\n */\nexport function useQueryRefHandlers<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n queryRef: QueryRef<TData, TVariables, DataState<TData>[\"dataState\"]>\n): useQueryRefHandlers.Result<TData, TVariables> {\n \"use no memo\";\n const unwrapped = unwrapQueryRef(queryRef);\n const clientOrObsQuery = useApolloClient(\n unwrapped ?\n // passing an `ObservableQuery` is not supported by the types, but it will\n // return any truthy value that is passed in as an override so we cast the result\n (unwrapped[\"observable\"] as any)\n : undefined\n ) as ApolloClient | ObservableQuery<TData>;\n\n return wrapHook(\n \"useQueryRefHandlers\",\n useQueryRefHandlers_,\n clientOrObsQuery\n )(queryRef);\n}\n\nfunction useQueryRefHandlers_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n queryRef: QueryRef<TData, TVariables, DataState<TData>[\"dataState\"]>\n): useQueryRefHandlers.Result<TData, TVariables> {\n assertWrappedQueryRef(queryRef);\n const [previousQueryRef, setPreviousQueryRef] = React.useState(queryRef);\n const [wrappedQueryRef, setWrappedQueryRef] = React.useState(queryRef);\n const internalQueryRef = unwrapQueryRef(queryRef);\n\n // To ensure we can support React transitions, this hook needs to manage the\n // queryRef state and apply React's state value immediately to the existing\n // queryRef since this hook doesn't return the queryRef directly\n if (previousQueryRef !== queryRef) {\n setPreviousQueryRef(queryRef);\n setWrappedQueryRef(queryRef);\n } else {\n updateWrappedQueryRef(queryRef, getWrappedPromise(wrappedQueryRef));\n }\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = internalQueryRef.refetch(variables);\n\n setWrappedQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n const promise = internalQueryRef.fetchMore(\n options as ObservableQuery.FetchMoreOptions<any, any>\n );\n\n setWrappedQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n return {\n refetch,\n fetchMore,\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n subscribeToMore: internalQueryRef.observable\n .subscribeToMore as SubscribeToMoreFunction<TData, TVariables>,\n };\n}\n"]}
1
+ {"version":3,"file":"useQueryRefHandlers.js","sourceRoot":"","sources":["../../../src/react/hooks/useQueryRefHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA0BvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAIjC,QAAoE;IAEpE,aAAa,CAAC;IACd,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,eAAe,CACtC,SAAS,CAAC,CAAC;QACT,0EAA0E;QAC1E,iFAAiF;QAChF,SAAS,CAAC,YAAY,CAAS;QAClC,CAAC,CAAC,SAAS,CAC6B,CAAC;IAE3C,OAAO,QAAQ,CACb,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CACjB,CAAC,QAAQ,CAAC,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAI3B,QAAoE;IAEpE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAElD,4EAA4E;IAC5E,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,OAAO,GAAuC,KAAK,CAAC,WAAW,CACnE,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpD,kBAAkB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CACE,OAAsE,EACtE,EAAE;QACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CACxC,OAAqD,CACtD,CAAC;QAEF,kBAAkB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,gBAAgB,CAAC,CACqB,CAAC;IAE1C,OAAO;QACL,OAAO;QACP,SAAS;QACT,kGAAkG;QAClG,eAAe,EAAE,gBAAgB,CAAC,UAAU;aACzC,eAA6D;KACjE,CAAC;AACJ,CAAC","sourcesContent":["import * as React from \"react\";\n\nimport type { DataState, OperationVariables } from \"@apollo/client\";\nimport type { SubscribeToMoreFunction } from \"@apollo/client\";\nimport type { ApolloClient } from \"@apollo/client\";\nimport type { ObservableQuery } from \"@apollo/client\";\nimport type { QueryRef } from \"@apollo/client/react\";\nimport type {\n FetchMoreFunction,\n RefetchFunction,\n} from \"@apollo/client/react/internal\";\nimport {\n assertWrappedQueryRef,\n getWrappedPromise,\n unwrapQueryRef,\n updateWrappedQueryRef,\n wrapQueryRef,\n} from \"@apollo/client/react/internal\";\n\nimport { wrapHook } from \"./internal/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\n\nexport declare namespace useQueryRefHandlers {\n export interface Result<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /** {@inheritDoc @apollo/client!ObservableQuery#refetch:member(1)} */\n refetch: RefetchFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#fetchMore:member(1)} */\n fetchMore: FetchMoreFunction<TData, TVariables>;\n /** {@inheritDoc @apollo/client!ObservableQuery#subscribeToMore:member(1)} */\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n }\n\n export namespace DocumentationTypes {\n /** {@inheritDoc @apollo/client/react!useQueryRefHandlers:function(1)} */\n export function useQueryRefHandlers<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n queryRef: QueryRef<TData, TVariables>\n ): useQueryRefHandlers.Result<TData, TVariables>;\n }\n}\n\n/**\n * A React hook that returns a `refetch` and `fetchMore` function for a given\n * `queryRef`.\n *\n * This is useful to get access to handlers for a `queryRef` that was created by\n * `createQueryPreloader` or when the handlers for a `queryRef` produced in\n * a different component are inaccessible.\n *\n * @example\n *\n * ```tsx\n * const MyComponent({ queryRef }) {\n * const { refetch, fetchMore } = useQueryRefHandlers(queryRef);\n *\n * // ...\n * }\n * ```\n *\n * @param queryRef - A `QueryRef` returned from `useBackgroundQuery`, `useLoadableQuery`, or `createQueryPreloader`.\n */\nexport function useQueryRefHandlers<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n queryRef: QueryRef<TData, TVariables, DataState<TData>[\"dataState\"]>\n): useQueryRefHandlers.Result<TData, TVariables> {\n \"use no memo\";\n const unwrapped = unwrapQueryRef(queryRef);\n const clientOrObsQuery = useApolloClient(\n unwrapped ?\n // passing an `ObservableQuery` is not supported by the types, but it will\n // return any truthy value that is passed in as an override so we cast the result\n (unwrapped[\"observable\"] as any)\n : undefined\n ) as ApolloClient | ObservableQuery<TData>;\n\n return wrapHook(\n \"useQueryRefHandlers\",\n useQueryRefHandlers_,\n clientOrObsQuery\n )(queryRef);\n}\n\nfunction useQueryRefHandlers_<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n>(\n queryRef: QueryRef<TData, TVariables, DataState<TData>[\"dataState\"]>\n): useQueryRefHandlers.Result<TData, TVariables> {\n assertWrappedQueryRef(queryRef);\n const [previousQueryRef, setPreviousQueryRef] = React.useState(queryRef);\n const [wrappedQueryRef, setWrappedQueryRef] = React.useState(queryRef);\n const internalQueryRef = unwrapQueryRef(queryRef);\n\n // To ensure we can support React transitions, this hook needs to manage the\n // queryRef state and apply React's state value immediately to the existing\n // queryRef since this hook doesn't return the queryRef directly\n if (previousQueryRef !== queryRef) {\n setPreviousQueryRef(queryRef);\n setWrappedQueryRef(queryRef);\n } else {\n updateWrappedQueryRef(queryRef, getWrappedPromise(wrappedQueryRef));\n }\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = internalQueryRef.refetch(variables);\n\n setWrappedQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n );\n\n const fetchMore = React.useCallback(\n (\n options: ObservableQuery.FetchMoreOptions<TData, TVariables, any, any>\n ) => {\n const promise = internalQueryRef.fetchMore(\n options as ObservableQuery.FetchMoreOptions<any, any>\n );\n\n setWrappedQueryRef(wrapQueryRef(internalQueryRef));\n\n return promise;\n },\n [internalQueryRef]\n ) as FetchMoreFunction<TData, TVariables>;\n\n return {\n refetch,\n fetchMore,\n // TODO: The internalQueryRef doesn't have TVariables' type information so we have to cast it here\n subscribeToMore: internalQueryRef.observable\n .subscribeToMore as SubscribeToMoreFunction<TData, TVariables>,\n };\n}\n"]}