@apollo/client 4.0.0-alpha.16 → 4.0.0-alpha.17

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 (90) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/__cjs/core/ObservableQuery.cjs +104 -48
  3. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  4. package/__cjs/core/ObservableQuery.d.cts +19 -2
  5. package/__cjs/core/QueryManager.cjs +19 -2
  6. package/__cjs/core/QueryManager.cjs.map +1 -1
  7. package/__cjs/core/index.cjs.map +1 -1
  8. package/__cjs/core/index.d.cts +1 -1
  9. package/__cjs/core/types.d.cts +25 -3
  10. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  11. package/__cjs/react/hooks/useBackgroundQuery.d.cts +50 -14
  12. package/__cjs/react/hooks/useLazyQuery.cjs +1 -0
  13. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  14. package/__cjs/react/hooks/useLazyQuery.d.cts +28 -53
  15. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  16. package/__cjs/react/hooks/useLoadableQuery.d.cts +7 -8
  17. package/__cjs/react/hooks/useQuery.cjs +3 -2
  18. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  19. package/__cjs/react/hooks/useQuery.d.cts +10 -48
  20. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  21. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +2 -2
  22. package/__cjs/react/hooks/useReadQuery.cjs +1 -0
  23. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  24. package/__cjs/react/hooks/useReadQuery.d.cts +4 -11
  25. package/__cjs/react/hooks/useSuspenseQuery.cjs +2 -0
  26. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  27. package/__cjs/react/hooks/useSuspenseQuery.d.cts +12 -24
  28. package/__cjs/react/index.cjs.map +1 -1
  29. package/__cjs/react/index.d.cts +1 -1
  30. package/__cjs/react/internal/cache/QueryReference.cjs +7 -1
  31. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  32. package/__cjs/react/internal/cache/QueryReference.d.cts +25 -65
  33. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  34. package/__cjs/react/internal/cache/SuspenseCache.d.cts +3 -3
  35. package/__cjs/react/internal/index.cjs.map +1 -1
  36. package/__cjs/react/internal/index.d.cts +1 -1
  37. package/__cjs/react/internal/types.d.cts +2 -2
  38. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  39. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +4 -5
  40. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  41. package/__cjs/react/ssr/useSSRQuery.cjs +1 -0
  42. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  43. package/__cjs/react/types/types.documentation.d.cts +12 -0
  44. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  45. package/__cjs/version.cjs +1 -1
  46. package/core/ObservableQuery.d.ts +19 -2
  47. package/core/ObservableQuery.js +105 -49
  48. package/core/ObservableQuery.js.map +1 -1
  49. package/core/QueryManager.js +19 -2
  50. package/core/QueryManager.js.map +1 -1
  51. package/core/index.d.ts +1 -1
  52. package/core/index.js.map +1 -1
  53. package/core/types.d.ts +25 -3
  54. package/package.json +1 -1
  55. package/react/hooks/useBackgroundQuery.d.ts +50 -14
  56. package/react/hooks/useBackgroundQuery.js.map +1 -1
  57. package/react/hooks/useLazyQuery.d.ts +28 -53
  58. package/react/hooks/useLazyQuery.js +1 -0
  59. package/react/hooks/useLazyQuery.js.map +1 -1
  60. package/react/hooks/useLoadableQuery.d.ts +7 -8
  61. package/react/hooks/useLoadableQuery.js.map +1 -1
  62. package/react/hooks/useQuery.d.ts +10 -48
  63. package/react/hooks/useQuery.js +3 -2
  64. package/react/hooks/useQuery.js.map +1 -1
  65. package/react/hooks/useQueryRefHandlers.d.ts +2 -2
  66. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  67. package/react/hooks/useReadQuery.d.ts +4 -11
  68. package/react/hooks/useReadQuery.js +1 -0
  69. package/react/hooks/useReadQuery.js.map +1 -1
  70. package/react/hooks/useSuspenseQuery.d.ts +12 -24
  71. package/react/hooks/useSuspenseQuery.js +2 -0
  72. package/react/hooks/useSuspenseQuery.js.map +1 -1
  73. package/react/index.d.ts +1 -1
  74. package/react/index.js.map +1 -1
  75. package/react/internal/cache/QueryReference.d.ts +25 -65
  76. package/react/internal/cache/QueryReference.js +7 -1
  77. package/react/internal/cache/QueryReference.js.map +1 -1
  78. package/react/internal/cache/SuspenseCache.d.ts +3 -3
  79. package/react/internal/cache/SuspenseCache.js.map +1 -1
  80. package/react/internal/index.d.ts +1 -1
  81. package/react/internal/index.js.map +1 -1
  82. package/react/internal/types.d.ts +2 -2
  83. package/react/query-preloader/createQueryPreloader.d.ts +4 -5
  84. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  85. package/react/ssr/prerenderStatic.js.map +1 -1
  86. package/react/ssr/useSSRQuery.js +1 -0
  87. package/react/ssr/useSSRQuery.js.map +1 -1
  88. package/react/types/types.documentation.d.ts +12 -0
  89. package/utilities/internal/toQueryResult.js.map +1 -1
  90. package/version.js +1 -1
@@ -835,20 +835,29 @@ export class QueryManager {
835
835
  }
836
836
  const aqr = {
837
837
  data: result.data,
838
+ dataState: result.data ? "complete" : "empty",
838
839
  loading: false,
839
840
  networkStatus: NetworkStatus.ready,
840
841
  partial: !result.data,
841
842
  };
843
+ if (isExecutionPatchResult(result) && result.hasNext) {
844
+ aqr.dataState = "streaming";
845
+ aqr.partial = true;
846
+ }
842
847
  // In the case we start multiple network requests simulatenously, we
843
848
  // want to ensure we properly set `data` if we're reporting on an old
844
849
  // result which will not be caught by the conditional above that ends up
845
850
  // throwing the markError result.
846
851
  if (hasErrors && errorPolicy === "none") {
847
852
  aqr.data = void 0;
853
+ aqr.dataState = "empty";
848
854
  }
849
855
  if (hasErrors && errorPolicy !== "ignore") {
850
856
  aqr.error = new CombinedGraphQLErrors(result);
851
857
  aqr.networkStatus = NetworkStatus.error;
858
+ if (aqr.data) {
859
+ aqr.dataState = "complete";
860
+ }
852
861
  }
853
862
  return aqr;
854
863
  }), catchError((error) => {
@@ -860,6 +869,7 @@ export class QueryManager {
860
869
  }
861
870
  const aqr = {
862
871
  data: undefined,
872
+ dataState: "empty",
863
873
  loading: false,
864
874
  networkStatus: NetworkStatus.ready,
865
875
  partial: true,
@@ -1040,7 +1050,9 @@ export class QueryManager {
1040
1050
  if (result === true) {
1041
1051
  // The onQueryUpdated function requested the default refetching
1042
1052
  // behavior by returning true.
1043
- result = oq.refetch();
1053
+ result = oq
1054
+ .refetch()
1055
+ .retain( /* create a persistent subscription on the query */);
1044
1056
  }
1045
1057
  // Record the result in the results Map, as long as onQueryUpdated
1046
1058
  // did not return false to skip/ignore this result.
@@ -1074,7 +1086,9 @@ export class QueryManager {
1074
1086
  }
1075
1087
  // Otherwise, we fall back to refetching.
1076
1088
  if (!onQueryUpdated || result === true) {
1077
- result = oq.refetch();
1089
+ result = oq
1090
+ .refetch()
1091
+ .retain( /* create a persistent subscription on the query */);
1078
1092
  }
1079
1093
  if (result !== false) {
1080
1094
  results.set(oq, result);
@@ -1143,6 +1157,9 @@ export class QueryManager {
1143
1157
  return {
1144
1158
  // TODO: Handle partial data
1145
1159
  data: data,
1160
+ dataState: diff.complete ? "complete"
1161
+ : data ? "partial"
1162
+ : "empty",
1146
1163
  loading: isNetworkRequestInFlight(networkStatus),
1147
1164
  networkStatus,
1148
1165
  partial: !diff.complete,