@apollo/client 3.8.0-beta.2 → 3.8.0-beta.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.
- package/apollo-client.cjs +95 -31
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs.map +1 -1
- package/cache/core/cache.d.ts +1 -1
- package/cache/core/cache.d.ts.map +1 -1
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +3 -3
- package/cache/core/types/Cache.d.ts.map +1 -1
- package/cache/core/types/Cache.js +1 -0
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/core/types/common.d.ts +17 -6
- package/cache/core/types/common.d.ts.map +1 -1
- package/cache/core/types/common.js.map +1 -1
- package/cache/inmemory/entityStore.d.ts +1 -1
- package/cache/inmemory/entityStore.d.ts.map +1 -1
- package/cache/inmemory/entityStore.js.map +1 -1
- package/cache/inmemory/inMemoryCache.d.ts +1 -1
- package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/types.d.ts +2 -2
- package/cache/inmemory/types.d.ts.map +1 -1
- package/cache/inmemory/types.js.map +1 -1
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +5 -3
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +5 -4
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +5 -4
- package/dev/dev.cjs +1 -1
- package/dev/dev.cjs.map +1 -1
- package/dev/dev.cjs.native.js +1 -1
- package/link/batch-http/batch-http.cjs +5 -4
- package/link/batch-http/batch-http.cjs.map +1 -1
- package/link/batch-http/batch-http.cjs.native.js +5 -4
- package/link/batch-http/batchHttpLink.d.ts +1 -1
- package/link/batch-http/batchHttpLink.d.ts.map +1 -1
- package/link/batch-http/batchHttpLink.js +1 -1
- package/link/batch-http/batchHttpLink.js.map +1 -1
- package/link/http/createHttpLink.js +1 -1
- package/link/http/createHttpLink.js.map +1 -1
- package/link/http/http.cjs +2 -3
- package/link/http/http.cjs.map +1 -1
- package/link/http/http.cjs.native.js +2 -3
- package/link/http/selectHttpOptionsAndBody.d.ts +1 -1
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
- package/link/http/selectHttpOptionsAndBody.js +1 -1
- package/link/http/selectHttpOptionsAndBody.js.map +1 -1
- package/link/persisted-queries/index.d.ts +10 -4
- package/link/persisted-queries/index.d.ts.map +1 -1
- package/link/persisted-queries/index.js +26 -29
- package/link/persisted-queries/index.js.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs +25 -29
- package/link/persisted-queries/persisted-queries.cjs.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs.native.js +25 -29
- package/link/subscriptions/index.js +1 -1
- package/link/subscriptions/index.js.map +1 -1
- package/link/subscriptions/subscriptions.cjs +2 -3
- package/link/subscriptions/subscriptions.cjs.map +1 -1
- package/link/subscriptions/subscriptions.cjs.native.js +2 -3
- package/link/utils/filterOperationVariables.d.ts +2 -2
- package/link/utils/filterOperationVariables.d.ts.map +1 -1
- package/link/utils/filterOperationVariables.js +5 -4
- package/link/utils/filterOperationVariables.js.map +1 -1
- package/link/utils/utils.cjs +4 -3
- package/link/utils/utils.cjs.map +1 -1
- package/link/utils/utils.cjs.native.js +4 -3
- package/package.json +1 -1
- package/react/cache/QueryReference.d.ts +3 -1
- package/react/cache/QueryReference.d.ts.map +1 -1
- package/react/cache/QueryReference.js +12 -0
- package/react/cache/QueryReference.js.map +1 -1
- package/react/cache/SuspenseCache.d.ts +0 -1
- package/react/cache/SuspenseCache.d.ts.map +1 -1
- package/react/cache/SuspenseCache.js +10 -10
- package/react/cache/SuspenseCache.js.map +1 -1
- package/react/hooks/hooks.cjs +51 -12
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +51 -12
- package/react/hooks/useBackgroundQuery.d.ts +19 -6
- package/react/hooks/useBackgroundQuery.d.ts.map +1 -1
- package/react/hooks/useBackgroundQuery.js +20 -3
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useSuspenseQuery.d.ts +12 -5
- package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
- package/react/hooks/useSuspenseQuery.js +33 -10
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/react.cjs +22 -10
- package/react/react.cjs.map +1 -1
- package/react/react.cjs.native.js +22 -10
- package/react/types/types.d.ts +2 -1
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs +2 -3
- package/testing/core/core.cjs.map +1 -1
- package/testing/core/core.cjs.native.js +2 -3
- package/testing/core/mocking/mockLink.d.ts.map +1 -1
- package/testing/core/mocking/mockLink.js +1 -2
- package/testing/core/mocking/mockLink.js.map +1 -1
- package/testing/matchers/index.js +2 -0
- package/testing/matchers/index.js.map +1 -1
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +12 -0
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts.map +1 -0
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +18 -0
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -0
- package/testing/matchers/toMatchDocument.d.ts.map +1 -1
- package/testing/matchers/toMatchDocument.js +1 -2
- package/testing/matchers/toMatchDocument.js.map +1 -1
- package/utilities/globals/globals.cjs +1 -1
- package/utilities/globals/globals.cjs.map +1 -1
- package/utilities/globals/globals.cjs.native.js +1 -1
- package/utilities/graphql/print.d.ts +3 -0
- package/utilities/graphql/print.d.ts.map +1 -0
- package/utilities/graphql/print.js +13 -0
- package/utilities/graphql/print.js.map +1 -0
- package/utilities/index.d.ts +1 -0
- package/utilities/index.d.ts.map +1 -1
- package/utilities/index.js +1 -0
- package/utilities/index.js.map +1 -1
- package/utilities/policies/pagination.d.ts.map +1 -1
- package/utilities/policies/pagination.js +3 -0
- package/utilities/policies/pagination.js.map +1 -1
- package/utilities/utilities.cjs +15 -0
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +15 -0
- package/version.js +1 -1
|
@@ -759,15 +759,20 @@ function useSuspenseQuery(query, options) {
|
|
|
759
759
|
if (options === void 0) { options = Object.create(null); }
|
|
760
760
|
var client = useApolloClient(options.client);
|
|
761
761
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
762
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
763
|
-
var variables = watchQueryOptions.variables;
|
|
762
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
763
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
764
764
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
765
765
|
var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
|
|
766
766
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
767
767
|
return client.watchQuery(watchQueryOptions);
|
|
768
768
|
});
|
|
769
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
769
770
|
var _b = React.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
770
771
|
var promise = promiseCache.get(queryRef.key);
|
|
772
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
773
|
+
promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
774
|
+
promiseCache.set(queryRef.key, promise);
|
|
775
|
+
}
|
|
771
776
|
if (!promise) {
|
|
772
777
|
promise = queryRef.promise;
|
|
773
778
|
promiseCache.set(queryRef.key, promise);
|
|
@@ -780,7 +785,16 @@ function useSuspenseQuery(query, options) {
|
|
|
780
785
|
});
|
|
781
786
|
});
|
|
782
787
|
}, [queryRef]);
|
|
783
|
-
var
|
|
788
|
+
var skipResult = React.useMemo(function () {
|
|
789
|
+
var error = toApolloError(queryRef.result);
|
|
790
|
+
return {
|
|
791
|
+
loading: false,
|
|
792
|
+
data: queryRef.result.data,
|
|
793
|
+
networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
|
|
794
|
+
error: error,
|
|
795
|
+
};
|
|
796
|
+
}, [queryRef.result]);
|
|
797
|
+
var result = watchQueryOptions.fetchPolicy === 'standby' ? skipResult : __use(promise);
|
|
784
798
|
var fetchMore = React.useCallback(function (options) {
|
|
785
799
|
var promise = queryRef.fetchMore(options);
|
|
786
800
|
setPromiseCache(function (previousPromiseCache) {
|
|
@@ -842,26 +856,40 @@ function useTrackedQueryRefs(queryRef) {
|
|
|
842
856
|
});
|
|
843
857
|
}
|
|
844
858
|
function useWatchQueryOptions(_a) {
|
|
845
|
-
var query = _a.query, options = _a.options;
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
859
|
+
var client = _a.client, query = _a.query, options = _a.options;
|
|
860
|
+
return useDeepMemo(function () {
|
|
861
|
+
var _a;
|
|
862
|
+
var fetchPolicy = options.fetchPolicy ||
|
|
863
|
+
((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
|
|
864
|
+
'cache-first';
|
|
865
|
+
var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
|
|
866
|
+
if (globals.__DEV__) {
|
|
867
|
+
validateOptions(watchQueryOptions);
|
|
868
|
+
}
|
|
869
|
+
if (options.skip) {
|
|
870
|
+
watchQueryOptions.fetchPolicy = 'standby';
|
|
871
|
+
}
|
|
872
|
+
return watchQueryOptions;
|
|
873
|
+
}, [client, options, query]);
|
|
851
874
|
}
|
|
852
875
|
|
|
853
876
|
function useBackgroundQuery(query, options) {
|
|
854
877
|
if (options === void 0) { options = Object.create(null); }
|
|
855
878
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
856
879
|
var client = useApolloClient(options.client);
|
|
857
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
858
|
-
var variables = watchQueryOptions.variables;
|
|
880
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
881
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
859
882
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
860
883
|
var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
|
|
861
884
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
862
885
|
return client.watchQuery(watchQueryOptions);
|
|
863
886
|
});
|
|
887
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
864
888
|
var _b = React.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
889
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
890
|
+
var promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
891
|
+
promiseCache.set(queryRef.key, promise);
|
|
892
|
+
}
|
|
865
893
|
useTrackedQueryRefs(queryRef);
|
|
866
894
|
var fetchMore = React.useCallback(function (options) {
|
|
867
895
|
var promise = queryRef.fetchMore(options);
|
|
@@ -891,6 +919,15 @@ function useBackgroundQuery(query, options) {
|
|
|
891
919
|
function useReadQuery(queryRef) {
|
|
892
920
|
var _a = React.useState(0), forceUpdate = _a[1];
|
|
893
921
|
globals.invariant(queryRef.promiseCache, 49);
|
|
922
|
+
var skipResult = React.useMemo(function () {
|
|
923
|
+
var error = toApolloError(queryRef.result);
|
|
924
|
+
return {
|
|
925
|
+
loading: false,
|
|
926
|
+
data: queryRef.result.data,
|
|
927
|
+
networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
|
|
928
|
+
error: error,
|
|
929
|
+
};
|
|
930
|
+
}, [queryRef.result]);
|
|
894
931
|
var promise = queryRef.promiseCache.get(queryRef.key);
|
|
895
932
|
if (!promise) {
|
|
896
933
|
promise = queryRef.promise;
|
|
@@ -902,7 +939,9 @@ function useReadQuery(queryRef) {
|
|
|
902
939
|
forceUpdate(function (prevState) { return prevState + 1; });
|
|
903
940
|
});
|
|
904
941
|
}, [queryRef]);
|
|
905
|
-
var result =
|
|
942
|
+
var result = queryRef.watchQueryOptions.fetchPolicy === 'standby'
|
|
943
|
+
? skipResult
|
|
944
|
+
: __use(promise);
|
|
906
945
|
return React.useMemo(function () {
|
|
907
946
|
return {
|
|
908
947
|
data: result.data,
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import type { DocumentNode, OperationVariables, TypedDocumentNode } from '../../core';
|
|
2
|
+
import { NetworkStatus } from '../../core';
|
|
2
3
|
import type { QueryReference } from '../cache/QueryReference';
|
|
3
|
-
import type { SuspenseQueryHookOptions,
|
|
4
|
-
import type { FetchMoreFunction } from './useSuspenseQuery';
|
|
5
|
-
|
|
4
|
+
import type { SuspenseQueryHookOptions, NoInfer } from '../types/types';
|
|
5
|
+
import type { FetchMoreFunction, RefetchFunction } from './useSuspenseQuery';
|
|
6
|
+
import type { DeepPartial } from '../../utilities';
|
|
7
|
+
export type UseBackgroundQueryResult<TData = unknown, TVariables extends OperationVariables = OperationVariables> = [
|
|
6
8
|
QueryReference<TData>,
|
|
7
9
|
{
|
|
8
10
|
fetchMore: FetchMoreFunction<TData, TVariables>;
|
|
9
|
-
refetch:
|
|
11
|
+
refetch: RefetchFunction<TData, TVariables>;
|
|
10
12
|
}
|
|
11
13
|
];
|
|
12
|
-
export declare function useBackgroundQuery<TData
|
|
14
|
+
export declare function useBackgroundQuery<TData, TVariables extends OperationVariables, TOptions extends Omit<SuspenseQueryHookOptions<TData>, 'variables' | 'returnPartialData' | 'refetchWritePolicy'>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: Omit<SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>, 'returnPartialData' | 'refetchWritePolicy'> & TOptions): UseBackgroundQueryResult<TOptions['errorPolicy'] extends 'ignore' | 'all' ? TData | undefined : TOptions['skip'] extends boolean ? TData | undefined : TData, TVariables>;
|
|
15
|
+
export declare function useBackgroundQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: Omit<SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>, 'returnPartialData' | 'refetchWritePolicy'> & {
|
|
16
|
+
returnPartialData: true;
|
|
17
|
+
errorPolicy: 'ignore' | 'all';
|
|
18
|
+
}): UseBackgroundQueryResult<DeepPartial<TData> | undefined, TVariables>;
|
|
19
|
+
export declare function useBackgroundQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: Omit<SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>, 'returnPartialData' | 'refetchWritePolicy'> & {
|
|
20
|
+
errorPolicy: 'ignore' | 'all';
|
|
21
|
+
}): UseBackgroundQueryResult<TData | undefined, TVariables>;
|
|
22
|
+
export declare function useBackgroundQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: Omit<SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>, 'returnPartialData' | 'refetchWritePolicy'> & {
|
|
23
|
+
skip: boolean;
|
|
24
|
+
}): UseBackgroundQueryResult<TData | undefined, TVariables>;
|
|
25
|
+
export declare function useBackgroundQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: Omit<SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>, 'returnPartialData' | 'refetchWritePolicy'>): UseBackgroundQueryResult<TData, TVariables>;
|
|
13
26
|
export declare function useReadQuery<TData>(queryRef: QueryReference<TData>): {
|
|
14
27
|
data: TData;
|
|
15
|
-
networkStatus:
|
|
28
|
+
networkStatus: NetworkStatus;
|
|
16
29
|
error: import("../../errors").ApolloError | undefined;
|
|
17
30
|
};
|
|
18
31
|
//# sourceMappingURL=useBackgroundQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBackgroundQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"useBackgroundQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState, useMemo, useCallback } from 'react';
|
|
2
|
+
import { NetworkStatus } from "../../core/index.js";
|
|
2
3
|
import { useApolloClient } from "./useApolloClient.js";
|
|
3
4
|
import { __use } from "./internal/index.js";
|
|
4
5
|
import { useSuspenseCache } from "./useSuspenseCache.js";
|
|
@@ -9,14 +10,19 @@ export function useBackgroundQuery(query, options) {
|
|
|
9
10
|
if (options === void 0) { options = Object.create(null); }
|
|
10
11
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
11
12
|
var client = useApolloClient(options.client);
|
|
12
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
13
|
-
var variables = watchQueryOptions.variables;
|
|
13
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
14
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
14
15
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
15
16
|
var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
|
|
16
17
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
17
18
|
return client.watchQuery(watchQueryOptions);
|
|
18
19
|
});
|
|
20
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
19
21
|
var _b = useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
22
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
23
|
+
var promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
24
|
+
promiseCache.set(queryRef.key, promise);
|
|
25
|
+
}
|
|
20
26
|
useTrackedQueryRefs(queryRef);
|
|
21
27
|
var fetchMore = useCallback(function (options) {
|
|
22
28
|
var promise = queryRef.fetchMore(options);
|
|
@@ -46,6 +52,15 @@ export function useBackgroundQuery(query, options) {
|
|
|
46
52
|
export function useReadQuery(queryRef) {
|
|
47
53
|
var _a = useState(0), forceUpdate = _a[1];
|
|
48
54
|
invariant(queryRef.promiseCache, 49);
|
|
55
|
+
var skipResult = useMemo(function () {
|
|
56
|
+
var error = toApolloError(queryRef.result);
|
|
57
|
+
return {
|
|
58
|
+
loading: false,
|
|
59
|
+
data: queryRef.result.data,
|
|
60
|
+
networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,
|
|
61
|
+
error: error,
|
|
62
|
+
};
|
|
63
|
+
}, [queryRef.result]);
|
|
49
64
|
var promise = queryRef.promiseCache.get(queryRef.key);
|
|
50
65
|
if (!promise) {
|
|
51
66
|
promise = queryRef.promise;
|
|
@@ -57,7 +72,9 @@ export function useReadQuery(queryRef) {
|
|
|
57
72
|
forceUpdate(function (prevState) { return prevState + 1; });
|
|
58
73
|
});
|
|
59
74
|
}, [queryRef]);
|
|
60
|
-
var result =
|
|
75
|
+
var result = queryRef.watchQueryOptions.fetchPolicy === 'standby'
|
|
76
|
+
? skipResult
|
|
77
|
+
: __use(promise);
|
|
61
78
|
return useMemo(function () {
|
|
62
79
|
return {
|
|
63
80
|
data: result.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBackgroundQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useMemo, useCallback } from 'react';\nimport type {\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n} from '../../core';\nimport { useApolloClient } from './useApolloClient';\nimport type { QueryReference } from '../cache/QueryReference';\nimport type {\n SuspenseQueryHookOptions,\n ObservableQueryFields,\n} from '../types/types';\nimport { __use } from './internal';\nimport { useSuspenseCache } from './useSuspenseCache';\nimport {\n toApolloError,\n useTrackedQueryRefs,\n useWatchQueryOptions,\n} from './useSuspenseQuery';\nimport type { FetchMoreFunction, RefetchFunction } from './useSuspenseQuery';\nimport { canonicalStringify } from '../../cache';\nimport { invariant } from '../../utilities/globals';\n\nexport type UseBackgroundQueryResult<\n TData = any,\n TVariables extends OperationVariables = OperationVariables\n> = [\n QueryReference<TData>,\n {\n fetchMore: FetchMoreFunction<TData, TVariables>;\n refetch: ObservableQueryFields<TData, TVariables>['refetch'];\n }\n];\n\nexport function useBackgroundQuery<\n TData = any,\n TVariables extends OperationVariables = OperationVariables\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options: Omit<\n SuspenseQueryHookOptions<TData, TVariables>,\n 'returnPartialData' | 'refetchWritePolicy'\n > = Object.create(null)\n): UseBackgroundQueryResult<TData> {\n const suspenseCache = useSuspenseCache(options.suspenseCache);\n const client = useApolloClient(options.client);\n const watchQueryOptions = useWatchQueryOptions({ 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] = useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n useTrackedQueryRefs(queryRef);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n queryRef.promiseCache = promiseCache;\n\n return useMemo(() => {\n return [\n queryRef,\n {\n fetchMore,\n refetch,\n },\n ];\n }, [queryRef, fetchMore, refetch]);\n}\n\nexport function useReadQuery<TData>(queryRef: QueryReference<TData>) {\n const [, forceUpdate] = useState(0);\n\n invariant(\n queryRef.promiseCache,\n 'It appears that `useReadQuery` was used outside of `useBackgroundQuery`. ' +\n '`useReadQuery` is only supported for use with `useBackgroundQuery`. ' +\n 'Please ensure you are passing the `queryRef` returned from `useBackgroundQuery`.'\n );\n\n let promise = queryRef.promiseCache.get(queryRef.key);\n\n if (!promise) {\n promise = queryRef.promise;\n queryRef.promiseCache.set(queryRef.key, promise);\n }\n\n useEffect(() => {\n return queryRef.listen((promise) => {\n queryRef.promiseCache!.set(queryRef.key, promise);\n forceUpdate((prevState) => prevState + 1);\n });\n }, [queryRef]);\n\n const result = __use(promise);\n\n return useMemo(() => {\n return {\n data: result.data,\n networkStatus: result.networkStatus,\n error: toApolloError(result),\n };\n }, [result]);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useBackgroundQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useBackgroundQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useMemo, useCallback } from 'react';\nimport type {\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n} from '../../core';\nimport { NetworkStatus } from '../../core';\nimport { useApolloClient } from './useApolloClient';\nimport type { QueryReference } from '../cache/QueryReference';\nimport type { SuspenseQueryHookOptions, NoInfer } from '../types/types';\nimport { __use } from './internal';\nimport { useSuspenseCache } from './useSuspenseCache';\nimport {\n toApolloError,\n useTrackedQueryRefs,\n useWatchQueryOptions,\n} from './useSuspenseQuery';\nimport type { FetchMoreFunction, RefetchFunction } from './useSuspenseQuery';\nimport { canonicalStringify } from '../../cache';\nimport type { DeepPartial } from '../../utilities';\nimport { invariant } from '../../utilities/globals';\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\nexport function useBackgroundQuery<\n TData,\n TVariables extends OperationVariables,\n TOptions extends Omit<\n SuspenseQueryHookOptions<TData>,\n 'variables' | 'returnPartialData' | 'refetchWritePolicy'\n >\n>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: Omit<\n SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n 'returnPartialData' | 'refetchWritePolicy'\n > &\n TOptions\n): UseBackgroundQueryResult<\n TOptions['errorPolicy'] extends 'ignore' | 'all'\n ? TData | undefined\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: Omit<\n SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n 'returnPartialData' | 'refetchWritePolicy'\n > & {\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: Omit<\n SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n 'returnPartialData' | 'refetchWritePolicy'\n > & {\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: Omit<\n SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n 'returnPartialData' | 'refetchWritePolicy'\n > & {\n skip: boolean;\n }\n): UseBackgroundQueryResult<TData | undefined, TVariables>;\n\n// TODO: support `returnPartialData` | `refetchWritePolicy`\n// see https://github.com/apollographql/apollo-client/issues/10893\n\n// export function useBackgroundQuery<\n// TData = unknown,\n// TVariables extends OperationVariables = OperationVariables\n// >(\n// query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n// options: Omit<\n// SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n// 'returnPartialData' | 'refetchWritePolicy'\n// > & {\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?: Omit<\n SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>,\n 'returnPartialData' | 'refetchWritePolicy'\n >\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: Omit<\n SuspenseQueryHookOptions<TData, TVariables>,\n 'returnPartialData' | 'refetchWritePolicy'\n > = Object.create(null)\n): UseBackgroundQueryResult<TData> {\n const suspenseCache = useSuspenseCache(options.suspenseCache);\n const client = useApolloClient(options.client);\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 { fetchPolicy: currentFetchPolicy } = queryRef.watchQueryOptions;\n\n const [promiseCache, setPromiseCache] = useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {\n const promise = queryRef.reobserve({ fetchPolicy });\n promiseCache.set(queryRef.key, promise);\n }\n\n useTrackedQueryRefs(queryRef);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n queryRef.promiseCache = promiseCache;\n\n return useMemo(() => {\n return [\n queryRef,\n {\n fetchMore,\n refetch,\n },\n ];\n }, [queryRef, fetchMore, refetch]);\n}\n\nexport function useReadQuery<TData>(queryRef: QueryReference<TData>) {\n const [, forceUpdate] = useState(0);\n\n invariant(\n queryRef.promiseCache,\n 'It appears that `useReadQuery` was used outside of `useBackgroundQuery`. ' +\n '`useReadQuery` is only supported for use with `useBackgroundQuery`. ' +\n 'Please ensure you are passing the `queryRef` returned from `useBackgroundQuery`.'\n );\n\n const skipResult = 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 let promise = queryRef.promiseCache.get(queryRef.key);\n\n if (!promise) {\n promise = queryRef.promise;\n queryRef.promiseCache.set(queryRef.key, promise);\n }\n\n useEffect(() => {\n return queryRef.listen((promise) => {\n queryRef.promiseCache!.set(queryRef.key, promise);\n forceUpdate((prevState) => prevState + 1);\n });\n }, [queryRef]);\n\n const result =\n queryRef.watchQueryOptions.fetchPolicy === 'standby'\n ? skipResult\n : __use(promise);\n\n return useMemo(() => {\n return {\n data: result.data,\n networkStatus: result.networkStatus,\n error: toApolloError(result),\n };\n }, [result]);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ApolloClient, ApolloQueryResult, DocumentNode, OperationVariables, TypedDocumentNode, WatchQueryOptions,
|
|
2
|
-
import { ApolloError } from '../../core';
|
|
1
|
+
import type { ApolloClient, ApolloQueryResult, DocumentNode, OperationVariables, TypedDocumentNode, WatchQueryOptions, FetchMoreQueryOptions } from '../../core';
|
|
2
|
+
import { ApolloError, NetworkStatus } from '../../core';
|
|
3
3
|
import type { DeepPartial } from '../../utilities';
|
|
4
4
|
import type { SuspenseQueryHookOptions, ObservableQueryFields, NoInfer } from '../types/types';
|
|
5
5
|
import type { QueryReference } from '../cache/QueryReference';
|
|
@@ -20,8 +20,7 @@ export type FetchMoreFunction<TData, TVariables extends OperationVariables> = (f
|
|
|
20
20
|
}) => Promise<ApolloQueryResult<TData>>;
|
|
21
21
|
export type RefetchFunction<TData, TVariables extends OperationVariables> = ObservableQueryFields<TData, TVariables>['refetch'];
|
|
22
22
|
export type SubscribeToMoreFunction<TData, TVariables extends OperationVariables> = ObservableQueryFields<TData, TVariables>['subscribeToMore'];
|
|
23
|
-
export
|
|
24
|
-
export declare function useSuspenseQuery<TData, TVariables extends OperationVariables, TOptions extends Omit<SuspenseQueryHookOptions<TData>, 'variables'>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & TOptions): UseSuspenseQueryResult<TOptions['errorPolicy'] extends 'ignore' | 'all' ? TOptions['returnPartialData'] extends true ? DeepPartial<TData> | undefined : TData | undefined : TOptions['returnPartialData'] extends true ? DeepPartial<TData> : TData, TVariables>;
|
|
23
|
+
export declare function useSuspenseQuery<TData, TVariables extends OperationVariables, TOptions extends Omit<SuspenseQueryHookOptions<TData>, 'variables'>>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & TOptions): UseSuspenseQueryResult<TOptions['errorPolicy'] extends 'ignore' | 'all' ? TOptions['returnPartialData'] extends true ? DeepPartial<TData> | undefined : TData | undefined : TOptions['returnPartialData'] extends true ? TOptions['skip'] extends boolean ? DeepPartial<TData> | undefined : DeepPartial<TData> : TOptions['skip'] extends boolean ? TData | undefined : TData, TVariables>;
|
|
25
24
|
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {
|
|
26
25
|
returnPartialData: true;
|
|
27
26
|
errorPolicy: 'ignore' | 'all';
|
|
@@ -29,16 +28,24 @@ export declare function useSuspenseQuery<TData = unknown, TVariables extends Ope
|
|
|
29
28
|
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {
|
|
30
29
|
errorPolicy: 'ignore' | 'all';
|
|
31
30
|
}): UseSuspenseQueryResult<TData | undefined, TVariables>;
|
|
31
|
+
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {
|
|
32
|
+
skip: boolean;
|
|
33
|
+
returnPartialData: true;
|
|
34
|
+
}): UseSuspenseQueryResult<DeepPartial<TData> | undefined, TVariables>;
|
|
32
35
|
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {
|
|
33
36
|
returnPartialData: true;
|
|
34
37
|
}): UseSuspenseQueryResult<DeepPartial<TData>, TVariables>;
|
|
38
|
+
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>> & {
|
|
39
|
+
skip: boolean;
|
|
40
|
+
}): UseSuspenseQueryResult<TData | undefined, TVariables>;
|
|
35
41
|
export declare function useSuspenseQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode | TypedDocumentNode<TData, TVariables>, options?: SuspenseQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>): UseSuspenseQueryResult<TData, TVariables>;
|
|
36
42
|
export declare function toApolloError(result: ApolloQueryResult<any>): ApolloError | undefined;
|
|
37
43
|
export declare function useTrackedQueryRefs(queryRef: QueryReference): void;
|
|
38
44
|
interface UseWatchQueryOptionsHookOptions<TData, TVariables extends OperationVariables> {
|
|
45
|
+
client: ApolloClient<unknown>;
|
|
39
46
|
query: DocumentNode | TypedDocumentNode<TData, TVariables>;
|
|
40
47
|
options: SuspenseQueryHookOptions<TData, TVariables>;
|
|
41
48
|
}
|
|
42
|
-
export declare function useWatchQueryOptions<TData, TVariables extends OperationVariables>({ query, options, }: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<TVariables, TData>;
|
|
49
|
+
export declare function useWatchQueryOptions<TData, TVariables extends OperationVariables>({ client, query, options, }: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<TVariables, TData>;
|
|
43
50
|
export {};
|
|
44
51
|
//# sourceMappingURL=useSuspenseQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuspenseQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,
|
|
1
|
+
{"version":3,"file":"useSuspenseQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
import { invariant, __DEV__ } from "../../utilities/globals/index.js";
|
|
3
3
|
import { useRef, useCallback, useMemo, useEffect, useState } from 'react';
|
|
4
|
-
import { ApolloError } from "../../core/index.js";
|
|
4
|
+
import { ApolloError, NetworkStatus } from "../../core/index.js";
|
|
5
5
|
import { isNonEmptyArray } from "../../utilities/index.js";
|
|
6
6
|
import { useApolloClient } from "./useApolloClient.js";
|
|
7
7
|
import { DocumentType, verifyDocumentType } from "../parser/index.js";
|
|
@@ -12,15 +12,20 @@ export function useSuspenseQuery(query, options) {
|
|
|
12
12
|
if (options === void 0) { options = Object.create(null); }
|
|
13
13
|
var client = useApolloClient(options.client);
|
|
14
14
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
15
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
16
|
-
var variables = watchQueryOptions.variables;
|
|
15
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
16
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
17
17
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
18
18
|
var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
|
|
19
19
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
20
20
|
return client.watchQuery(watchQueryOptions);
|
|
21
21
|
});
|
|
22
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
22
23
|
var _b = useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
23
24
|
var promise = promiseCache.get(queryRef.key);
|
|
25
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
26
|
+
promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
27
|
+
promiseCache.set(queryRef.key, promise);
|
|
28
|
+
}
|
|
24
29
|
if (!promise) {
|
|
25
30
|
promise = queryRef.promise;
|
|
26
31
|
promiseCache.set(queryRef.key, promise);
|
|
@@ -33,7 +38,16 @@ export function useSuspenseQuery(query, options) {
|
|
|
33
38
|
});
|
|
34
39
|
});
|
|
35
40
|
}, [queryRef]);
|
|
36
|
-
var
|
|
41
|
+
var skipResult = useMemo(function () {
|
|
42
|
+
var error = toApolloError(queryRef.result);
|
|
43
|
+
return {
|
|
44
|
+
loading: false,
|
|
45
|
+
data: queryRef.result.data,
|
|
46
|
+
networkStatus: error ? NetworkStatus.error : NetworkStatus.ready,
|
|
47
|
+
error: error,
|
|
48
|
+
};
|
|
49
|
+
}, [queryRef.result]);
|
|
50
|
+
var result = watchQueryOptions.fetchPolicy === 'standby' ? skipResult : __use(promise);
|
|
37
51
|
var fetchMore = useCallback(function (options) {
|
|
38
52
|
var promise = queryRef.fetchMore(options);
|
|
39
53
|
setPromiseCache(function (previousPromiseCache) {
|
|
@@ -95,11 +109,20 @@ export function useTrackedQueryRefs(queryRef) {
|
|
|
95
109
|
});
|
|
96
110
|
}
|
|
97
111
|
export function useWatchQueryOptions(_a) {
|
|
98
|
-
var query = _a.query, options = _a.options;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
112
|
+
var client = _a.client, query = _a.query, options = _a.options;
|
|
113
|
+
return useDeepMemo(function () {
|
|
114
|
+
var _a;
|
|
115
|
+
var fetchPolicy = options.fetchPolicy ||
|
|
116
|
+
((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
|
|
117
|
+
'cache-first';
|
|
118
|
+
var watchQueryOptions = __assign(__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
|
|
119
|
+
if (__DEV__) {
|
|
120
|
+
validateOptions(watchQueryOptions);
|
|
121
|
+
}
|
|
122
|
+
if (options.skip) {
|
|
123
|
+
watchQueryOptions.fetchPolicy = 'standby';
|
|
124
|
+
}
|
|
125
|
+
return watchQueryOptions;
|
|
126
|
+
}, [client, options, query]);
|
|
104
127
|
}
|
|
105
128
|
//# sourceMappingURL=useSuspenseQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuspenseQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant, __DEV__ } from '../../utilities/globals';\nimport { useRef, useCallback, useMemo, useEffect, useState } from 'react';\nimport type {\n ApolloClient,\n ApolloQueryResult,\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n WatchQueryOptions,\n WatchQueryFetchPolicy,\n NetworkStatus,\n FetchMoreQueryOptions,\n} from '../../core';\nimport { ApolloError } from '../../core';\nimport type { DeepPartial } from '../../utilities';\nimport { isNonEmptyArray } from '../../utilities';\nimport { useApolloClient } from './useApolloClient';\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport type {\n SuspenseQueryHookOptions,\n ObservableQueryFields,\n NoInfer,\n} from '../types/types';\nimport { useDeepMemo, useStrictModeSafeCleanupEffect, __use } from './internal';\nimport { useSuspenseCache } from './useSuspenseCache';\nimport type { QueryReference } from '../cache/QueryReference';\nimport { canonicalStringify } from '../../cache';\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 type Version = 'main' | 'network';\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 ? DeepPartial<TData>\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 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): 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, TVariables> {\n const client = useApolloClient(options.client);\n const suspenseCache = useSuspenseCache(options.suspenseCache);\n const watchQueryOptions = useWatchQueryOptions({ 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] = useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n let promise = promiseCache.get(queryRef.key);\n\n if (!promise) {\n promise = queryRef.promise;\n promiseCache.set(queryRef.key, promise);\n }\n\n useTrackedQueryRefs(queryRef);\n\n useEffect(() => {\n return queryRef.listen((promise) => {\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n });\n }, [queryRef]);\n\n const result = __use(promise);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n useCallback(\n (options) => queryRef.observable.subscribeToMore(options),\n [queryRef]\n );\n\n return 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\nexport function useTrackedQueryRefs(queryRef: QueryReference) {\n const trackedQueryRefs = useRef(new Set<QueryReference>());\n\n trackedQueryRefs.current.add(queryRef);\n\n useStrictModeSafeCleanupEffect(() => {\n trackedQueryRefs.current.forEach((sub) => sub.dispose());\n });\n}\n\ninterface UseWatchQueryOptionsHookOptions<\n TData,\n TVariables extends OperationVariables\n> {\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n options: SuspenseQueryHookOptions<TData, TVariables>;\n}\n\nexport function useWatchQueryOptions<\n TData,\n TVariables extends OperationVariables\n>({\n query,\n options,\n}: UseWatchQueryOptionsHookOptions<TData, TVariables>): WatchQueryOptions<\n TVariables,\n TData\n> {\n const watchQueryOptions = useDeepMemo<WatchQueryOptions<TVariables, TData>>(\n () => ({\n ...options,\n query,\n notifyOnNetworkStatusChange: false,\n nextFetchPolicy: void 0,\n }),\n [options, query]\n );\n\n if (__DEV__) {\n validateOptions(watchQueryOptions);\n }\n\n return watchQueryOptions;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useSuspenseQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useSuspenseQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant, __DEV__ } from '../../utilities/globals';\nimport { useRef, useCallback, useMemo, useEffect, useState } from 'react';\nimport type {\n ApolloClient,\n ApolloQueryResult,\n DocumentNode,\n OperationVariables,\n TypedDocumentNode,\n WatchQueryOptions,\n WatchQueryFetchPolicy,\n FetchMoreQueryOptions,\n} from '../../core';\nimport { ApolloError, NetworkStatus } from '../../core';\nimport type { DeepPartial } from '../../utilities';\nimport { isNonEmptyArray } from '../../utilities';\nimport { useApolloClient } from './useApolloClient';\nimport { DocumentType, verifyDocumentType } from '../parser';\nimport type {\n SuspenseQueryHookOptions,\n ObservableQueryFields,\n NoInfer,\n} from '../types/types';\nimport { useDeepMemo, useStrictModeSafeCleanupEffect, __use } from './internal';\nimport { useSuspenseCache } from './useSuspenseCache';\nimport type { QueryReference } from '../cache/QueryReference';\nimport { canonicalStringify } from '../../cache';\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 { fetchPolicy: currentFetchPolicy } = queryRef.watchQueryOptions;\n\n const [promiseCache, setPromiseCache] = useState(\n () => new Map([[queryRef.key, queryRef.promise]])\n );\n\n let promise = promiseCache.get(queryRef.key);\n\n if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {\n promise = queryRef.reobserve({ fetchPolicy });\n promiseCache.set(queryRef.key, promise);\n }\n\n if (!promise) {\n promise = queryRef.promise;\n promiseCache.set(queryRef.key, promise);\n }\n\n useTrackedQueryRefs(queryRef);\n\n useEffect(() => {\n return queryRef.listen((promise) => {\n setPromiseCache((promiseCache) =>\n new Map(promiseCache).set(queryRef.key, promise)\n );\n });\n }, [queryRef]);\n\n const skipResult = 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 =\n watchQueryOptions.fetchPolicy === 'standby' ? skipResult : __use(promise);\n\n const fetchMore: FetchMoreFunction<TData, TVariables> = useCallback(\n (options) => {\n const promise = queryRef.fetchMore(options);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const refetch: RefetchFunction<TData, TVariables> = useCallback(\n (variables) => {\n const promise = queryRef.refetch(variables);\n\n setPromiseCache((previousPromiseCache) =>\n new Map(previousPromiseCache).set(queryRef.key, promise)\n );\n\n return promise;\n },\n [queryRef]\n );\n\n const subscribeToMore: SubscribeToMoreFunction<TData, TVariables> =\n useCallback(\n (options) => queryRef.observable.subscribeToMore(options),\n [queryRef]\n );\n\n return 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\nexport function useTrackedQueryRefs(queryRef: QueryReference) {\n const trackedQueryRefs = useRef(new Set<QueryReference>());\n\n trackedQueryRefs.current.add(queryRef);\n\n useStrictModeSafeCleanupEffect(() => {\n trackedQueryRefs.current.forEach((sub) => sub.dispose());\n });\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"]}
|
package/react/react.cjs
CHANGED
|
@@ -47,6 +47,13 @@ var QueryReference = (function () {
|
|
|
47
47
|
}
|
|
48
48
|
this.autoDisposeTimeoutId = setTimeout(this.dispose, (_a = options.autoDisposeTimeoutMs) !== null && _a !== void 0 ? _a : 30000);
|
|
49
49
|
}
|
|
50
|
+
Object.defineProperty(QueryReference.prototype, "watchQueryOptions", {
|
|
51
|
+
get: function () {
|
|
52
|
+
return this.observable.options;
|
|
53
|
+
},
|
|
54
|
+
enumerable: false,
|
|
55
|
+
configurable: true
|
|
56
|
+
});
|
|
50
57
|
QueryReference.prototype.listen = function (listener) {
|
|
51
58
|
var _this = this;
|
|
52
59
|
clearTimeout(this.autoDisposeTimeoutId);
|
|
@@ -66,6 +73,11 @@ var QueryReference = (function () {
|
|
|
66
73
|
this.promise = promise;
|
|
67
74
|
return promise;
|
|
68
75
|
};
|
|
76
|
+
QueryReference.prototype.reobserve = function (watchQueryOptions) {
|
|
77
|
+
var promise = this.observable.reobserve(watchQueryOptions);
|
|
78
|
+
this.promise = promise;
|
|
79
|
+
return promise;
|
|
80
|
+
};
|
|
69
81
|
QueryReference.prototype.dispose = function () {
|
|
70
82
|
this.subscription.unsubscribe();
|
|
71
83
|
this.onDispose();
|
|
@@ -117,21 +129,21 @@ var QueryReference = (function () {
|
|
|
117
129
|
var SuspenseCache = (function () {
|
|
118
130
|
function SuspenseCache(options) {
|
|
119
131
|
if (options === void 0) { options = Object.create(null); }
|
|
120
|
-
this.
|
|
121
|
-
this.queryRefs = new Map();
|
|
132
|
+
this.queryRefs = new trie.Trie(utilities.canUseWeakMap);
|
|
122
133
|
this.options = options;
|
|
123
134
|
}
|
|
124
135
|
SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {
|
|
125
|
-
var
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
key: stableCacheKey,
|
|
136
|
+
var ref = this.queryRefs.lookupArray(cacheKey);
|
|
137
|
+
if (!ref.current) {
|
|
138
|
+
ref.current = new QueryReference(createObservable(), {
|
|
139
|
+
key: cacheKey,
|
|
130
140
|
autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,
|
|
131
|
-
onDispose: function () {
|
|
132
|
-
|
|
141
|
+
onDispose: function () {
|
|
142
|
+
delete ref.current;
|
|
143
|
+
},
|
|
144
|
+
});
|
|
133
145
|
}
|
|
134
|
-
return
|
|
146
|
+
return ref.current;
|
|
135
147
|
};
|
|
136
148
|
return SuspenseCache;
|
|
137
149
|
}());
|
package/react/react.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.cjs","sources":["cache/QueryReference.js","cache/SuspenseCache.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { NetworkStatus, isNetworkRequestSettled } from '../../core';\nimport { createFulfilledPromise, createRejectedPromise } from '../../utilities';\nvar QueryReference = (function () {\n function QueryReference(observable, options) {\n var _this = this;\n var _a;\n this.listeners = new Set();\n this.initialized = false;\n this.refetching = false;\n this.listen = this.listen.bind(this);\n this.handleNext = this.handleNext.bind(this);\n this.handleError = this.handleError.bind(this);\n this.dispose = this.dispose.bind(this);\n this.observable = observable;\n this.result = observable.getCurrentResult(false);\n this.key = options.key;\n if (options.onDispose) {\n this.onDispose = options.onDispose;\n }\n if (isNetworkRequestSettled(this.result.networkStatus) ||\n (this.result.data &&\n (!this.result.partial || this.observable.options.returnPartialData))) {\n this.promise = createFulfilledPromise(this.result);\n this.initialized = true;\n this.refetching = false;\n }\n this.subscription = observable.subscribe({\n next: this.handleNext,\n error: this.handleError,\n });\n if (!this.promise) {\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n }\n this.autoDisposeTimeoutId = setTimeout(this.dispose, (_a = options.autoDisposeTimeoutMs) !== null && _a !== void 0 ? _a : 30000);\n }\n QueryReference.prototype.listen = function (listener) {\n var _this = this;\n clearTimeout(this.autoDisposeTimeoutId);\n this.listeners.add(listener);\n return function () {\n _this.listeners.delete(listener);\n };\n };\n QueryReference.prototype.refetch = function (variables) {\n this.refetching = true;\n var promise = this.observable.refetch(variables);\n this.promise = promise;\n return promise;\n };\n QueryReference.prototype.fetchMore = function (options) {\n var promise = this.observable.fetchMore(options);\n this.promise = promise;\n return promise;\n };\n QueryReference.prototype.dispose = function () {\n this.subscription.unsubscribe();\n this.onDispose();\n };\n QueryReference.prototype.onDispose = function () {\n };\n QueryReference.prototype.handleNext = function (result) {\n if (!this.initialized || this.refetching) {\n if (!isNetworkRequestSettled(result.networkStatus)) {\n return;\n }\n if (this.result.data && result.data === void 0) {\n result.data = this.result.data;\n }\n this.initialized = true;\n this.refetching = false;\n this.result = result;\n this.resolve(result);\n return;\n }\n if (result.data === this.result.data) {\n return;\n }\n this.result = result;\n this.promise = createFulfilledPromise(result);\n this.deliver(this.promise);\n };\n QueryReference.prototype.handleError = function (error) {\n var result = __assign(__assign({}, this.result), { error: error, networkStatus: NetworkStatus.error });\n this.result = result;\n if (!this.initialized || this.refetching) {\n this.initialized = true;\n this.refetching = false;\n this.reject(error);\n return;\n }\n this.result = result;\n this.promise = result.data\n ? createFulfilledPromise(result)\n : createRejectedPromise(result);\n this.deliver(this.promise);\n };\n QueryReference.prototype.deliver = function (promise) {\n this.listeners.forEach(function (listener) { return listener(promise); });\n };\n return QueryReference;\n}());\nexport { QueryReference };\n//# sourceMappingURL=QueryReference.js.map","import { Trie } from '@wry/trie';\nimport { canUseWeakMap } from '../../utilities';\nimport { QueryReference } from './QueryReference';\nvar SuspenseCache = (function () {\n function SuspenseCache(options) {\n if (options === void 0) { options = Object.create(null); }\n this.cacheKeys = new Trie(canUseWeakMap, function (cacheKey) { return cacheKey; });\n this.queryRefs = new Map();\n this.options = options;\n }\n SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {\n var _this = this;\n var stableCacheKey = this.cacheKeys.lookupArray(cacheKey);\n if (!this.queryRefs.has(stableCacheKey)) {\n this.queryRefs.set(stableCacheKey, new QueryReference(createObservable(), {\n key: stableCacheKey,\n autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,\n onDispose: function () { return _this.queryRefs.delete(stableCacheKey); },\n }));\n }\n return this.queryRefs.get(stableCacheKey);\n };\n return SuspenseCache;\n}());\nexport { SuspenseCache };\n//# sourceMappingURL=SuspenseCache.js.map"],"names":["isNetworkRequestSettled","createFulfilledPromise","__assign","NetworkStatus","createRejectedPromise","Trie","canUseWeakMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react.cjs","sources":["cache/QueryReference.js","cache/SuspenseCache.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { NetworkStatus, isNetworkRequestSettled } from '../../core';\nimport { createFulfilledPromise, createRejectedPromise } from '../../utilities';\nvar QueryReference = (function () {\n function QueryReference(observable, options) {\n var _this = this;\n var _a;\n this.listeners = new Set();\n this.initialized = false;\n this.refetching = false;\n this.listen = this.listen.bind(this);\n this.handleNext = this.handleNext.bind(this);\n this.handleError = this.handleError.bind(this);\n this.dispose = this.dispose.bind(this);\n this.observable = observable;\n this.result = observable.getCurrentResult(false);\n this.key = options.key;\n if (options.onDispose) {\n this.onDispose = options.onDispose;\n }\n if (isNetworkRequestSettled(this.result.networkStatus) ||\n (this.result.data &&\n (!this.result.partial || this.observable.options.returnPartialData))) {\n this.promise = createFulfilledPromise(this.result);\n this.initialized = true;\n this.refetching = false;\n }\n this.subscription = observable.subscribe({\n next: this.handleNext,\n error: this.handleError,\n });\n if (!this.promise) {\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n }\n this.autoDisposeTimeoutId = setTimeout(this.dispose, (_a = options.autoDisposeTimeoutMs) !== null && _a !== void 0 ? _a : 30000);\n }\n Object.defineProperty(QueryReference.prototype, \"watchQueryOptions\", {\n get: function () {\n return this.observable.options;\n },\n enumerable: false,\n configurable: true\n });\n QueryReference.prototype.listen = function (listener) {\n var _this = this;\n clearTimeout(this.autoDisposeTimeoutId);\n this.listeners.add(listener);\n return function () {\n _this.listeners.delete(listener);\n };\n };\n QueryReference.prototype.refetch = function (variables) {\n this.refetching = true;\n var promise = this.observable.refetch(variables);\n this.promise = promise;\n return promise;\n };\n QueryReference.prototype.fetchMore = function (options) {\n var promise = this.observable.fetchMore(options);\n this.promise = promise;\n return promise;\n };\n QueryReference.prototype.reobserve = function (watchQueryOptions) {\n var promise = this.observable.reobserve(watchQueryOptions);\n this.promise = promise;\n return promise;\n };\n QueryReference.prototype.dispose = function () {\n this.subscription.unsubscribe();\n this.onDispose();\n };\n QueryReference.prototype.onDispose = function () {\n };\n QueryReference.prototype.handleNext = function (result) {\n if (!this.initialized || this.refetching) {\n if (!isNetworkRequestSettled(result.networkStatus)) {\n return;\n }\n if (this.result.data && result.data === void 0) {\n result.data = this.result.data;\n }\n this.initialized = true;\n this.refetching = false;\n this.result = result;\n this.resolve(result);\n return;\n }\n if (result.data === this.result.data) {\n return;\n }\n this.result = result;\n this.promise = createFulfilledPromise(result);\n this.deliver(this.promise);\n };\n QueryReference.prototype.handleError = function (error) {\n var result = __assign(__assign({}, this.result), { error: error, networkStatus: NetworkStatus.error });\n this.result = result;\n if (!this.initialized || this.refetching) {\n this.initialized = true;\n this.refetching = false;\n this.reject(error);\n return;\n }\n this.result = result;\n this.promise = result.data\n ? createFulfilledPromise(result)\n : createRejectedPromise(result);\n this.deliver(this.promise);\n };\n QueryReference.prototype.deliver = function (promise) {\n this.listeners.forEach(function (listener) { return listener(promise); });\n };\n return QueryReference;\n}());\nexport { QueryReference };\n//# sourceMappingURL=QueryReference.js.map","import { Trie } from '@wry/trie';\nimport { canUseWeakMap } from '../../utilities';\nimport { QueryReference } from './QueryReference';\nvar SuspenseCache = (function () {\n function SuspenseCache(options) {\n if (options === void 0) { options = Object.create(null); }\n this.queryRefs = new Trie(canUseWeakMap);\n this.options = options;\n }\n SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {\n var ref = this.queryRefs.lookupArray(cacheKey);\n if (!ref.current) {\n ref.current = new QueryReference(createObservable(), {\n key: cacheKey,\n autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,\n onDispose: function () {\n delete ref.current;\n },\n });\n }\n return ref.current;\n };\n return SuspenseCache;\n}());\nexport { SuspenseCache };\n//# sourceMappingURL=SuspenseCache.js.map"],"names":["isNetworkRequestSettled","createFulfilledPromise","__assign","NetworkStatus","createRejectedPromise","Trie","canUseWeakMap"],"mappings":"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"}
|