@apollo/client 3.10.0-alpha.1 → 3.10.0-rc.1

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 (98) hide show
  1. package/.changeset/chatty-llamas-switch.md +5 -0
  2. package/.changeset/cold-dancers-call.md +5 -0
  3. package/.changeset/green-garlics-protect.md +5 -0
  4. package/.changeset/hungry-bobcats-battle.md +5 -0
  5. package/.changeset/kind-foxes-float.md +5 -0
  6. package/.changeset/old-onions-sleep.md +5 -0
  7. package/.changeset/pre.json +14 -3
  8. package/.changeset/spotty-garlics-knock.md +5 -0
  9. package/.changeset/strong-paws-kneel.md +5 -0
  10. package/.changeset/stupid-bears-cheat.md +5 -0
  11. package/.changeset/tiny-bugs-tap.md +5 -0
  12. package/.changeset/twelve-apples-vanish.md +5 -0
  13. package/.changeset/wet-plants-admire.md +5 -0
  14. package/CHANGELOG.md +64 -2
  15. package/apollo-client.cjs +70 -19
  16. package/apollo-client.cjs.map +1 -1
  17. package/apollo-client.min.cjs +1 -1
  18. package/cache/cache.cjs +8 -6
  19. package/cache/cache.cjs.map +1 -1
  20. package/cache/cache.cjs.native.js +8 -6
  21. package/cache/index.d.ts +1 -1
  22. package/cache/index.js.map +1 -1
  23. package/cache/inmemory/readFromStore.js +8 -6
  24. package/cache/inmemory/readFromStore.js.map +1 -1
  25. package/core/ApolloClient.js +1 -0
  26. package/core/ApolloClient.js.map +1 -1
  27. package/core/core.cjs +2 -1
  28. package/core/core.cjs.map +1 -1
  29. package/core/core.cjs.native.js +2 -1
  30. package/core/index.d.ts +1 -1
  31. package/core/index.js.map +1 -1
  32. package/dev/dev.cjs +18 -15
  33. package/dev/dev.cjs.map +1 -1
  34. package/dev/dev.cjs.native.js +18 -15
  35. package/dev/index.d.ts +2 -0
  36. package/dev/index.js +1 -0
  37. package/dev/index.js.map +1 -1
  38. package/dev/loadErrorMessageHandler.d.ts +6 -1
  39. package/dev/loadErrorMessageHandler.js +17 -14
  40. package/dev/loadErrorMessageHandler.js.map +1 -1
  41. package/dev/setErrorMessageHandler.d.ts +34 -0
  42. package/dev/setErrorMessageHandler.js +9 -0
  43. package/dev/setErrorMessageHandler.js.map +1 -0
  44. package/package.json +18 -16
  45. package/react/hooks/hooks.cjs +28 -2
  46. package/react/hooks/hooks.cjs.map +1 -1
  47. package/react/hooks/hooks.cjs.native.js +28 -2
  48. package/react/hooks/internal/wrapHook.d.ts +2 -1
  49. package/react/hooks/internal/wrapHook.js.map +1 -1
  50. package/react/hooks/useBackgroundQuery.js +14 -0
  51. package/react/hooks/useBackgroundQuery.js.map +1 -1
  52. package/react/hooks/useQueryRefHandlers.js +12 -0
  53. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  54. package/react/hooks/useReadQuery.js +19 -2
  55. package/react/hooks/useReadQuery.js.map +1 -1
  56. package/react/hooks/useSuspenseQuery.js +27 -0
  57. package/react/hooks/useSuspenseQuery.js.map +1 -1
  58. package/react/internal/cache/QueryReference.d.ts +3 -1
  59. package/react/internal/cache/QueryReference.js +39 -11
  60. package/react/internal/cache/QueryReference.js.map +1 -1
  61. package/react/internal/cache/SuspenseCache.d.ts +1 -0
  62. package/react/internal/cache/SuspenseCache.js +4 -0
  63. package/react/internal/cache/SuspenseCache.js.map +1 -1
  64. package/react/internal/internal.cjs +32 -10
  65. package/react/internal/internal.cjs.map +1 -1
  66. package/react/internal/internal.cjs.native.js +32 -10
  67. package/react/query-preloader/createQueryPreloader.d.ts +0 -1
  68. package/react/query-preloader/createQueryPreloader.js +0 -1
  69. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  70. package/react/react.cjs.map +1 -1
  71. package/testing/experimental/createSchemaFetch.d.ts +43 -0
  72. package/testing/experimental/createSchemaFetch.js +99 -0
  73. package/testing/experimental/createSchemaFetch.js.map +1 -0
  74. package/testing/experimental/createTestSchema.d.ts +55 -0
  75. package/testing/experimental/createTestSchema.js +110 -0
  76. package/testing/experimental/createTestSchema.js.map +1 -0
  77. package/testing/experimental/experimental.cjs +274 -0
  78. package/testing/experimental/experimental.cjs.map +1 -0
  79. package/testing/experimental/experimental.cjs.native.js +274 -0
  80. package/testing/experimental/graphql-tools/utils.d.ts +26 -0
  81. package/testing/experimental/graphql-tools/utils.js +172 -0
  82. package/testing/experimental/graphql-tools/utils.js.map +1 -0
  83. package/testing/experimental/graphql-tools/utils.test.d.ts +2 -0
  84. package/testing/experimental/graphql-tools/utils.test.js +139 -0
  85. package/testing/experimental/graphql-tools/utils.test.js.map +1 -0
  86. package/testing/experimental/index.d.ts +3 -0
  87. package/testing/experimental/index.js +3 -0
  88. package/testing/experimental/index.js.map +1 -0
  89. package/testing/experimental/package.json +8 -0
  90. package/testing/internal/profile/profile.js +6 -2
  91. package/testing/internal/profile/profile.js.map +1 -1
  92. package/utilities/globals/globals.cjs +1 -1
  93. package/utilities/globals/globals.cjs.map +1 -1
  94. package/utilities/globals/globals.cjs.native.js +1 -1
  95. package/utilities/globals/invariantWrappers.d.ts +1 -1
  96. package/utilities/globals/invariantWrappers.js.map +1 -1
  97. package/version.js +1 -1
  98. package/.changeset/flat-singers-kiss.md +0 -5
@@ -836,6 +836,12 @@ function _useSuspenseQuery(query, options) {
836
836
  dispose();
837
837
  };
838
838
  }, [queryRef]);
839
+ React__namespace.useEffect(function () {
840
+ if (queryRef.disposed) {
841
+ suspenseCache.add(cacheKey, queryRef);
842
+ queryRef.reinitialize();
843
+ }
844
+ });
839
845
  var skipResult = React__namespace.useMemo(function () {
840
846
  var error = toApolloError(queryRef.result);
841
847
  return {
@@ -943,6 +949,11 @@ function _useBackgroundQuery(query, options) {
943
949
  var promise = queryRef.applyOptions(watchQueryOptions);
944
950
  internal.updateWrappedQueryRef(wrappedQueryRef, promise);
945
951
  }
952
+ React__namespace.useEffect(function () {
953
+ if (queryRef.disposed) {
954
+ suspenseCache.add(cacheKey, queryRef);
955
+ }
956
+ });
946
957
  var fetchMore = React__namespace.useCallback(function (options) {
947
958
  var promise = queryRef.fetchMore(options);
948
959
  setWrappedQueryRef(internal.wrapQueryRef(queryRef));
@@ -953,6 +964,7 @@ function _useBackgroundQuery(query, options) {
953
964
  setWrappedQueryRef(internal.wrapQueryRef(queryRef));
954
965
  return promise;
955
966
  }, [queryRef]);
967
+ React__namespace.useEffect(function () { return queryRef.softRetain(); }, [queryRef]);
956
968
  return [
957
969
  didFetchResult.current ? wrappedQueryRef : void 0,
958
970
  { fetchMore: fetchMore, refetch: refetch },
@@ -1011,6 +1023,12 @@ function useLoadableQuery(query, options) {
1011
1023
  }
1012
1024
 
1013
1025
  function useQueryRefHandlers(queryRef) {
1026
+ var unwrapped = internal.unwrapQueryRef(queryRef);
1027
+ return wrapHook("useQueryRefHandlers", _useQueryRefHandlers, unwrapped ?
1028
+ unwrapped["observable"]
1029
+ : useApolloClient())(queryRef);
1030
+ }
1031
+ function _useQueryRefHandlers(queryRef) {
1014
1032
  var _a = React__namespace.useState(queryRef), previousQueryRef = _a[0], setPreviousQueryRef = _a[1];
1015
1033
  var _b = React__namespace.useState(queryRef), wrappedQueryRef = _b[0], setWrappedQueryRef = _b[1];
1016
1034
  var internalQueryRef = internal.unwrapQueryRef(queryRef);
@@ -1035,7 +1053,10 @@ function useQueryRefHandlers(queryRef) {
1035
1053
  }
1036
1054
 
1037
1055
  function useReadQuery(queryRef) {
1038
- return wrapHook("useReadQuery", _useReadQuery, internal.unwrapQueryRef(queryRef)["observable"])(queryRef);
1056
+ var unwrapped = internal.unwrapQueryRef(queryRef);
1057
+ return wrapHook("useReadQuery", _useReadQuery, unwrapped ?
1058
+ unwrapped["observable"]
1059
+ : useApolloClient())(queryRef);
1039
1060
  }
1040
1061
  function _useReadQuery(queryRef) {
1041
1062
  var internalQueryRef = React__namespace.useMemo(function () { return internal.unwrapQueryRef(queryRef); }, [queryRef]);
@@ -1044,7 +1065,12 @@ function _useReadQuery(queryRef) {
1044
1065
  internalQueryRef.reinitialize();
1045
1066
  internal.updateWrappedQueryRef(queryRef, internalQueryRef.promise);
1046
1067
  }
1047
- React__namespace.useEffect(function () { return internalQueryRef.retain(); }, [internalQueryRef]);
1068
+ React__namespace.useEffect(function () {
1069
+ if (internalQueryRef.disposed) {
1070
+ internalQueryRef.reinitialize();
1071
+ }
1072
+ return internalQueryRef.retain();
1073
+ }, [internalQueryRef]);
1048
1074
  var promise = useSyncExternalStore(React__namespace.useCallback(function (forceUpdate) {
1049
1075
  return internalQueryRef.listen(function (promise) {
1050
1076
  internal.updateWrappedQueryRef(queryRef, promise);