@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
@@ -65,6 +65,17 @@ export declare class QueryManager {
65
65
  private queryDeduplication;
66
66
  private clientAwareness;
67
67
  private localState;
68
+ /**
69
+ * Whether to prioritize cache values over network results when
70
+ * `fetchObservableWithInfo` is called.
71
+ * This will essentially turn a `"network-only"` or `"cache-and-network"`
72
+ * fetchPolicy into a `"cache-first"` fetchPolicy, but without influencing
73
+ * the `fetchPolicy` of the `ObservableQuery`.
74
+ *
75
+ * This can e.g. be used to prioritize the cache during the first render after
76
+ * SSR.
77
+ */
78
+ prioritizeCacheValues: boolean;
68
79
  private onBroadcast?;
69
80
  mutationStore?: {
70
81
  [mutationId: string]: MutationStoreValue;
@@ -30,6 +30,17 @@ export class QueryManager {
30
30
  queryDeduplication;
31
31
  clientAwareness = {};
32
32
  localState;
33
+ /**
34
+ * Whether to prioritize cache values over network results when
35
+ * `fetchObservableWithInfo` is called.
36
+ * This will essentially turn a `"network-only"` or `"cache-and-network"`
37
+ * fetchPolicy into a `"cache-first"` fetchPolicy, but without influencing
38
+ * the `fetchPolicy` of the `ObservableQuery`.
39
+ *
40
+ * This can e.g. be used to prioritize the cache during the first render after
41
+ * SSR.
42
+ */
43
+ prioritizeCacheValues = false;
33
44
  onBroadcast;
34
45
  mutationStore;
35
46
  // All the queries that the QueryManager is currently managing (not
@@ -810,6 +821,10 @@ export class QueryManager {
810
821
  const queryInfo = this.getQuery(queryId);
811
822
  const defaults = this.defaultOptions.watchQuery;
812
823
  let { fetchPolicy = (defaults && defaults.fetchPolicy) || "cache-first", errorPolicy = (defaults && defaults.errorPolicy) || "none", returnPartialData = false, notifyOnNetworkStatusChange = false, context = {}, } = options;
824
+ if (this.prioritizeCacheValues &&
825
+ (fetchPolicy === "network-only" || fetchPolicy === "cache-and-network")) {
826
+ fetchPolicy = "cache-first";
827
+ }
813
828
  const normalized = Object.assign({}, options, {
814
829
  query,
815
830
  variables,