@apollo/client 3.12.11 → 3.13.0

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 (69) hide show
  1. package/CHANGELOG.md +128 -0
  2. package/apollo-client.cjs +192 -20
  3. package/apollo-client.cjs.map +1 -1
  4. package/apollo-client.min.cjs +1 -1
  5. package/config/jest/setup.js +2 -0
  6. package/config/jest/setup.js.map +1 -1
  7. package/core/ObservableQuery.d.ts +3 -6
  8. package/core/ObservableQuery.js +6 -8
  9. package/core/ObservableQuery.js.map +1 -1
  10. package/core/QueryManager.js +9 -4
  11. package/core/QueryManager.js.map +1 -1
  12. package/core/core.cjs +16 -13
  13. package/core/core.cjs.map +1 -1
  14. package/core/core.cjs.native.js +16 -13
  15. package/core/index.d.ts +2 -2
  16. package/core/index.js.map +1 -1
  17. package/core/watchQueryOptions.d.ts +50 -4
  18. package/core/watchQueryOptions.js.map +1 -1
  19. package/dev/dev.cjs +1 -1
  20. package/dev/dev.cjs.map +1 -1
  21. package/dev/dev.cjs.native.js +1 -1
  22. package/package.json +1 -1
  23. package/react/hoc/types.d.ts +2 -3
  24. package/react/hoc/types.js.map +1 -1
  25. package/react/hooks/hooks.cjs +53 -7
  26. package/react/hooks/hooks.cjs.map +1 -1
  27. package/react/hooks/hooks.cjs.native.js +53 -7
  28. package/react/hooks/index.d.ts +2 -0
  29. package/react/hooks/index.js +1 -0
  30. package/react/hooks/index.js.map +1 -1
  31. package/react/hooks/internal/wrapHook.d.ts +2 -1
  32. package/react/hooks/internal/wrapHook.js.map +1 -1
  33. package/react/hooks/useBackgroundQuery.d.ts +2 -1
  34. package/react/hooks/useBackgroundQuery.js +3 -1
  35. package/react/hooks/useBackgroundQuery.js.map +1 -1
  36. package/react/hooks/useLoadableQuery.d.ts +2 -1
  37. package/react/hooks/useLoadableQuery.js +3 -1
  38. package/react/hooks/useLoadableQuery.js.map +1 -1
  39. package/react/hooks/useMutation.js +3 -3
  40. package/react/hooks/useMutation.js.map +1 -1
  41. package/react/hooks/useQuery.js.map +1 -1
  42. package/react/hooks/useQueryRefHandlers.d.ts +2 -1
  43. package/react/hooks/useQueryRefHandlers.js +3 -1
  44. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  45. package/react/hooks/useSuspenseFragment.d.ts +45 -0
  46. package/react/hooks/useSuspenseFragment.js +49 -0
  47. package/react/hooks/useSuspenseFragment.js.map +1 -0
  48. package/react/hooks/useSuspenseQuery.d.ts +1 -1
  49. package/react/hooks/useSuspenseQuery.js +3 -1
  50. package/react/hooks/useSuspenseQuery.js.map +1 -1
  51. package/react/internal/cache/FragmentReference.d.ts +37 -0
  52. package/react/internal/cache/FragmentReference.js +123 -0
  53. package/react/internal/cache/FragmentReference.js.map +1 -0
  54. package/react/internal/cache/SuspenseCache.d.ts +7 -2
  55. package/react/internal/cache/SuspenseCache.js +14 -0
  56. package/react/internal/cache/SuspenseCache.js.map +1 -1
  57. package/react/internal/cache/types.d.ts +8 -0
  58. package/react/internal/cache/types.js.map +1 -1
  59. package/react/internal/internal.cjs +124 -1
  60. package/react/internal/internal.cjs.map +1 -1
  61. package/react/internal/internal.cjs.native.js +124 -1
  62. package/react/query-preloader/createQueryPreloader.d.ts +1 -37
  63. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  64. package/react/types/types.d.ts +61 -5
  65. package/react/types/types.js.map +1 -1
  66. package/utilities/globals/globals.cjs +1 -1
  67. package/utilities/globals/globals.cjs.map +1 -1
  68. package/utilities/globals/globals.cjs.native.js +1 -1
  69. package/version.js +1 -1
@@ -29,6 +29,7 @@ function _interopNamespace(e) {
29
29
  }
30
30
 
31
31
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
33
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
33
34
 
34
35
  function useApolloClient(override) {
@@ -602,10 +603,10 @@ function useMutation(mutation, options) {
602
603
  onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);
603
604
  }
604
605
  return response;
605
- })
606
- .catch(function (error) {
606
+ }, function (error) {
607
607
  var _a;
608
- if (mutationId === ref.current.mutationId && ref.current.isMounted) {
608
+ if (mutationId === ref.current.mutationId &&
609
+ ref.current.isMounted) {
609
610
  var result_2 = {
610
611
  loading: false,
611
612
  error: error,
@@ -949,7 +950,8 @@ function useSuspenseQuery_(query, options) {
949
950
  setPromise([queryRef.key, queryRef.promise]);
950
951
  return promise;
951
952
  }, [queryRef]);
952
- var subscribeToMore = queryRef.observable.subscribeToMore;
953
+ var subscribeToMore = queryRef.observable
954
+ .subscribeToMore;
953
955
  return React__namespace.useMemo(function () {
954
956
  return {
955
957
  client: client,
@@ -1061,11 +1063,52 @@ function useBackgroundQuery_(query, options) {
1061
1063
  {
1062
1064
  fetchMore: fetchMore,
1063
1065
  refetch: refetch,
1064
- subscribeToMore: queryRef.observable.subscribeToMore,
1066
+ subscribeToMore: queryRef.observable
1067
+ .subscribeToMore,
1065
1068
  },
1066
1069
  ];
1067
1070
  }
1068
1071
 
1072
+ var NULL_PLACEHOLDER = [];
1073
+ function useSuspenseFragment(options) {
1074
+ return wrapHook("useSuspenseFragment",
1075
+ useSuspenseFragment_, useApolloClient(typeof options === "object" ? options.client : undefined))(options);
1076
+ }
1077
+ function useSuspenseFragment_(options) {
1078
+ var client = useApolloClient(options.client);
1079
+ var from = options.from, variables = options.variables;
1080
+ var cache$1 = client.cache;
1081
+ var id = React.useMemo(function () {
1082
+ return typeof from === "string" ? from
1083
+ : from === null ? null
1084
+ : cache$1.identify(from);
1085
+ }, [cache$1, from]);
1086
+ var fragmentRef = id === null ? null : (internal.getSuspenseCache(client).getFragmentRef([id, options.fragment, cache.canonicalStringify(variables)], client, tslib.__assign(tslib.__assign({}, options), { variables: variables, from: id })));
1087
+ var _a = React__default.useState(fragmentRef === null ? NULL_PLACEHOLDER : ([fragmentRef.key, fragmentRef.promise])), current = _a[0], setPromise = _a[1];
1088
+ React__default.useEffect(function () {
1089
+ if (fragmentRef === null) {
1090
+ return;
1091
+ }
1092
+ var dispose = fragmentRef.retain();
1093
+ var removeListener = fragmentRef.listen(function (promise) {
1094
+ setPromise([fragmentRef.key, promise]);
1095
+ });
1096
+ return function () {
1097
+ dispose();
1098
+ removeListener();
1099
+ };
1100
+ }, [fragmentRef]);
1101
+ if (fragmentRef === null) {
1102
+ return { data: null };
1103
+ }
1104
+ if (current[0] !== fragmentRef.key) {
1105
+ current[0] = fragmentRef.key;
1106
+ current[1] = fragmentRef.promise;
1107
+ }
1108
+ var data = __use(current[1]);
1109
+ return { data: data };
1110
+ }
1111
+
1069
1112
  function useLoadableQuery(query, options) {
1070
1113
  if (options === void 0) { options = Object.create(null); }
1071
1114
  var client = useApolloClient(options.client);
@@ -1121,7 +1164,8 @@ function useLoadableQuery(query, options) {
1121
1164
  ]);
1122
1165
  var subscribeToMore = React__namespace.useCallback(function (options) {
1123
1166
  globals.invariant(internalQueryRef, 60);
1124
- return internalQueryRef.observable.subscribeToMore(options);
1167
+ return internalQueryRef.observable.subscribeToMore(
1168
+ options);
1125
1169
  }, [internalQueryRef]);
1126
1170
  var reset = React__namespace.useCallback(function () {
1127
1171
  setQueryRef(null);
@@ -1162,7 +1206,8 @@ function useQueryRefHandlers_(queryRef) {
1162
1206
  return {
1163
1207
  refetch: refetch,
1164
1208
  fetchMore: fetchMore,
1165
- subscribeToMore: internalQueryRef.observable.subscribeToMore,
1209
+ subscribeToMore: internalQueryRef.observable
1210
+ .subscribeToMore,
1166
1211
  };
1167
1212
  }
1168
1213
 
@@ -1211,5 +1256,6 @@ exports.useQueryRefHandlers = useQueryRefHandlers;
1211
1256
  exports.useReactiveVar = useReactiveVar;
1212
1257
  exports.useReadQuery = useReadQuery;
1213
1258
  exports.useSubscription = useSubscription;
1259
+ exports.useSuspenseFragment = useSuspenseFragment;
1214
1260
  exports.useSuspenseQuery = useSuspenseQuery;
1215
1261
  //# sourceMappingURL=hooks.cjs.map