@apollo/client 3.8.0-beta.7 → 3.8.0-rc.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 (109) hide show
  1. package/apollo-client.cjs +239 -233
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/config/jest/setup.js +5 -0
  5. package/config/jest/setup.js.map +1 -1
  6. package/core/core.cjs +1 -1
  7. package/core/core.cjs.map +1 -1
  8. package/core/core.cjs.native.js +1 -1
  9. package/dev/dev.cjs +28 -37
  10. package/dev/dev.cjs.map +1 -1
  11. package/dev/dev.cjs.native.js +28 -37
  12. package/invariantErrorCodes.js +27 -36
  13. package/link/batch-http/batch-http.cjs +5 -7
  14. package/link/batch-http/batch-http.cjs.map +1 -1
  15. package/link/batch-http/batch-http.cjs.native.js +5 -7
  16. package/link/batch-http/batchHttpLink.d.ts.map +1 -1
  17. package/link/batch-http/batchHttpLink.js +6 -8
  18. package/link/batch-http/batchHttpLink.js.map +1 -1
  19. package/link/http/createHttpLink.d.ts.map +1 -1
  20. package/link/http/createHttpLink.js +16 -11
  21. package/link/http/createHttpLink.js.map +1 -1
  22. package/link/http/createSignalIfSupported.d.ts.map +1 -1
  23. package/link/http/createSignalIfSupported.js.map +1 -1
  24. package/link/http/http.cjs +47 -60
  25. package/link/http/http.cjs.map +1 -1
  26. package/link/http/http.cjs.native.js +47 -60
  27. package/link/http/parseAndCheckHttpResponse.d.ts +3 -4
  28. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  29. package/link/http/parseAndCheckHttpResponse.js +32 -51
  30. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  31. package/package.json +9 -9
  32. package/react/cache/QueryReference.d.ts +1 -1
  33. package/react/cache/QueryReference.d.ts.map +1 -1
  34. package/react/cache/QueryReference.js.map +1 -1
  35. package/react/cache/SuspenseCache.d.ts +1 -2
  36. package/react/cache/SuspenseCache.d.ts.map +1 -1
  37. package/react/cache/SuspenseCache.js.map +1 -1
  38. package/react/cache/getSuspenseCache.d.ts +16 -0
  39. package/react/cache/getSuspenseCache.d.ts.map +1 -0
  40. package/react/cache/getSuspenseCache.js +10 -0
  41. package/react/cache/getSuspenseCache.js.map +1 -0
  42. package/react/cache/index.d.ts +6 -1
  43. package/react/cache/index.d.ts.map +1 -1
  44. package/react/cache/index.js +15 -1
  45. package/react/cache/index.js.map +1 -1
  46. package/react/cache/types.d.ts +2 -1
  47. package/react/cache/types.d.ts.map +1 -1
  48. package/react/cache/types.js.map +1 -1
  49. package/react/context/ApolloContext.d.ts +0 -2
  50. package/react/context/ApolloContext.d.ts.map +1 -1
  51. package/react/context/ApolloContext.js.map +1 -1
  52. package/react/context/ApolloProvider.d.ts +0 -2
  53. package/react/context/ApolloProvider.d.ts.map +1 -1
  54. package/react/context/ApolloProvider.js +3 -3
  55. package/react/context/ApolloProvider.js.map +1 -1
  56. package/react/context/context.cjs +3 -3
  57. package/react/context/context.cjs.map +1 -1
  58. package/react/context/context.cjs.native.js +3 -3
  59. package/react/hooks/hooks.cjs +157 -126
  60. package/react/hooks/hooks.cjs.map +1 -1
  61. package/react/hooks/hooks.cjs.native.js +157 -126
  62. package/react/hooks/useBackgroundQuery.d.ts.map +1 -1
  63. package/react/hooks/useBackgroundQuery.js +7 -3
  64. package/react/hooks/useBackgroundQuery.js.map +1 -1
  65. package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
  66. package/react/hooks/useSuspenseQuery.js +9 -6
  67. package/react/hooks/useSuspenseQuery.js.map +1 -1
  68. package/react/hooks/useSyncExternalStore.js +1 -1
  69. package/react/index.d.ts.map +1 -1
  70. package/react/index.js.map +1 -1
  71. package/react/parser/index.js +5 -5
  72. package/react/parser/parser.cjs +5 -5
  73. package/react/parser/parser.cjs.map +1 -1
  74. package/react/parser/parser.cjs.native.js +5 -5
  75. package/react/react.cjs +14 -3
  76. package/react/react.cjs.map +1 -1
  77. package/react/react.cjs.native.js +14 -3
  78. package/testing/core/core.cjs +1 -1
  79. package/testing/core/core.cjs.map +1 -1
  80. package/testing/core/core.cjs.native.js +1 -1
  81. package/testing/core/mocking/mockLink.js +1 -1
  82. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +1 -2
  83. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts.map +1 -1
  84. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +11 -5
  85. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
  86. package/testing/react/MockedProvider.d.ts +0 -3
  87. package/testing/react/MockedProvider.d.ts.map +1 -1
  88. package/testing/react/MockedProvider.js +4 -6
  89. package/testing/react/MockedProvider.js.map +1 -1
  90. package/testing/testing.cjs +4 -6
  91. package/testing/testing.cjs.map +1 -1
  92. package/testing/testing.cjs.native.js +4 -6
  93. package/utilities/globals/globals.cjs +1 -1
  94. package/utilities/globals/globals.cjs.map +1 -1
  95. package/utilities/globals/globals.cjs.native.js +1 -1
  96. package/utilities/graphql/DocumentTransform.js +1 -1
  97. package/utilities/graphql/directives.js +4 -4
  98. package/utilities/graphql/fragments.js +3 -3
  99. package/utilities/graphql/getFromAST.js +8 -8
  100. package/utilities/graphql/storeUtils.js +1 -1
  101. package/utilities/graphql/transform.js +2 -2
  102. package/utilities/utilities.cjs +19 -19
  103. package/utilities/utilities.cjs.map +1 -1
  104. package/utilities/utilities.cjs.native.js +19 -19
  105. package/version.js +1 -1
  106. package/react/hooks/useSuspenseCache.d.ts +0 -3
  107. package/react/hooks/useSuspenseCache.d.ts.map +0 -1
  108. package/react/hooks/useSuspenseCache.js +0 -10
  109. package/react/hooks/useSuspenseCache.js.map +0 -1
@@ -12,6 +12,7 @@ var errors = require('../../errors');
12
12
  var core = require('../../core');
13
13
  var parser = require('../parser');
14
14
  var cache = require('../../cache');
15
+ var trie = require('@wry/trie');
15
16
  var invariant = require('ts-invariant');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
@@ -47,7 +48,7 @@ var useSyncExternalStore = realHook$1 || (function (subscribe, getSnapshot, getS
47
48
  !didWarnUncachedGetSnapshot &&
48
49
  value !== getSnapshot()) {
49
50
  didWarnUncachedGetSnapshot = true;
50
- globalThis.__DEV__ !== false && globals.invariant.error(57);
51
+ globalThis.__DEV__ !== false && globals.invariant.error(56);
51
52
  }
52
53
  var _a = React__namespace.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];
53
54
  if (utilities.canUseLayoutEffect) {
@@ -739,127 +740,6 @@ var __use = realHook ||
739
740
  }
740
741
  };
741
742
 
742
- function useSuspenseCache(override) {
743
- var context$1 = React__namespace.useContext(context.getApolloContext());
744
- var suspenseCache = override || context$1.suspenseCache;
745
- globals.invariant(suspenseCache, 54);
746
- return suspenseCache;
747
- }
748
-
749
- function useSuspenseQuery(query, options) {
750
- if (options === void 0) { options = Object.create(null); }
751
- var client = useApolloClient(options.client);
752
- var suspenseCache = useSuspenseCache(options.suspenseCache);
753
- var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
754
- var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
755
- var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
756
- var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
757
- var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
758
- return client.watchQuery(watchQueryOptions);
759
- });
760
- var _b = React__namespace.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
761
- var promise = promiseCache.get(queryRef.key);
762
- if (queryRef.didChangeOptions(watchQueryOptions)) {
763
- promise = queryRef.applyOptions(watchQueryOptions);
764
- promiseCache.set(queryRef.key, promise);
765
- }
766
- if (!promise) {
767
- promise = queryRef.promise;
768
- promiseCache.set(queryRef.key, promise);
769
- }
770
- React__namespace.useEffect(function () {
771
- var dispose = queryRef.retain();
772
- var removeListener = queryRef.listen(function (promise) {
773
- setPromiseCache(function (promiseCache) {
774
- return new Map(promiseCache).set(queryRef.key, promise);
775
- });
776
- });
777
- return function () {
778
- removeListener();
779
- dispose();
780
- };
781
- }, [queryRef]);
782
- var skipResult = React__namespace.useMemo(function () {
783
- var error = toApolloError(queryRef.result);
784
- return {
785
- loading: false,
786
- data: queryRef.result.data,
787
- networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
788
- error: error,
789
- };
790
- }, [queryRef.result]);
791
- var result = fetchPolicy === 'standby' ? skipResult : __use(promise);
792
- var fetchMore = React__namespace.useCallback(function (options) {
793
- var promise = queryRef.fetchMore(options);
794
- setPromiseCache(function (previousPromiseCache) {
795
- return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
796
- });
797
- return promise;
798
- }, [queryRef]);
799
- var refetch = React__namespace.useCallback(function (variables) {
800
- var promise = queryRef.refetch(variables);
801
- setPromiseCache(function (previousPromiseCache) {
802
- return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
803
- });
804
- return promise;
805
- }, [queryRef]);
806
- var subscribeToMore = React__namespace.useCallback(function (options) { return queryRef.observable.subscribeToMore(options); }, [queryRef]);
807
- return React__namespace.useMemo(function () {
808
- return {
809
- client: client,
810
- data: result.data,
811
- error: toApolloError(result),
812
- networkStatus: result.networkStatus,
813
- fetchMore: fetchMore,
814
- refetch: refetch,
815
- subscribeToMore: subscribeToMore,
816
- };
817
- }, [client, fetchMore, refetch, result, subscribeToMore]);
818
- }
819
- function validateOptions(options) {
820
- var query = options.query, fetchPolicy = options.fetchPolicy, returnPartialData = options.returnPartialData;
821
- parser.verifyDocumentType(query, parser.DocumentType.Query);
822
- validateFetchPolicy(fetchPolicy);
823
- validatePartialDataReturn(fetchPolicy, returnPartialData);
824
- }
825
- function validateFetchPolicy(fetchPolicy) {
826
- if (fetchPolicy === void 0) { fetchPolicy = 'cache-first'; }
827
- var supportedFetchPolicies = [
828
- 'cache-first',
829
- 'network-only',
830
- 'no-cache',
831
- 'cache-and-network',
832
- ];
833
- globals.invariant(supportedFetchPolicies.includes(fetchPolicy), 55, fetchPolicy);
834
- }
835
- function validatePartialDataReturn(fetchPolicy, returnPartialData) {
836
- if (fetchPolicy === 'no-cache' && returnPartialData) {
837
- globalThis.__DEV__ !== false && globals.invariant.warn(56);
838
- }
839
- }
840
- function toApolloError(result) {
841
- return utilities.isNonEmptyArray(result.errors)
842
- ? new core.ApolloError({ graphQLErrors: result.errors })
843
- : result.error;
844
- }
845
- function useWatchQueryOptions(_a) {
846
- var client = _a.client, query = _a.query, options = _a.options;
847
- return useDeepMemo(function () {
848
- var _a;
849
- var fetchPolicy = options.fetchPolicy ||
850
- ((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
851
- 'cache-first';
852
- var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
853
- if (globalThis.__DEV__ !== false) {
854
- validateOptions(watchQueryOptions);
855
- }
856
- if (options.skip) {
857
- watchQueryOptions.fetchPolicy = 'standby';
858
- }
859
- return watchQueryOptions;
860
- }, [client, options, query]);
861
- }
862
-
863
743
  var QUERY_REFERENCE_SYMBOL = Symbol();
864
744
  var OBSERVED_CHANGED_OPTIONS = [
865
745
  'canonizeResults',
@@ -869,7 +749,7 @@ var OBSERVED_CHANGED_OPTIONS = [
869
749
  'refetchWritePolicy',
870
750
  'returnPartialData',
871
751
  ];
872
- ((function () {
752
+ var InternalQueryReference = (function () {
873
753
  function InternalQueryReference(observable, options) {
874
754
  var _this = this;
875
755
  var _a;
@@ -1033,16 +913,167 @@ var OBSERVED_CHANGED_OPTIONS = [
1033
913
  this.promise.catch(function () { });
1034
914
  };
1035
915
  return InternalQueryReference;
1036
- })());
916
+ }());
917
+
918
+ var SuspenseCache = (function () {
919
+ function SuspenseCache(options) {
920
+ if (options === void 0) { options = Object.create(null); }
921
+ this.queryRefs = new trie.Trie(utilities.canUseWeakMap);
922
+ this.options = options;
923
+ }
924
+ SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {
925
+ var ref = this.queryRefs.lookupArray(cacheKey);
926
+ if (!ref.current) {
927
+ ref.current = new InternalQueryReference(createObservable(), {
928
+ key: cacheKey,
929
+ autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,
930
+ onDispose: function () {
931
+ delete ref.current;
932
+ },
933
+ });
934
+ }
935
+ return ref.current;
936
+ };
937
+ return SuspenseCache;
938
+ }());
939
+
940
+ var suspenseCacheSymbol = Symbol.for('apollo.suspenseCache');
941
+ function getSuspenseCache(client) {
942
+ var _a;
943
+ if (!client[suspenseCacheSymbol]) {
944
+ client[suspenseCacheSymbol] = new SuspenseCache((_a = client.defaultOptions.react) === null || _a === void 0 ? void 0 : _a.suspense);
945
+ }
946
+ return client[suspenseCacheSymbol];
947
+ }
948
+
949
+ function useSuspenseQuery(query, options) {
950
+ if (options === void 0) { options = Object.create(null); }
951
+ var client = useApolloClient(options.client);
952
+ var suspenseCache = getSuspenseCache(client);
953
+ var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
954
+ var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
955
+ var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
956
+ var cacheKey = tslib.__spreadArray([
957
+ query,
958
+ cache.canonicalStringify(variables)
959
+ ], [].concat(queryKey), true);
960
+ var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
961
+ return client.watchQuery(watchQueryOptions);
962
+ });
963
+ var _b = React__namespace.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
964
+ var promise = promiseCache.get(queryRef.key);
965
+ if (queryRef.didChangeOptions(watchQueryOptions)) {
966
+ promise = queryRef.applyOptions(watchQueryOptions);
967
+ promiseCache.set(queryRef.key, promise);
968
+ }
969
+ if (!promise) {
970
+ promise = queryRef.promise;
971
+ promiseCache.set(queryRef.key, promise);
972
+ }
973
+ React__namespace.useEffect(function () {
974
+ var dispose = queryRef.retain();
975
+ var removeListener = queryRef.listen(function (promise) {
976
+ setPromiseCache(function (promiseCache) {
977
+ return new Map(promiseCache).set(queryRef.key, promise);
978
+ });
979
+ });
980
+ return function () {
981
+ removeListener();
982
+ dispose();
983
+ };
984
+ }, [queryRef]);
985
+ var skipResult = React__namespace.useMemo(function () {
986
+ var error = toApolloError(queryRef.result);
987
+ return {
988
+ loading: false,
989
+ data: queryRef.result.data,
990
+ networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
991
+ error: error,
992
+ };
993
+ }, [queryRef.result]);
994
+ var result = fetchPolicy === 'standby' ? skipResult : __use(promise);
995
+ var fetchMore = React__namespace.useCallback(function (options) {
996
+ var promise = queryRef.fetchMore(options);
997
+ setPromiseCache(function (previousPromiseCache) {
998
+ return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
999
+ });
1000
+ return promise;
1001
+ }, [queryRef]);
1002
+ var refetch = React__namespace.useCallback(function (variables) {
1003
+ var promise = queryRef.refetch(variables);
1004
+ setPromiseCache(function (previousPromiseCache) {
1005
+ return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
1006
+ });
1007
+ return promise;
1008
+ }, [queryRef]);
1009
+ var subscribeToMore = React__namespace.useCallback(function (options) { return queryRef.observable.subscribeToMore(options); }, [queryRef]);
1010
+ return React__namespace.useMemo(function () {
1011
+ return {
1012
+ client: client,
1013
+ data: result.data,
1014
+ error: toApolloError(result),
1015
+ networkStatus: result.networkStatus,
1016
+ fetchMore: fetchMore,
1017
+ refetch: refetch,
1018
+ subscribeToMore: subscribeToMore,
1019
+ };
1020
+ }, [client, fetchMore, refetch, result, subscribeToMore]);
1021
+ }
1022
+ function validateOptions(options) {
1023
+ var query = options.query, fetchPolicy = options.fetchPolicy, returnPartialData = options.returnPartialData;
1024
+ parser.verifyDocumentType(query, parser.DocumentType.Query);
1025
+ validateFetchPolicy(fetchPolicy);
1026
+ validatePartialDataReturn(fetchPolicy, returnPartialData);
1027
+ }
1028
+ function validateFetchPolicy(fetchPolicy) {
1029
+ if (fetchPolicy === void 0) { fetchPolicy = 'cache-first'; }
1030
+ var supportedFetchPolicies = [
1031
+ 'cache-first',
1032
+ 'network-only',
1033
+ 'no-cache',
1034
+ 'cache-and-network',
1035
+ ];
1036
+ globals.invariant(supportedFetchPolicies.includes(fetchPolicy), 54, fetchPolicy);
1037
+ }
1038
+ function validatePartialDataReturn(fetchPolicy, returnPartialData) {
1039
+ if (fetchPolicy === 'no-cache' && returnPartialData) {
1040
+ globalThis.__DEV__ !== false && globals.invariant.warn(55);
1041
+ }
1042
+ }
1043
+ function toApolloError(result) {
1044
+ return utilities.isNonEmptyArray(result.errors)
1045
+ ? new core.ApolloError({ graphQLErrors: result.errors })
1046
+ : result.error;
1047
+ }
1048
+ function useWatchQueryOptions(_a) {
1049
+ var client = _a.client, query = _a.query, options = _a.options;
1050
+ return useDeepMemo(function () {
1051
+ var _a;
1052
+ var fetchPolicy = options.fetchPolicy ||
1053
+ ((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
1054
+ 'cache-first';
1055
+ var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
1056
+ if (globalThis.__DEV__ !== false) {
1057
+ validateOptions(watchQueryOptions);
1058
+ }
1059
+ if (options.skip) {
1060
+ watchQueryOptions.fetchPolicy = 'standby';
1061
+ }
1062
+ return watchQueryOptions;
1063
+ }, [client, options, query]);
1064
+ }
1037
1065
 
1038
1066
  function useBackgroundQuery(query, options) {
1039
1067
  if (options === void 0) { options = Object.create(null); }
1040
- var suspenseCache = useSuspenseCache(options.suspenseCache);
1041
1068
  var client = useApolloClient(options.client);
1069
+ var suspenseCache = getSuspenseCache(client);
1042
1070
  var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
1043
1071
  var variables = watchQueryOptions.variables;
1044
1072
  var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
1045
- var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
1073
+ var cacheKey = tslib.__spreadArray([
1074
+ query,
1075
+ cache.canonicalStringify(variables)
1076
+ ], [].concat(queryKey), true);
1046
1077
  var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
1047
1078
  return client.watchQuery(watchQueryOptions);
1048
1079
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useBackgroundQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBackgroundQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,21 @@
1
+ import { __spreadArray } from "tslib";
1
2
  import * as React from 'react';
2
3
  import { useApolloClient } from './useApolloClient.js';
3
4
  import { QUERY_REFERENCE_SYMBOL, } from '../cache/QueryReference.js';
4
- import { useSuspenseCache } from './useSuspenseCache.js';
5
+ import { getSuspenseCache } from '../cache/index.js';
5
6
  import { useWatchQueryOptions } from './useSuspenseQuery.js';
6
7
  import { canonicalStringify } from '../../cache/index.js';
7
8
  export function useBackgroundQuery(query, options) {
8
9
  if (options === void 0) { options = Object.create(null); }
9
- var suspenseCache = useSuspenseCache(options.suspenseCache);
10
10
  var client = useApolloClient(options.client);
11
+ var suspenseCache = getSuspenseCache(client);
11
12
  var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
12
13
  var variables = watchQueryOptions.variables;
13
14
  var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
14
- var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
15
+ var cacheKey = __spreadArray([
16
+ query,
17
+ canonicalStringify(variables)
18
+ ], [].concat(queryKey), true);
15
19
  var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
16
20
  return client.watchQuery(watchQueryOptions);
17
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useBackgroundQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,sBAAsB,GAEvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqG1D,MAAM,UAAU,kBAAkB,CAIhC,KAA0D,EAC1D,OAEC;IAFD,wBAAA,EAAA,UAAgE,MAAM,CAAC,MAAM,CAC3E,IAAI,CACL;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,IAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAM,iBAAiB,GAAG,oBAAoB,CAAC,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;IACnE,IAAA,SAAS,GAAK,iBAAiB,UAAtB,CAAuB;IAChC,IAAA,KAAkB,OAAO,SAAZ,EAAb,QAAQ,mBAAG,EAAE,KAAA,CAAa;IAElC,IAAM,QAAQ,GACZ,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAC9C,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEnB,IAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE;QACnD,OAAA,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAApC,CAAoC,CACrC,CAAC;IAEI,IAAA,KAAkC,KAAK,CAAC,QAAQ,CACpD,cAAM,OAAA,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAA3C,CAA2C,CAClD,EAFM,YAAY,QAAA,EAAE,eAAe,QAEnC,CAAC;IAEF,IAAI,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE;QAChD,IAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,KAAK,CAAC,SAAS,CAAC,cAAM,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErD,IAAM,SAAS,GAAyC,KAAK,CAAC,WAAW,CACvE,UAAC,OAAO;QACN,IAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE5C,eAAe,CAAC,UAAC,YAAY;YAC3B,OAAA,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QAAzD,CAAyD,CAC1D,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAM,OAAO,GAAuC,KAAK,CAAC,WAAW,CACnE,UAAC,SAAS;QACR,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,eAAe,CAAC,UAAC,YAAY;YAC3B,OAAA,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QAAzD,CAAyD,CAC1D,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IAErC,OAAO,KAAK,CAAC,OAAO,CAAC;;QACnB,OAAO;sBACH,GAAC,sBAAsB,IAAG,QAAQ;YACpC;gBACE,SAAS,WAAA;gBACT,OAAO,SAAA;aACR;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC","sourcesContent":["import * as React from 'react';\nimport type {\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n} from '../../core/index.js';\nimport { useApolloClient } from './useApolloClient.js';\nimport {\n QUERY_REFERENCE_SYMBOL,\n type QueryReference,\n} from '../cache/QueryReference.js';\nimport type { BackgroundQueryHookOptions, NoInfer } from '../types/types.js';\nimport { __use } from './internal/index.js';\nimport { useSuspenseCache } from './useSuspenseCache.js';\nimport { useWatchQueryOptions } from './useSuspenseQuery.js';\nimport type { FetchMoreFunction, RefetchFunction } from './useSuspenseQuery.js';\nimport { canonicalStringify } from '../../cache/index.js';\nimport type { DeepPartial } from '../../utilities/index.js';\n\nexport type UseBackgroundQueryResult<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n> = [\n QueryReference<TData>,\n {\n fetchMore: FetchMoreFunction<TData, TVariables>;\n refetch: RefetchFunction<TData, TVariables>;\n }\n];\n\ntype BackgroundQueryHookOptionsNoInfer<\n TData,\n TVariables extends OperationVariables\n> = BackgroundQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>;\n\nexport function useBackgroundQuery<\n TData,\n TVariables extends OperationVariables,\n TOptions extends Omit<BackgroundQueryHookOptions<TData>, 'variables'>\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & TOptions\n): UseBackgroundQueryResult<\n TOptions['errorPolicy'] extends 'ignore' | 'all'\n ? TOptions['returnPartialData'] extends true\n ? DeepPartial<TData> | undefined\n : TData | undefined\n : TOptions['returnPartialData'] extends true\n ? TOptions['skip'] extends boolean\n ? DeepPartial<TData> | undefined\n : DeepPartial<TData>\n : TOptions['skip'] extends boolean\n ? TData | undefined\n : TData,\n TVariables\n>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n returnPartialData: true;\n errorPolicy: 'ignore' | 'all';\n }\n): UseBackgroundQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n errorPolicy: 'ignore' | 'all';\n }\n): UseBackgroundQueryResult<TData | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n skip: boolean;\n returnPartialData: true;\n }\n): UseBackgroundQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n returnPartialData: true;\n }\n): UseBackgroundQueryResult<DeepPartial<TData>, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n skip: boolean;\n }\n): UseBackgroundQueryResult<TData | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: BackgroundQueryHookOptionsNoInfer<TData, TVariables>\n): UseBackgroundQueryResult<TData, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> = Object.create(\n null\n )\n): UseBackgroundQueryResult<TData> {\n const suspenseCache = useSuspenseCache(options.suspenseCache);\n const client = useApolloClient(options.client);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey = (\n [client, query, canonicalStringify(variables)] as any[]\n ).concat(queryKey);\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n const [promiseCache, setPromiseCache] = React.useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n const promise = queryRef.applyOptions(watchQueryOptions);\n promiseCache.set(queryRef.key, promise);\n }\n\n React.useEffect(() => queryRef.retain(), [queryRef]);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n queryRef.promiseCache = promiseCache;\n\n return React.useMemo(() => {\n return [\n { [QUERY_REFERENCE_SYMBOL]: queryRef },\n {\n fetchMore,\n refetch,\n },\n ];\n }, [queryRef, fetchMore, refetch]);\n}\n"]}
1
+ {"version":3,"file":"useBackgroundQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport type {\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n} from '../../core/index.js';\nimport { useApolloClient } from './useApolloClient.js';\nimport {\n QUERY_REFERENCE_SYMBOL,\n type QueryReference,\n} from '../cache/QueryReference.js';\nimport type { BackgroundQueryHookOptions, NoInfer } from '../types/types.js';\nimport { __use } from './internal/index.js';\nimport { getSuspenseCache } from '../cache/index.js';\nimport { useWatchQueryOptions } from './useSuspenseQuery.js';\nimport type { FetchMoreFunction, RefetchFunction } from './useSuspenseQuery.js';\nimport { canonicalStringify } from '../../cache/index.js';\nimport type { DeepPartial } from '../../utilities/index.js';\nimport type { CacheKey } from '../cache/types.js';\n\nexport type UseBackgroundQueryResult<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n> = [\n QueryReference<TData>,\n {\n fetchMore: FetchMoreFunction<TData, TVariables>;\n refetch: RefetchFunction<TData, TVariables>;\n }\n];\n\ntype BackgroundQueryHookOptionsNoInfer<\n TData,\n TVariables extends OperationVariables\n> = BackgroundQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>;\n\nexport function useBackgroundQuery<\n TData,\n TVariables extends OperationVariables,\n TOptions extends Omit<BackgroundQueryHookOptions<TData>, 'variables'>\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & TOptions\n): UseBackgroundQueryResult<\n TOptions['errorPolicy'] extends 'ignore' | 'all'\n ? TOptions['returnPartialData'] extends true\n ? DeepPartial<TData> | undefined\n : TData | undefined\n : TOptions['returnPartialData'] extends true\n ? TOptions['skip'] extends boolean\n ? DeepPartial<TData> | undefined\n : DeepPartial<TData>\n : TOptions['skip'] extends boolean\n ? TData | undefined\n : TData,\n TVariables\n>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n returnPartialData: true;\n errorPolicy: 'ignore' | 'all';\n }\n): UseBackgroundQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n errorPolicy: 'ignore' | 'all';\n }\n): UseBackgroundQueryResult<TData | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n skip: boolean;\n returnPartialData: true;\n }\n): UseBackgroundQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n returnPartialData: true;\n }\n): UseBackgroundQueryResult<DeepPartial<TData>, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> & {\n skip: boolean;\n }\n): UseBackgroundQueryResult<TData | undefined, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: BackgroundQueryHookOptionsNoInfer<TData, TVariables>\n): UseBackgroundQueryResult<TData, TVariables>;\n\nexport function useBackgroundQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: BackgroundQueryHookOptionsNoInfer<TData, TVariables> = Object.create(\n null\n )\n): UseBackgroundQueryResult<TData> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n const [promiseCache, setPromiseCache] = React.useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n const promise = queryRef.applyOptions(watchQueryOptions);\n promiseCache.set(queryRef.key, promise);\n }\n\n React.useEffect(() => queryRef.retain(), [queryRef]);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n queryRef.promiseCache = promiseCache;\n\n return React.useMemo(() => {\n return [\n { [QUERY_REFERENCE_SYMBOL]: queryRef },\n {\n fetchMore,\n refetch,\n },\n ];\n }, [queryRef, fetchMore, refetch]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useSuspenseQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSuspenseQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { __assign } from "tslib";
1
+ import { __assign, __spreadArray } from "tslib";
2
2
  import { invariant } from '../../utilities/globals/index.js';
3
3
  import * as React from 'react';
4
4
  import { ApolloError, NetworkStatus } from '../../core/index.js';
@@ -6,16 +6,19 @@ import { isNonEmptyArray } from '../../utilities/index.js';
6
6
  import { useApolloClient } from './useApolloClient.js';
7
7
  import { DocumentType, verifyDocumentType } from '../parser/index.js';
8
8
  import { useDeepMemo, __use } from './internal/index.js';
9
- import { useSuspenseCache } from './useSuspenseCache.js';
9
+ import { getSuspenseCache } from '../cache/index.js';
10
10
  import { canonicalStringify } from '../../cache/index.js';
11
11
  export function useSuspenseQuery(query, options) {
12
12
  if (options === void 0) { options = Object.create(null); }
13
13
  var client = useApolloClient(options.client);
14
- var suspenseCache = useSuspenseCache(options.suspenseCache);
14
+ var suspenseCache = getSuspenseCache(client);
15
15
  var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
16
16
  var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
17
17
  var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
18
- var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
18
+ var cacheKey = __spreadArray([
19
+ query,
20
+ canonicalStringify(variables)
21
+ ], [].concat(queryKey), true);
19
22
  var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
20
23
  return client.watchQuery(watchQueryOptions);
21
24
  });
@@ -92,11 +95,11 @@ function validateFetchPolicy(fetchPolicy) {
92
95
  'no-cache',
93
96
  'cache-and-network',
94
97
  ];
95
- invariant(supportedFetchPolicies.includes(fetchPolicy), 55, fetchPolicy);
98
+ invariant(supportedFetchPolicies.includes(fetchPolicy), 54, fetchPolicy);
96
99
  }
97
100
  function validatePartialDataReturn(fetchPolicy, returnPartialData) {
98
101
  if (fetchPolicy === 'no-cache' && returnPartialData) {
99
- globalThis.__DEV__ !== false && invariant.warn(56);
102
+ globalThis.__DEV__ !== false && invariant.warn(55);
100
103
  }
101
104
  }
102
105
  export function toApolloError(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSuspenseQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../utilities/globals/index.js';\nimport * as React from 'react';\nimport type {\n ApolloClient,\n ApolloQueryResult,\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n WatchQueryOptions,\n WatchQueryFetchPolicy,\n FetchMoreQueryOptions,\n} from '../../core/index.js';\nimport { ApolloError, NetworkStatus } from '../../core/index.js';\nimport type { DeepPartial } from '../../utilities/index.js';\nimport { isNonEmptyArray } from '../../utilities/index.js';\nimport { useApolloClient } from './useApolloClient.js';\nimport { DocumentType, verifyDocumentType } from '../parser/index.js';\nimport type {\n SuspenseQueryHookOptions,\n ObservableQueryFields,\n NoInfer,\n} from '../types/types.js';\nimport { useDeepMemo, __use } from './internal/index.js';\nimport { useSuspenseCache } from './useSuspenseCache.js';\nimport { canonicalStringify } from '../../cache/index.js';\n\nexport interface UseSuspenseQueryResult<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n> {\n client: ApolloClient<any>;\n data: TData;\n error: ApolloError | undefined;\n fetchMore: FetchMoreFunction<TData, TVariables>;\n networkStatus: NetworkStatus;\n refetch: RefetchFunction<TData, TVariables>;\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n}\n\nexport type FetchMoreFunction<TData, TVariables extends OperationVariables> = (\n fetchMoreOptions: FetchMoreQueryOptions<TVariables, TData> & {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult: TData;\n variables: TVariables;\n }\n ) => TData;\n }\n) => Promise<ApolloQueryResult<TData>>;\n\nexport type RefetchFunction<\n TData,\n TVariables extends OperationVariables\n> = ObservableQueryFields<TData, TVariables>['refetch'];\n\nexport type SubscribeToMoreFunction<\n TData,\n TVariables extends OperationVariables\n> = ObservableQueryFields<TData, TVariables>['subscribeToMore'];\n\nexport function useSuspenseQuery<\n TData,\n TVariables extends OperationVariables,\n TOptions extends Omit<SuspenseQueryHookOptions<TData>, 'variables'>\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> &\n TOptions\n): UseSuspenseQueryResult<\n TOptions['errorPolicy'] extends 'ignore' | 'all'\n ? TOptions['returnPartialData'] extends true\n ? DeepPartial<TData> | undefined\n : TData | undefined\n : TOptions['returnPartialData'] extends true\n ? TOptions['skip'] extends boolean\n ? DeepPartial<TData> | undefined\n : DeepPartial<TData>\n : TOptions['skip'] extends boolean\n ? TData | undefined\n : TData,\n TVariables\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy: 'ignore' | 'all';\n }\n): UseSuspenseQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy: 'ignore' | 'all';\n }\n): UseSuspenseQueryResult<TData | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n skip: boolean;\n returnPartialData: true;\n }\n): UseSuspenseQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n): UseSuspenseQueryResult<DeepPartial<TData>, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n skip: boolean;\n }\n): UseSuspenseQueryResult<TData | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>\n): UseSuspenseQueryResult<TData, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<\n NoInfer<TData>,\n NoInfer<TVariables>\n > = Object.create(null)\n): UseSuspenseQueryResult<TData | undefined, TVariables> {\n const client = useApolloClient(options.client);\n const suspenseCache = useSuspenseCache(options.suspenseCache);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { fetchPolicy, variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey = (\n [client, query, canonicalStringify(variables)] as any[]\n ).concat(queryKey);\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n const [promiseCache, setPromiseCache] = React.useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n let promise = promiseCache.get(queryRef.key);\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n promise = queryRef.applyOptions(watchQueryOptions);\n promiseCache.set(queryRef.key, promise);\n }\n\n if (!promise) {\n promise = queryRef.promise;\n promiseCache.set(queryRef.key, promise);\n }\n\n React.useEffect(() => {\n const dispose = queryRef.retain();\n\n const removeListener = queryRef.listen((promise) => {\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n });\n\n return () => {\n removeListener();\n dispose();\n };\n }, [queryRef]);\n\n const skipResult = React.useMemo(() => {\n const error = toApolloError(queryRef.result);\n\n return {\n loading: false,\n data: queryRef.result.data,\n networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,\n error,\n };\n }, [queryRef.result]);\n\n const result = fetchPolicy === 'standby' ? skipResult : __use(promise);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n React.useCallback(\n (options) => queryRef.observable.subscribeToMore(options),\n [queryRef]\n );\n\n return React.useMemo(() => {\n return {\n client,\n data: result.data,\n error: toApolloError(result),\n networkStatus: result.networkStatus,\n fetchMore,\n refetch,\n subscribeToMore,\n };\n }, [client, fetchMore, refetch, result, subscribeToMore]);\n}\n\nfunction validateOptions(options: WatchQueryOptions) {\n const { query, fetchPolicy, returnPartialData } = options;\n\n verifyDocumentType(query, DocumentType.Query);\n validateFetchPolicy(fetchPolicy);\n validatePartialDataReturn(fetchPolicy, returnPartialData);\n}\n\nfunction validateFetchPolicy(\n fetchPolicy: WatchQueryFetchPolicy = 'cache-first'\n) {\n const supportedFetchPolicies: WatchQueryFetchPolicy[] = [\n 'cache-first',\n 'network-only',\n 'no-cache',\n 'cache-and-network',\n ];\n\n invariant(\n supportedFetchPolicies.includes(fetchPolicy),\n `The fetch policy \\`%s\\` is not supported with suspense.`,\n fetchPolicy\n );\n}\n\nfunction validatePartialDataReturn(\n fetchPolicy: WatchQueryFetchPolicy | undefined,\n returnPartialData: boolean | undefined\n) {\n if (fetchPolicy === 'no-cache' && returnPartialData) {\n invariant.warn(\n 'Using `returnPartialData` with a `no-cache` fetch policy has no effect. To read partial data from the cache, consider using an alternate fetch policy.'\n );\n }\n}\n\nexport function toApolloError(result: ApolloQueryResult<any>) {\n return isNonEmptyArray(result.errors)\n ? new ApolloError({ graphQLErrors: result.errors })\n : result.error;\n}\n\ninterface UseWatchQueryOptionsHookOptions<\n TData,\n TVariables extends OperationVariables\n> {\n client: ApolloClient<unknown>;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: SuspenseQueryHookOptions<TData, TVariables>;\n}\n\nexport function useWatchQueryOptions<\n TData,\n TVariables extends OperationVariables\n>({\n client,\n query,\n options,\n}: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<\n TVariables,\n TData\n> {\n return useDeepMemo<WatchQueryOptions<TVariables, TData>>(() => {\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n 'cache-first';\n\n const watchQueryOptions = {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateOptions(watchQueryOptions);\n }\n\n // Assign the updated fetch policy after our validation since `standby` is\n // not a supported fetch policy on its own without the use of `skip`.\n if (options.skip) {\n watchQueryOptions.fetchPolicy = 'standby';\n }\n\n return watchQueryOptions;\n }, [client, options, query]);\n}\n"]}
1
+ {"version":3,"file":"useSuspenseQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../utilities/globals/index.js';\nimport * as React from 'react';\nimport type {\n ApolloClient,\n ApolloQueryResult,\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n WatchQueryOptions,\n WatchQueryFetchPolicy,\n FetchMoreQueryOptions,\n} from '../../core/index.js';\nimport { ApolloError, NetworkStatus } from '../../core/index.js';\nimport type { DeepPartial } from '../../utilities/index.js';\nimport { isNonEmptyArray } from '../../utilities/index.js';\nimport { useApolloClient } from './useApolloClient.js';\nimport { DocumentType, verifyDocumentType } from '../parser/index.js';\nimport type {\n SuspenseQueryHookOptions,\n ObservableQueryFields,\n NoInfer,\n} from '../types/types.js';\nimport { useDeepMemo, __use } from './internal/index.js';\nimport { getSuspenseCache } from '../cache/index.js';\nimport { canonicalStringify } from '../../cache/index.js';\nimport type { CacheKey } from '../cache/types.js';\n\nexport interface UseSuspenseQueryResult<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n> {\n client: ApolloClient<any>;\n data: TData;\n error: ApolloError | undefined;\n fetchMore: FetchMoreFunction<TData, TVariables>;\n networkStatus: NetworkStatus;\n refetch: RefetchFunction<TData, TVariables>;\n subscribeToMore: SubscribeToMoreFunction<TData, TVariables>;\n}\n\nexport type FetchMoreFunction<TData, TVariables extends OperationVariables> = (\n fetchMoreOptions: FetchMoreQueryOptions<TVariables, TData> & {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult: TData;\n variables: TVariables;\n }\n ) => TData;\n }\n) => Promise<ApolloQueryResult<TData>>;\n\nexport type RefetchFunction<\n TData,\n TVariables extends OperationVariables\n> = ObservableQueryFields<TData, TVariables>['refetch'];\n\nexport type SubscribeToMoreFunction<\n TData,\n TVariables extends OperationVariables\n> = ObservableQueryFields<TData, TVariables>['subscribeToMore'];\n\nexport function useSuspenseQuery<\n TData,\n TVariables extends OperationVariables,\n TOptions extends Omit<SuspenseQueryHookOptions<TData>, 'variables'>\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> &\n TOptions\n): UseSuspenseQueryResult<\n TOptions['errorPolicy'] extends 'ignore' | 'all'\n ? TOptions['returnPartialData'] extends true\n ? DeepPartial<TData> | undefined\n : TData | undefined\n : TOptions['returnPartialData'] extends true\n ? TOptions['skip'] extends boolean\n ? DeepPartial<TData> | undefined\n : DeepPartial<TData>\n : TOptions['skip'] extends boolean\n ? TData | undefined\n : TData,\n TVariables\n>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n errorPolicy: 'ignore' | 'all';\n }\n): UseSuspenseQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n errorPolicy: 'ignore' | 'all';\n }\n): UseSuspenseQueryResult<TData | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n skip: boolean;\n returnPartialData: true;\n }\n): UseSuspenseQueryResult<DeepPartial<TData> | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n returnPartialData: true;\n }\n): UseSuspenseQueryResult<DeepPartial<TData>, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {\n skip: boolean;\n }\n): UseSuspenseQueryResult<TData | undefined, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>\n): UseSuspenseQueryResult<TData, TVariables>;\n\nexport function useSuspenseQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: SuspenseQueryHookOptions<\n NoInfer<TData>,\n NoInfer<TVariables>\n > = Object.create(null)\n): UseSuspenseQueryResult<TData | undefined, TVariables> {\n const client = useApolloClient(options.client);\n const suspenseCache = getSuspenseCache(client);\n const watchQueryOptions = useWatchQueryOptions({ client, query, options });\n const { fetchPolicy, variables } = watchQueryOptions;\n const { queryKey = [] } = options;\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n\n const queryRef = suspenseCache.getQueryRef(cacheKey, () =>\n client.watchQuery(watchQueryOptions)\n );\n\n const [promiseCache, setPromiseCache] = React.useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n let promise = promiseCache.get(queryRef.key);\n\n if (queryRef.didChangeOptions(watchQueryOptions)) {\n promise = queryRef.applyOptions(watchQueryOptions);\n promiseCache.set(queryRef.key, promise);\n }\n\n if (!promise) {\n promise = queryRef.promise;\n promiseCache.set(queryRef.key, promise);\n }\n\n React.useEffect(() => {\n const dispose = queryRef.retain();\n\n const removeListener = queryRef.listen((promise) => {\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n });\n\n return () => {\n removeListener();\n dispose();\n };\n }, [queryRef]);\n\n const skipResult = React.useMemo(() => {\n const error = toApolloError(queryRef.result);\n\n return {\n loading: false,\n data: queryRef.result.data,\n networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,\n error,\n };\n }, [queryRef.result]);\n\n const result = fetchPolicy === 'standby' ? skipResult : __use(promise);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = React.useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = React.useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, queryRef.promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n React.useCallback(\n (options) => queryRef.observable.subscribeToMore(options),\n [queryRef]\n );\n\n return React.useMemo(() => {\n return {\n client,\n data: result.data,\n error: toApolloError(result),\n networkStatus: result.networkStatus,\n fetchMore,\n refetch,\n subscribeToMore,\n };\n }, [client, fetchMore, refetch, result, subscribeToMore]);\n}\n\nfunction validateOptions(options: WatchQueryOptions) {\n const { query, fetchPolicy, returnPartialData } = options;\n\n verifyDocumentType(query, DocumentType.Query);\n validateFetchPolicy(fetchPolicy);\n validatePartialDataReturn(fetchPolicy, returnPartialData);\n}\n\nfunction validateFetchPolicy(\n fetchPolicy: WatchQueryFetchPolicy = 'cache-first'\n) {\n const supportedFetchPolicies: WatchQueryFetchPolicy[] = [\n 'cache-first',\n 'network-only',\n 'no-cache',\n 'cache-and-network',\n ];\n\n invariant(\n supportedFetchPolicies.includes(fetchPolicy),\n `The fetch policy \\`%s\\` is not supported with suspense.`,\n fetchPolicy\n );\n}\n\nfunction validatePartialDataReturn(\n fetchPolicy: WatchQueryFetchPolicy | undefined,\n returnPartialData: boolean | undefined\n) {\n if (fetchPolicy === 'no-cache' && returnPartialData) {\n invariant.warn(\n 'Using `returnPartialData` with a `no-cache` fetch policy has no effect. To read partial data from the cache, consider using an alternate fetch policy.'\n );\n }\n}\n\nexport function toApolloError(result: ApolloQueryResult<any>) {\n return isNonEmptyArray(result.errors)\n ? new ApolloError({ graphQLErrors: result.errors })\n : result.error;\n}\n\ninterface UseWatchQueryOptionsHookOptions<\n TData,\n TVariables extends OperationVariables\n> {\n client: ApolloClient<unknown>;\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: SuspenseQueryHookOptions<TData, TVariables>;\n}\n\nexport function useWatchQueryOptions<\n TData,\n TVariables extends OperationVariables\n>({\n client,\n query,\n options,\n}: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<\n TVariables,\n TData\n> {\n return useDeepMemo<WatchQueryOptions<TVariables, TData>>(() => {\n const fetchPolicy =\n options.fetchPolicy ||\n client.defaultOptions.watchQuery?.fetchPolicy ||\n 'cache-first';\n\n const watchQueryOptions = {\n ...options,\n fetchPolicy,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n };\n\n if (__DEV__) {\n validateOptions(watchQueryOptions);\n }\n\n // Assign the updated fetch policy after our validation since `standby` is\n // not a supported fetch policy on its own without the use of `skip`.\n if (options.skip) {\n watchQueryOptions.fetchPolicy = 'standby';\n }\n\n return watchQueryOptions;\n }, [client, options, query]);\n}\n"]}
@@ -10,7 +10,7 @@ export var useSyncExternalStore = realHook || (function (subscribe, getSnapshot,
10
10
  !didWarnUncachedGetSnapshot &&
11
11
  value !== getSnapshot()) {
12
12
  didWarnUncachedGetSnapshot = true;
13
- globalThis.__DEV__ !== false && invariant.error(57);
13
+ globalThis.__DEV__ !== false && invariant.error(56);
14
14
  }
15
15
  var _a = React.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];
16
16
  if (canUseLayoutEffect) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,cAAc,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,cAAc,kBAAkB,CAAC","sourcesContent":["import '../utilities/globals/index.js';\n\nexport {\n ApolloProvider,\n ApolloConsumer,\n getApolloContext,\n resetApolloContext,\n ApolloContextValue\n} from './context/index.js';\n\nexport * from './hooks/index.js';\nexport { SuspenseCache } from './cache/index.js';\n\nexport {\n DocumentType,\n IDocumentDefinition,\n operationName,\n parser\n} from './parser/index.js';\n\nexport * from './types/types.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,cAAc,kBAAkB,CAAC","sourcesContent":["import '../utilities/globals/index.js';\n\nexport {\n ApolloProvider,\n ApolloConsumer,\n getApolloContext,\n resetApolloContext,\n ApolloContextValue\n} from './context/index.js';\n\nexport * from './hooks/index.js';\n// TODO: remove export with release 3.8\nexport { SuspenseCache } from './cache/index.js';\n\nexport {\n DocumentType,\n IDocumentDefinition,\n operationName,\n parser\n} from './parser/index.js';\n\nexport * from './types/types.js';\n"]}
@@ -26,7 +26,7 @@ export function parser(document) {
26
26
  if (cached)
27
27
  return cached;
28
28
  var variables, type, name;
29
- invariant(!!document && !!document.kind, 58, document);
29
+ invariant(!!document && !!document.kind, 57, document);
30
30
  var fragments = [];
31
31
  var queries = [];
32
32
  var mutations = [];
@@ -52,10 +52,10 @@ export function parser(document) {
52
52
  }
53
53
  }
54
54
  invariant(!fragments.length ||
55
- (queries.length || mutations.length || subscriptions.length), 59);
55
+ (queries.length || mutations.length || subscriptions.length), 58);
56
56
  invariant(
57
57
  queries.length + mutations.length + subscriptions.length <= 1,
58
- 60,
58
+ 59,
59
59
  document,
60
60
  queries.length,
61
61
  subscriptions.length,
@@ -69,7 +69,7 @@ export function parser(document) {
69
69
  : mutations.length
70
70
  ? mutations
71
71
  : subscriptions;
72
- invariant(definitions.length === 1, 61, document, definitions.length);
72
+ invariant(definitions.length === 1, 60, document, definitions.length);
73
73
  var definition = definitions[0];
74
74
  variables = definition.variableDefinitions || [];
75
75
  if (definition.name && definition.name.kind === 'Name') {
@@ -88,7 +88,7 @@ export function verifyDocumentType(document, type) {
88
88
  var usedOperationName = operationName(operation.type);
89
89
  invariant(
90
90
  operation.type === type,
91
- 62,
91
+ 61,
92
92
  requiredOperationName,
93
93
  requiredOperationName,
94
94
  usedOperationName