@apollo/client 4.0.0-alpha.3 → 4.0.0-alpha.4

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 (134) hide show
  1. package/.changeset/eighty-squids-fix.md +15 -0
  2. package/.changeset/funny-jeans-invent.md +16 -0
  3. package/.changeset/khaki-spies-work.md +11 -0
  4. package/.changeset/light-apes-rescue.md +5 -0
  5. package/.changeset/odd-lemons-relax.md +5 -0
  6. package/.changeset/pre.json +5 -0
  7. package/CHANGELOG.md +44 -0
  8. package/__cjs/core/ApolloClient.cjs +22 -13
  9. package/__cjs/core/ApolloClient.cjs.map +1 -1
  10. package/__cjs/core/ApolloClient.d.cts +13 -1
  11. package/__cjs/core/ObservableQuery.cjs +29 -10
  12. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  13. package/__cjs/core/ObservableQuery.d.cts +6 -3
  14. package/__cjs/core/QueryManager.cjs +15 -0
  15. package/__cjs/core/QueryManager.cjs.map +1 -1
  16. package/__cjs/core/QueryManager.d.cts +11 -0
  17. package/__cjs/core/watchQueryOptions.d.cts +18 -25
  18. package/__cjs/react/hooks/index.cjs +13 -8
  19. package/__cjs/react/hooks/index.cjs.map +1 -1
  20. package/__cjs/react/hooks/index.d.cts +6 -12
  21. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  22. package/__cjs/react/hooks/useBackgroundQuery.d.cts +146 -43
  23. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  24. package/__cjs/react/hooks/useFragment.d.cts +51 -26
  25. package/__cjs/react/hooks/useLazyQuery.cjs +1 -1
  26. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  27. package/__cjs/react/hooks/useLazyQuery.d.cts +263 -262
  28. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  29. package/__cjs/react/hooks/useLoadableQuery.d.cts +105 -32
  30. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  31. package/__cjs/react/hooks/useMutation.d.cts +198 -3
  32. package/__cjs/react/hooks/useQuery.cjs +9 -11
  33. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  34. package/__cjs/react/hooks/useQuery.d.cts +279 -4
  35. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  36. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +21 -20
  37. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  38. package/__cjs/react/hooks/useReadQuery.d.cts +26 -24
  39. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  40. package/__cjs/react/hooks/useSubscription.d.cts +127 -4
  41. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  42. package/__cjs/react/hooks/useSuspenseFragment.d.cts +40 -37
  43. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  44. package/__cjs/react/hooks/useSuspenseQuery.d.cts +202 -35
  45. package/__cjs/react/index.cjs.map +1 -1
  46. package/__cjs/react/index.d.cts +2 -1
  47. package/__cjs/react/internal/index.cjs.map +1 -1
  48. package/__cjs/react/internal/index.d.cts +1 -0
  49. package/__cjs/react/internal/types.d.cts +46 -0
  50. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  51. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +2 -3
  52. package/__cjs/react/ssr/RenderPromises.cjs.map +1 -1
  53. package/__cjs/react/ssr/RenderPromises.d.cts +6 -3
  54. package/__cjs/react/types/deprecated.cjs +3 -0
  55. package/__cjs/react/types/deprecated.cjs.map +1 -0
  56. package/__cjs/react/types/deprecated.d.cts +65 -0
  57. package/__cjs/testing/matchers/index.cjs +2 -0
  58. package/__cjs/testing/matchers/index.cjs.map +1 -1
  59. package/__cjs/testing/matchers/toEqualLazyQueryResult.cjs.map +1 -1
  60. package/__cjs/testing/matchers/toEqualLazyQueryResult.d.cts +2 -2
  61. package/__cjs/testing/matchers/toEqualQueryResult.cjs.map +1 -1
  62. package/__cjs/testing/matchers/toEqualQueryResult.d.cts +2 -2
  63. package/__cjs/testing/matchers/toEqualStrictTyped.cjs +44 -0
  64. package/__cjs/testing/matchers/toEqualStrictTyped.cjs.map +1 -0
  65. package/__cjs/testing/matchers/toEqualStrictTyped.d.cts +3 -0
  66. package/__cjs/version.cjs +1 -1
  67. package/__cjs/version.d.cts +1 -1
  68. package/core/ApolloClient.d.ts +13 -1
  69. package/core/ApolloClient.js +22 -13
  70. package/core/ApolloClient.js.map +1 -1
  71. package/core/ObservableQuery.d.ts +6 -3
  72. package/core/ObservableQuery.js +29 -10
  73. package/core/ObservableQuery.js.map +1 -1
  74. package/core/QueryManager.d.ts +11 -0
  75. package/core/QueryManager.js +15 -0
  76. package/core/QueryManager.js.map +1 -1
  77. package/core/watchQueryOptions.d.ts +18 -25
  78. package/package.json +1 -1
  79. package/react/hooks/index.d.ts +6 -12
  80. package/react/hooks/index.js +6 -6
  81. package/react/hooks/index.js.map +1 -1
  82. package/react/hooks/useBackgroundQuery.d.ts +146 -43
  83. package/react/hooks/useBackgroundQuery.js.map +1 -1
  84. package/react/hooks/useFragment.d.ts +51 -26
  85. package/react/hooks/useFragment.js.map +1 -1
  86. package/react/hooks/useLazyQuery.d.ts +263 -262
  87. package/react/hooks/useLazyQuery.js +1 -1
  88. package/react/hooks/useLazyQuery.js.map +1 -1
  89. package/react/hooks/useLoadableQuery.d.ts +105 -32
  90. package/react/hooks/useLoadableQuery.js.map +1 -1
  91. package/react/hooks/useMutation.d.ts +198 -3
  92. package/react/hooks/useMutation.js.map +1 -1
  93. package/react/hooks/useQuery.d.ts +279 -4
  94. package/react/hooks/useQuery.js +9 -11
  95. package/react/hooks/useQuery.js.map +1 -1
  96. package/react/hooks/useQueryRefHandlers.d.ts +21 -20
  97. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  98. package/react/hooks/useReadQuery.d.ts +26 -24
  99. package/react/hooks/useReadQuery.js.map +1 -1
  100. package/react/hooks/useSubscription.d.ts +127 -4
  101. package/react/hooks/useSubscription.js.map +1 -1
  102. package/react/hooks/useSuspenseFragment.d.ts +40 -37
  103. package/react/hooks/useSuspenseFragment.js.map +1 -1
  104. package/react/hooks/useSuspenseQuery.d.ts +202 -35
  105. package/react/hooks/useSuspenseQuery.js.map +1 -1
  106. package/react/index.d.ts +2 -1
  107. package/react/index.js.map +1 -1
  108. package/react/internal/index.d.ts +1 -0
  109. package/react/internal/index.js.map +1 -1
  110. package/react/internal/types.d.ts +46 -0
  111. package/react/query-preloader/createQueryPreloader.d.ts +2 -3
  112. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  113. package/react/ssr/RenderPromises.d.ts +6 -3
  114. package/react/ssr/RenderPromises.js.map +1 -1
  115. package/react/types/deprecated.d.ts +65 -0
  116. package/react/types/deprecated.js +2 -0
  117. package/react/types/deprecated.js.map +1 -0
  118. package/testing/matchers/index.js +2 -0
  119. package/testing/matchers/index.js.map +1 -1
  120. package/testing/matchers/toEqualLazyQueryResult.d.ts +2 -2
  121. package/testing/matchers/toEqualLazyQueryResult.js.map +1 -1
  122. package/testing/matchers/toEqualQueryResult.d.ts +2 -2
  123. package/testing/matchers/toEqualQueryResult.js.map +1 -1
  124. package/testing/matchers/toEqualStrictTyped.d.ts +3 -0
  125. package/testing/matchers/toEqualStrictTyped.js +40 -0
  126. package/testing/matchers/toEqualStrictTyped.js.map +1 -0
  127. package/version.d.ts +1 -1
  128. package/version.js +1 -1
  129. package/__cjs/react/types/types.d.cts +0 -661
  130. package/react/types/types.d.ts +0 -661
  131. /package/__cjs/react/{types → internal}/types.cjs +0 -0
  132. /package/__cjs/react/{types → internal}/types.cjs.map +0 -0
  133. /package/react/{types → internal}/types.js +0 -0
  134. /package/react/{types → internal}/types.js.map +0 -0
@@ -3,7 +3,6 @@ import type { Observable } from "rxjs";
3
3
  import type { MissingFieldError } from "@apollo/client/cache";
4
4
  import type { MissingTree } from "@apollo/client/cache";
5
5
  import type { MaybeMasked, Unmasked } from "@apollo/client/masking";
6
- import { NetworkStatus } from "./networkStatus.cjs";
7
6
  import type { QueryInfo } from "./QueryInfo.cjs";
8
7
  import type { QueryManager } from "./QueryManager.cjs";
9
8
  import type { ApolloQueryResult, ErrorLike, OperationVariables, TypedDocumentNode } from "./types.cjs";
@@ -78,7 +77,7 @@ export declare class ObservableQuery<TData = unknown, TVariables extends Operati
78
77
  * This function returns _another_ function that you can call to terminate the subscription.
79
78
  */
80
79
  subscribeToMore<TSubscriptionData = TData, TSubscriptionVariables extends OperationVariables = TVariables>(options: SubscribeToMoreOptions<TData, TSubscriptionVariables, TSubscriptionData, TVariables>): () => void;
81
- setOptions(newOptions: Partial<WatchQueryOptions<TVariables, TData>>): Promise<ApolloQueryResult<MaybeMasked<TData>>>;
80
+ /** @internal */
82
81
  silentSetOptions(newOptions: Partial<WatchQueryOptions<TVariables, TData>>): void;
83
82
  /**
84
83
  * Update the variables of this observable query, and fetch the new results
@@ -117,7 +116,11 @@ export declare class ObservableQuery<TData = unknown, TVariables extends Operati
117
116
  private fetch;
118
117
  private updatePolling;
119
118
  private updateLastResult;
120
- reobserve(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>, newNetworkStatus?: NetworkStatus): Promise<ApolloQueryResult<MaybeMasked<TData>>>;
119
+ /**
120
+ * Reevaluate the query, optionally against new options. New options will be
121
+ * merged with the current options when given.
122
+ */
123
+ reobserve(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>): Promise<ApolloQueryResult<MaybeMasked<TData>>>;
121
124
  private observe;
122
125
  private reportResult;
123
126
  private reportError;
@@ -37,6 +37,17 @@ class QueryManager {
37
37
  queryDeduplication;
38
38
  clientAwareness = {};
39
39
  localState;
40
+ /**
41
+ * Whether to prioritize cache values over network results when
42
+ * `fetchObservableWithInfo` is called.
43
+ * This will essentially turn a `"network-only"` or `"cache-and-network"`
44
+ * fetchPolicy into a `"cache-first"` fetchPolicy, but without influencing
45
+ * the `fetchPolicy` of the `ObservableQuery`.
46
+ *
47
+ * This can e.g. be used to prioritize the cache during the first render after
48
+ * SSR.
49
+ */
50
+ prioritizeCacheValues = false;
40
51
  onBroadcast;
41
52
  mutationStore;
42
53
  // All the queries that the QueryManager is currently managing (not
@@ -817,6 +828,10 @@ class QueryManager {
817
828
  const queryInfo = this.getQuery(queryId);
818
829
  const defaults = this.defaultOptions.watchQuery;
819
830
  let { fetchPolicy = (defaults && defaults.fetchPolicy) || "cache-first", errorPolicy = (defaults && defaults.errorPolicy) || "none", returnPartialData = false, notifyOnNetworkStatusChange = false, context = {}, } = options;
831
+ if (this.prioritizeCacheValues &&
832
+ (fetchPolicy === "network-only" || fetchPolicy === "cache-and-network")) {
833
+ fetchPolicy = "cache-first";
834
+ }
820
835
  const normalized = Object.assign({}, options, {
821
836
  query,
822
837
  variables,