@tanstack/query-sync-storage-persister 4.0.0 → 4.0.2
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/build/stats-html.html +1 -1
- package/build/stats.json +45 -0
- package/build/types/packages/query-core/src/focusManager.d.ts +16 -0
- package/build/types/packages/query-core/src/hydration.d.ts +34 -0
- package/build/types/packages/query-core/src/index.d.ts +20 -0
- package/build/types/packages/query-core/src/infiniteQueryBehavior.d.ts +15 -0
- package/build/types/packages/query-core/src/infiniteQueryObserver.d.ts +18 -0
- package/build/types/packages/query-core/src/logger.d.ts +8 -0
- package/build/types/packages/query-core/src/mutation.d.ts +70 -0
- package/build/types/packages/query-core/src/mutationCache.d.ts +52 -0
- package/build/types/packages/query-core/src/mutationObserver.d.ts +23 -0
- package/build/types/packages/query-core/src/notifyManager.d.ts +18 -0
- package/build/types/packages/query-core/src/onlineManager.d.ts +16 -0
- package/build/types/packages/query-core/src/queriesObserver.d.ts +23 -0
- package/build/types/packages/query-core/src/query.d.ts +119 -0
- package/build/types/packages/query-core/src/queryCache.d.ts +59 -0
- package/build/types/packages/query-core/src/queryClient.d.ts +65 -0
- package/build/types/packages/query-core/src/queryObserver.d.ts +61 -0
- package/build/types/packages/query-core/src/removable.d.ts +9 -0
- package/build/types/packages/query-core/src/retryer.d.ts +33 -0
- package/build/types/packages/query-core/src/subscribable.d.ts +10 -0
- package/build/types/packages/query-core/src/types.d.ts +417 -0
- package/build/types/packages/query-core/src/utils.d.ts +99 -0
- package/build/types/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.d.ts +1 -0
- package/build/types/packages/query-sync-storage-persister/src/index.d.ts +30 -0
- package/build/types/packages/react-query/src/Hydrate.d.ts +10 -0
- package/build/types/packages/react-query/src/QueryClientProvider.d.ts +24 -0
- package/build/types/packages/react-query/src/QueryErrorResetBoundary.d.ts +12 -0
- package/build/types/packages/react-query/src/index.d.ts +17 -0
- package/build/types/packages/react-query/src/isRestoring.d.ts +3 -0
- package/build/types/packages/react-query/src/reactBatchedUpdates.d.ts +2 -0
- package/build/types/packages/react-query/src/setBatchUpdatesFn.d.ts +1 -0
- package/build/types/packages/react-query/src/types.d.ts +35 -0
- package/build/types/packages/react-query/src/useBaseQuery.d.ts +3 -0
- package/build/types/packages/react-query/src/useInfiniteQuery.d.ts +5 -0
- package/build/types/packages/react-query/src/useIsFetching.d.ts +7 -0
- package/build/types/packages/react-query/src/useIsMutating.d.ts +7 -0
- package/build/types/packages/react-query/src/useMutation.d.ts +6 -0
- package/build/types/packages/react-query/src/useQueries.d.ts +49 -0
- package/build/types/packages/react-query/src/useQuery.d.ts +20 -0
- package/build/types/packages/react-query/src/utils.d.ts +1 -0
- package/build/types/packages/react-query-persist-client/src/PersistQueryClientProvider.d.ts +8 -0
- package/build/types/packages/react-query-persist-client/src/index.d.ts +3 -0
- package/build/types/packages/react-query-persist-client/src/persist.d.ts +58 -0
- package/build/types/packages/react-query-persist-client/src/retryStrategies.d.ts +7 -0
- package/build/types/tests/utils.d.ts +24 -0
- package/package.json +2 -2
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DefaultedQueryObserverOptions, RefetchPageFilters } from './types';
|
|
2
|
+
import type { QueryKey, QueryObserverOptions, QueryObserverResult, RefetchOptions } from './types';
|
|
3
|
+
import type { Query, Action, FetchOptions } from './query';
|
|
4
|
+
import type { QueryClient } from './queryClient';
|
|
5
|
+
import { Subscribable } from './subscribable';
|
|
6
|
+
declare type QueryObserverListener<TData, TError> = (result: QueryObserverResult<TData, TError>) => void;
|
|
7
|
+
export interface NotifyOptions {
|
|
8
|
+
cache?: boolean;
|
|
9
|
+
listeners?: boolean;
|
|
10
|
+
onError?: boolean;
|
|
11
|
+
onSuccess?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ObserverFetchOptions extends FetchOptions {
|
|
14
|
+
throwOnError?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class QueryObserver<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends Subscribable<QueryObserverListener<TData, TError>> {
|
|
17
|
+
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
18
|
+
private client;
|
|
19
|
+
private currentQuery;
|
|
20
|
+
private currentQueryInitialState;
|
|
21
|
+
private currentResult;
|
|
22
|
+
private currentResultState?;
|
|
23
|
+
private currentResultOptions?;
|
|
24
|
+
private previousQueryResult?;
|
|
25
|
+
private selectError;
|
|
26
|
+
private selectFn?;
|
|
27
|
+
private selectResult?;
|
|
28
|
+
private staleTimeoutId?;
|
|
29
|
+
private refetchIntervalId?;
|
|
30
|
+
private currentRefetchInterval?;
|
|
31
|
+
private trackedProps;
|
|
32
|
+
constructor(client: QueryClient, options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>);
|
|
33
|
+
protected bindMethods(): void;
|
|
34
|
+
protected onSubscribe(): void;
|
|
35
|
+
protected onUnsubscribe(): void;
|
|
36
|
+
shouldFetchOnReconnect(): boolean;
|
|
37
|
+
shouldFetchOnWindowFocus(): boolean;
|
|
38
|
+
destroy(): void;
|
|
39
|
+
setOptions(options?: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, notifyOptions?: NotifyOptions): void;
|
|
40
|
+
getOptimisticResult(options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): QueryObserverResult<TData, TError>;
|
|
41
|
+
getCurrentResult(): QueryObserverResult<TData, TError>;
|
|
42
|
+
trackResult(result: QueryObserverResult<TData, TError>): QueryObserverResult<TData, TError>;
|
|
43
|
+
getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
44
|
+
remove(): void;
|
|
45
|
+
refetch<TPageData>({ refetchPage, ...options }?: RefetchOptions & RefetchPageFilters<TPageData>): Promise<QueryObserverResult<TData, TError>>;
|
|
46
|
+
fetchOptimistic(options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): Promise<QueryObserverResult<TData, TError>>;
|
|
47
|
+
protected fetch(fetchOptions: ObserverFetchOptions): Promise<QueryObserverResult<TData, TError>>;
|
|
48
|
+
private executeFetch;
|
|
49
|
+
private updateStaleTimeout;
|
|
50
|
+
private computeRefetchInterval;
|
|
51
|
+
private updateRefetchInterval;
|
|
52
|
+
private updateTimers;
|
|
53
|
+
private clearStaleTimeout;
|
|
54
|
+
private clearRefetchInterval;
|
|
55
|
+
protected createResult(query: Query<TQueryFnData, TError, TQueryData, TQueryKey>, options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): QueryObserverResult<TData, TError>;
|
|
56
|
+
updateResult(notifyOptions?: NotifyOptions): void;
|
|
57
|
+
private updateQuery;
|
|
58
|
+
onQueryUpdate(action: Action<TData, TError>): void;
|
|
59
|
+
private notify;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare abstract class Removable {
|
|
2
|
+
cacheTime: number;
|
|
3
|
+
private gcTimeout?;
|
|
4
|
+
destroy(): void;
|
|
5
|
+
protected scheduleGc(): void;
|
|
6
|
+
protected updateCacheTime(newCacheTime: number | undefined): void;
|
|
7
|
+
protected clearGcTimeout(): void;
|
|
8
|
+
protected abstract optionalRemove(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CancelOptions, NetworkMode } from './types';
|
|
2
|
+
interface RetryerConfig<TData = unknown, TError = unknown> {
|
|
3
|
+
fn: () => TData | Promise<TData>;
|
|
4
|
+
abort?: () => void;
|
|
5
|
+
onError?: (error: TError) => void;
|
|
6
|
+
onSuccess?: (data: TData) => void;
|
|
7
|
+
onFail?: (failureCount: number, error: TError) => void;
|
|
8
|
+
onPause?: () => void;
|
|
9
|
+
onContinue?: () => void;
|
|
10
|
+
retry?: RetryValue<TError>;
|
|
11
|
+
retryDelay?: RetryDelayValue<TError>;
|
|
12
|
+
networkMode: NetworkMode | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface Retryer<TData = unknown> {
|
|
15
|
+
promise: Promise<TData>;
|
|
16
|
+
cancel: (cancelOptions?: CancelOptions) => void;
|
|
17
|
+
continue: () => void;
|
|
18
|
+
cancelRetry: () => void;
|
|
19
|
+
continueRetry: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>;
|
|
22
|
+
declare type ShouldRetryFunction<TError> = (failureCount: number, error: TError) => boolean;
|
|
23
|
+
export declare type RetryDelayValue<TError> = number | RetryDelayFunction<TError>;
|
|
24
|
+
declare type RetryDelayFunction<TError = unknown> = (failureCount: number, error: TError) => number;
|
|
25
|
+
export declare function canFetch(networkMode: NetworkMode | undefined): boolean;
|
|
26
|
+
export declare class CancelledError {
|
|
27
|
+
revert?: boolean;
|
|
28
|
+
silent?: boolean;
|
|
29
|
+
constructor(options?: CancelOptions);
|
|
30
|
+
}
|
|
31
|
+
export declare function isCancelledError(value: any): value is CancelledError;
|
|
32
|
+
export declare function createRetryer<TData = unknown, TError = unknown>(config: RetryerConfig<TData, TError>): Retryer<TData>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare type Listener = () => void;
|
|
2
|
+
export declare class Subscribable<TListener extends Function = Listener> {
|
|
3
|
+
protected listeners: TListener[];
|
|
4
|
+
constructor();
|
|
5
|
+
subscribe(listener: TListener): () => void;
|
|
6
|
+
hasListeners(): boolean;
|
|
7
|
+
protected onSubscribe(): void;
|
|
8
|
+
protected onUnsubscribe(): void;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import type { MutationState } from './mutation';
|
|
2
|
+
import type { QueryBehavior, Query } from './query';
|
|
3
|
+
import type { RetryValue, RetryDelayValue } from './retryer';
|
|
4
|
+
import type { QueryFilters, QueryTypeFilter } from './utils';
|
|
5
|
+
import type { QueryCache } from './queryCache';
|
|
6
|
+
import type { MutationCache } from './mutationCache';
|
|
7
|
+
import { Logger } from './logger';
|
|
8
|
+
export declare type QueryKey = readonly unknown[];
|
|
9
|
+
export declare type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey> = (context: QueryFunctionContext<TQueryKey>) => T | Promise<T>;
|
|
10
|
+
export interface QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = any> {
|
|
11
|
+
queryKey: TQueryKey;
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
pageParam?: TPageParam;
|
|
14
|
+
meta: QueryMeta | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare type InitialDataFunction<T> = () => T | undefined;
|
|
17
|
+
export declare type PlaceholderDataFunction<TResult> = () => TResult | undefined;
|
|
18
|
+
export declare type QueryKeyHashFunction<TQueryKey extends QueryKey> = (queryKey: TQueryKey) => string;
|
|
19
|
+
export declare type GetPreviousPageParamFunction<TQueryFnData = unknown> = (firstPage: TQueryFnData, allPages: TQueryFnData[]) => unknown;
|
|
20
|
+
export declare type GetNextPageParamFunction<TQueryFnData = unknown> = (lastPage: TQueryFnData, allPages: TQueryFnData[]) => unknown;
|
|
21
|
+
export interface InfiniteData<TData> {
|
|
22
|
+
pages: TData[];
|
|
23
|
+
pageParams: unknown[];
|
|
24
|
+
}
|
|
25
|
+
export declare type QueryMeta = Record<string, unknown>;
|
|
26
|
+
export declare type NetworkMode = 'online' | 'always' | 'offlineFirst';
|
|
27
|
+
export interface QueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
|
28
|
+
/**
|
|
29
|
+
* If `false`, failed queries will not retry by default.
|
|
30
|
+
* If `true`, failed queries will retry infinitely., failureCount: num
|
|
31
|
+
* If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
|
32
|
+
* If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
|
33
|
+
*/
|
|
34
|
+
retry?: RetryValue<TError>;
|
|
35
|
+
retryDelay?: RetryDelayValue<TError>;
|
|
36
|
+
networkMode?: NetworkMode;
|
|
37
|
+
cacheTime?: number;
|
|
38
|
+
isDataEqual?: (oldData: TData | undefined, newData: TData) => boolean;
|
|
39
|
+
queryFn?: QueryFunction<TQueryFnData, TQueryKey>;
|
|
40
|
+
queryHash?: string;
|
|
41
|
+
queryKey?: TQueryKey;
|
|
42
|
+
queryKeyHashFn?: QueryKeyHashFunction<TQueryKey>;
|
|
43
|
+
initialData?: TData | InitialDataFunction<TData>;
|
|
44
|
+
initialDataUpdatedAt?: number | (() => number | undefined);
|
|
45
|
+
behavior?: QueryBehavior<TQueryFnData, TError, TData>;
|
|
46
|
+
/**
|
|
47
|
+
* Set this to `false` to disable structural sharing between query results.
|
|
48
|
+
* Defaults to `true`.
|
|
49
|
+
*/
|
|
50
|
+
structuralSharing?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* This function can be set to automatically get the previous cursor for infinite queries.
|
|
53
|
+
* The result will also be used to determine the value of `hasPreviousPage`.
|
|
54
|
+
*/
|
|
55
|
+
getPreviousPageParam?: GetPreviousPageParamFunction<TQueryFnData>;
|
|
56
|
+
/**
|
|
57
|
+
* This function can be set to automatically get the next cursor for infinite queries.
|
|
58
|
+
* The result will also be used to determine the value of `hasNextPage`.
|
|
59
|
+
*/
|
|
60
|
+
getNextPageParam?: GetNextPageParamFunction<TQueryFnData>;
|
|
61
|
+
_defaulted?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Additional payload to be stored on each query.
|
|
64
|
+
* Use this property to pass information that can be used in other places.
|
|
65
|
+
*/
|
|
66
|
+
meta?: QueryMeta;
|
|
67
|
+
}
|
|
68
|
+
export interface QueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey> {
|
|
69
|
+
/**
|
|
70
|
+
* Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
71
|
+
* To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
|
72
|
+
* Defaults to `true`.
|
|
73
|
+
*/
|
|
74
|
+
enabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* The time in milliseconds after data is considered stale.
|
|
77
|
+
* If set to `Infinity`, the data will never be considered stale.
|
|
78
|
+
*/
|
|
79
|
+
staleTime?: number;
|
|
80
|
+
/**
|
|
81
|
+
* If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
|
82
|
+
* If set to a function, the function will be executed with the latest data and query to compute a frequency
|
|
83
|
+
* Defaults to `false`.
|
|
84
|
+
*/
|
|
85
|
+
refetchInterval?: number | false | ((data: TData | undefined, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => number | false);
|
|
86
|
+
/**
|
|
87
|
+
* If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
|
88
|
+
* Defaults to `false`.
|
|
89
|
+
*/
|
|
90
|
+
refetchIntervalInBackground?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* If set to `true`, the query will refetch on window focus if the data is stale.
|
|
93
|
+
* If set to `false`, the query will not refetch on window focus.
|
|
94
|
+
* If set to `'always'`, the query will always refetch on window focus.
|
|
95
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value.
|
|
96
|
+
* Defaults to `true`.
|
|
97
|
+
*/
|
|
98
|
+
refetchOnWindowFocus?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
|
99
|
+
/**
|
|
100
|
+
* If set to `true`, the query will refetch on reconnect if the data is stale.
|
|
101
|
+
* If set to `false`, the query will not refetch on reconnect.
|
|
102
|
+
* If set to `'always'`, the query will always refetch on reconnect.
|
|
103
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value.
|
|
104
|
+
* Defaults to the value of `networkOnline` (`true`)
|
|
105
|
+
*/
|
|
106
|
+
refetchOnReconnect?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
|
107
|
+
/**
|
|
108
|
+
* If set to `true`, the query will refetch on mount if the data is stale.
|
|
109
|
+
* If set to `false`, will disable additional instances of a query to trigger background refetches.
|
|
110
|
+
* If set to `'always'`, the query will always refetch on mount.
|
|
111
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value
|
|
112
|
+
* Defaults to `true`.
|
|
113
|
+
*/
|
|
114
|
+
refetchOnMount?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
|
115
|
+
/**
|
|
116
|
+
* If set to `false`, the query will not be retried on mount if it contains an error.
|
|
117
|
+
* Defaults to `true`.
|
|
118
|
+
*/
|
|
119
|
+
retryOnMount?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* If set, the component will only re-render if any of the listed properties change.
|
|
122
|
+
* When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
|
123
|
+
* When set to `'all'`, the component will re-render whenever a query is updated.
|
|
124
|
+
* By default, access to properties will be tracked, and the component will only re-render when one of the tracked properties change.
|
|
125
|
+
*/
|
|
126
|
+
notifyOnChangeProps?: Array<keyof InfiniteQueryObserverResult> | 'all';
|
|
127
|
+
/**
|
|
128
|
+
* This callback will fire any time the query successfully fetches new data or the cache is updated via `setQueryData`.
|
|
129
|
+
*/
|
|
130
|
+
onSuccess?: (data: TData) => void;
|
|
131
|
+
/**
|
|
132
|
+
* This callback will fire if the query encounters an error and will be passed the error.
|
|
133
|
+
*/
|
|
134
|
+
onError?: (err: TError) => void;
|
|
135
|
+
/**
|
|
136
|
+
* This callback will fire any time the query is either successfully fetched or errors and be passed either the data or error.
|
|
137
|
+
*/
|
|
138
|
+
onSettled?: (data: TData | undefined, error: TError | null) => void;
|
|
139
|
+
/**
|
|
140
|
+
* Whether errors should be thrown instead of setting the `error` property.
|
|
141
|
+
* If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
|
142
|
+
* If set to `false` and `suspense` is `false`, errors are returned as state.
|
|
143
|
+
* If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
|
144
|
+
* Defaults to `false`.
|
|
145
|
+
*/
|
|
146
|
+
useErrorBoundary?: boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
|
|
147
|
+
/**
|
|
148
|
+
* This option can be used to transform or select a part of the data returned by the query function.
|
|
149
|
+
*/
|
|
150
|
+
select?: (data: TQueryData) => TData;
|
|
151
|
+
/**
|
|
152
|
+
* If set to `true`, the query will suspend when `status === 'loading'`
|
|
153
|
+
* and throw errors when `status === 'error'`.
|
|
154
|
+
* Defaults to `false`.
|
|
155
|
+
*/
|
|
156
|
+
suspense?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Set this to `true` to keep the previous `data` when fetching based on a new query key.
|
|
159
|
+
* Defaults to `false`.
|
|
160
|
+
*/
|
|
161
|
+
keepPreviousData?: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
|
|
164
|
+
*/
|
|
165
|
+
placeholderData?: TQueryData | PlaceholderDataFunction<TQueryData>;
|
|
166
|
+
_optimisticResults?: 'optimistic' | 'isRestoring';
|
|
167
|
+
}
|
|
168
|
+
declare type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
169
|
+
export declare type DefaultedQueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'useErrorBoundary' | 'refetchOnReconnect'>;
|
|
170
|
+
export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, InfiniteData<TData>, InfiniteData<TQueryData>, TQueryKey> {
|
|
171
|
+
}
|
|
172
|
+
export declare type DefaultedInfiniteQueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'useErrorBoundary' | 'refetchOnReconnect'>;
|
|
173
|
+
export interface FetchQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
|
|
174
|
+
/**
|
|
175
|
+
* The time in milliseconds after data is considered stale.
|
|
176
|
+
* If the data is fresh it will be returned from the cache.
|
|
177
|
+
*/
|
|
178
|
+
staleTime?: number;
|
|
179
|
+
}
|
|
180
|
+
export interface FetchInfiniteQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends FetchQueryOptions<TQueryFnData, TError, InfiniteData<TData>, TQueryKey> {
|
|
181
|
+
}
|
|
182
|
+
export interface ResultOptions {
|
|
183
|
+
throwOnError?: boolean;
|
|
184
|
+
}
|
|
185
|
+
export interface RefetchPageFilters<TPageData = unknown> {
|
|
186
|
+
refetchPage?: (lastPage: TPageData, index: number, allPages: TPageData[]) => boolean;
|
|
187
|
+
}
|
|
188
|
+
export interface RefetchOptions extends ResultOptions {
|
|
189
|
+
cancelRefetch?: boolean;
|
|
190
|
+
}
|
|
191
|
+
export interface InvalidateQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
|
192
|
+
refetchType?: QueryTypeFilter | 'none';
|
|
193
|
+
}
|
|
194
|
+
export interface RefetchQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
|
195
|
+
}
|
|
196
|
+
export interface ResetQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
|
197
|
+
}
|
|
198
|
+
export interface InvalidateOptions extends RefetchOptions {
|
|
199
|
+
}
|
|
200
|
+
export interface ResetOptions extends RefetchOptions {
|
|
201
|
+
}
|
|
202
|
+
export interface FetchNextPageOptions extends ResultOptions {
|
|
203
|
+
cancelRefetch?: boolean;
|
|
204
|
+
pageParam?: unknown;
|
|
205
|
+
}
|
|
206
|
+
export interface FetchPreviousPageOptions extends ResultOptions {
|
|
207
|
+
cancelRefetch?: boolean;
|
|
208
|
+
pageParam?: unknown;
|
|
209
|
+
}
|
|
210
|
+
export declare type QueryStatus = 'loading' | 'error' | 'success';
|
|
211
|
+
export declare type FetchStatus = 'fetching' | 'paused' | 'idle';
|
|
212
|
+
export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
|
|
213
|
+
data: TData | undefined;
|
|
214
|
+
dataUpdatedAt: number;
|
|
215
|
+
error: TError | null;
|
|
216
|
+
errorUpdatedAt: number;
|
|
217
|
+
failureCount: number;
|
|
218
|
+
errorUpdateCount: number;
|
|
219
|
+
isError: boolean;
|
|
220
|
+
isFetched: boolean;
|
|
221
|
+
isFetchedAfterMount: boolean;
|
|
222
|
+
isFetching: boolean;
|
|
223
|
+
isLoading: boolean;
|
|
224
|
+
isLoadingError: boolean;
|
|
225
|
+
isPaused: boolean;
|
|
226
|
+
isPlaceholderData: boolean;
|
|
227
|
+
isPreviousData: boolean;
|
|
228
|
+
isRefetchError: boolean;
|
|
229
|
+
isRefetching: boolean;
|
|
230
|
+
isStale: boolean;
|
|
231
|
+
isSuccess: boolean;
|
|
232
|
+
refetch: <TPageData>(options?: RefetchOptions & RefetchQueryFilters<TPageData>) => Promise<QueryObserverResult<TData, TError>>;
|
|
233
|
+
remove: () => void;
|
|
234
|
+
status: QueryStatus;
|
|
235
|
+
fetchStatus: FetchStatus;
|
|
236
|
+
}
|
|
237
|
+
export interface QueryObserverLoadingResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
|
238
|
+
data: undefined;
|
|
239
|
+
error: null;
|
|
240
|
+
isError: false;
|
|
241
|
+
isLoading: true;
|
|
242
|
+
isLoadingError: false;
|
|
243
|
+
isRefetchError: false;
|
|
244
|
+
isSuccess: false;
|
|
245
|
+
status: 'loading';
|
|
246
|
+
}
|
|
247
|
+
export interface QueryObserverLoadingErrorResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
|
248
|
+
data: undefined;
|
|
249
|
+
error: TError;
|
|
250
|
+
isError: true;
|
|
251
|
+
isLoading: false;
|
|
252
|
+
isLoadingError: true;
|
|
253
|
+
isRefetchError: false;
|
|
254
|
+
isSuccess: false;
|
|
255
|
+
status: 'error';
|
|
256
|
+
}
|
|
257
|
+
export interface QueryObserverRefetchErrorResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
|
258
|
+
data: TData;
|
|
259
|
+
error: TError;
|
|
260
|
+
isError: true;
|
|
261
|
+
isLoading: false;
|
|
262
|
+
isLoadingError: false;
|
|
263
|
+
isRefetchError: true;
|
|
264
|
+
isSuccess: false;
|
|
265
|
+
status: 'error';
|
|
266
|
+
}
|
|
267
|
+
export interface QueryObserverSuccessResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
|
268
|
+
data: TData;
|
|
269
|
+
error: null;
|
|
270
|
+
isError: false;
|
|
271
|
+
isLoading: false;
|
|
272
|
+
isLoadingError: false;
|
|
273
|
+
isRefetchError: false;
|
|
274
|
+
isSuccess: true;
|
|
275
|
+
status: 'success';
|
|
276
|
+
}
|
|
277
|
+
export declare type QueryObserverResult<TData = unknown, TError = unknown> = QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError> | QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
|
|
278
|
+
export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<InfiniteData<TData>, TError> {
|
|
279
|
+
fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
|
280
|
+
fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
|
281
|
+
hasNextPage?: boolean;
|
|
282
|
+
hasPreviousPage?: boolean;
|
|
283
|
+
isFetchingNextPage: boolean;
|
|
284
|
+
isFetchingPreviousPage: boolean;
|
|
285
|
+
}
|
|
286
|
+
export interface InfiniteQueryObserverLoadingResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
287
|
+
data: undefined;
|
|
288
|
+
error: null;
|
|
289
|
+
isError: false;
|
|
290
|
+
isLoading: true;
|
|
291
|
+
isLoadingError: false;
|
|
292
|
+
isRefetchError: false;
|
|
293
|
+
isSuccess: false;
|
|
294
|
+
status: 'loading';
|
|
295
|
+
}
|
|
296
|
+
export interface InfiniteQueryObserverLoadingErrorResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
297
|
+
data: undefined;
|
|
298
|
+
error: TError;
|
|
299
|
+
isError: true;
|
|
300
|
+
isLoading: false;
|
|
301
|
+
isLoadingError: true;
|
|
302
|
+
isRefetchError: false;
|
|
303
|
+
isSuccess: false;
|
|
304
|
+
status: 'error';
|
|
305
|
+
}
|
|
306
|
+
export interface InfiniteQueryObserverRefetchErrorResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
307
|
+
data: InfiniteData<TData>;
|
|
308
|
+
error: TError;
|
|
309
|
+
isError: true;
|
|
310
|
+
isLoading: false;
|
|
311
|
+
isLoadingError: false;
|
|
312
|
+
isRefetchError: true;
|
|
313
|
+
isSuccess: false;
|
|
314
|
+
status: 'error';
|
|
315
|
+
}
|
|
316
|
+
export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
317
|
+
data: InfiniteData<TData>;
|
|
318
|
+
error: null;
|
|
319
|
+
isError: false;
|
|
320
|
+
isLoading: false;
|
|
321
|
+
isLoadingError: false;
|
|
322
|
+
isRefetchError: false;
|
|
323
|
+
isSuccess: true;
|
|
324
|
+
status: 'success';
|
|
325
|
+
}
|
|
326
|
+
export declare type InfiniteQueryObserverResult<TData = unknown, TError = unknown> = InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, TError>;
|
|
327
|
+
export declare type MutationKey = readonly unknown[];
|
|
328
|
+
export declare type MutationStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
329
|
+
export declare type MutationMeta = Record<string, unknown>;
|
|
330
|
+
export declare type MutationFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData>;
|
|
331
|
+
export interface MutationOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
|
|
332
|
+
mutationFn?: MutationFunction<TData, TVariables>;
|
|
333
|
+
mutationKey?: MutationKey;
|
|
334
|
+
variables?: TVariables;
|
|
335
|
+
onMutate?: (variables: TVariables) => Promise<TContext | undefined> | TContext | undefined;
|
|
336
|
+
onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
|
337
|
+
onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
|
338
|
+
onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
|
339
|
+
retry?: RetryValue<TError>;
|
|
340
|
+
retryDelay?: RetryDelayValue<TError>;
|
|
341
|
+
networkMode?: NetworkMode;
|
|
342
|
+
cacheTime?: number;
|
|
343
|
+
_defaulted?: boolean;
|
|
344
|
+
meta?: MutationMeta;
|
|
345
|
+
}
|
|
346
|
+
export interface MutationObserverOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationOptions<TData, TError, TVariables, TContext> {
|
|
347
|
+
useErrorBoundary?: boolean | ((error: TError) => boolean);
|
|
348
|
+
}
|
|
349
|
+
export interface MutateOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
|
|
350
|
+
onSuccess?: (data: TData, variables: TVariables, context: TContext) => Promise<unknown> | void;
|
|
351
|
+
onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
|
352
|
+
onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
|
353
|
+
}
|
|
354
|
+
export declare type MutateFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
|
|
355
|
+
export interface MutationObserverBaseResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
|
|
356
|
+
isError: boolean;
|
|
357
|
+
isIdle: boolean;
|
|
358
|
+
isLoading: boolean;
|
|
359
|
+
isSuccess: boolean;
|
|
360
|
+
mutate: MutateFunction<TData, TError, TVariables, TContext>;
|
|
361
|
+
reset: () => void;
|
|
362
|
+
}
|
|
363
|
+
export interface MutationObserverIdleResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
364
|
+
data: undefined;
|
|
365
|
+
error: null;
|
|
366
|
+
isError: false;
|
|
367
|
+
isIdle: true;
|
|
368
|
+
isLoading: false;
|
|
369
|
+
isSuccess: false;
|
|
370
|
+
status: 'idle';
|
|
371
|
+
}
|
|
372
|
+
export interface MutationObserverLoadingResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
373
|
+
data: undefined;
|
|
374
|
+
error: null;
|
|
375
|
+
isError: false;
|
|
376
|
+
isIdle: false;
|
|
377
|
+
isLoading: true;
|
|
378
|
+
isSuccess: false;
|
|
379
|
+
status: 'loading';
|
|
380
|
+
}
|
|
381
|
+
export interface MutationObserverErrorResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
382
|
+
data: undefined;
|
|
383
|
+
error: TError;
|
|
384
|
+
isError: true;
|
|
385
|
+
isIdle: false;
|
|
386
|
+
isLoading: false;
|
|
387
|
+
isSuccess: false;
|
|
388
|
+
status: 'error';
|
|
389
|
+
}
|
|
390
|
+
export interface MutationObserverSuccessResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
391
|
+
data: TData;
|
|
392
|
+
error: null;
|
|
393
|
+
isError: false;
|
|
394
|
+
isIdle: false;
|
|
395
|
+
isLoading: false;
|
|
396
|
+
isSuccess: true;
|
|
397
|
+
status: 'success';
|
|
398
|
+
}
|
|
399
|
+
export declare type MutationObserverResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
|
|
400
|
+
export interface QueryClientConfig {
|
|
401
|
+
queryCache?: QueryCache;
|
|
402
|
+
mutationCache?: MutationCache;
|
|
403
|
+
logger?: Logger;
|
|
404
|
+
defaultOptions?: DefaultOptions;
|
|
405
|
+
}
|
|
406
|
+
export interface DefaultOptions<TError = unknown> {
|
|
407
|
+
queries?: QueryObserverOptions<unknown, TError>;
|
|
408
|
+
mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>;
|
|
409
|
+
}
|
|
410
|
+
export interface CancelOptions {
|
|
411
|
+
revert?: boolean;
|
|
412
|
+
silent?: boolean;
|
|
413
|
+
}
|
|
414
|
+
export interface SetDataOptions {
|
|
415
|
+
updatedAt?: number;
|
|
416
|
+
}
|
|
417
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { Mutation } from './mutation';
|
|
2
|
+
import type { Query } from './query';
|
|
3
|
+
import type { FetchStatus, MutationFunction, MutationKey, MutationOptions, QueryFunction, QueryKey, QueryOptions } from './types';
|
|
4
|
+
export interface QueryFilters {
|
|
5
|
+
/**
|
|
6
|
+
* Filter to active queries, inactive queries or all queries
|
|
7
|
+
*/
|
|
8
|
+
type?: QueryTypeFilter;
|
|
9
|
+
/**
|
|
10
|
+
* Match query key exactly
|
|
11
|
+
*/
|
|
12
|
+
exact?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Include queries matching this predicate function
|
|
15
|
+
*/
|
|
16
|
+
predicate?: (query: Query) => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Include queries matching this query key
|
|
19
|
+
*/
|
|
20
|
+
queryKey?: QueryKey;
|
|
21
|
+
/**
|
|
22
|
+
* Include or exclude stale queries
|
|
23
|
+
*/
|
|
24
|
+
stale?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Include queries matching their fetchStatus
|
|
27
|
+
*/
|
|
28
|
+
fetchStatus?: FetchStatus;
|
|
29
|
+
}
|
|
30
|
+
export interface MutationFilters {
|
|
31
|
+
/**
|
|
32
|
+
* Match mutation key exactly
|
|
33
|
+
*/
|
|
34
|
+
exact?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Include mutations matching this predicate function
|
|
37
|
+
*/
|
|
38
|
+
predicate?: (mutation: Mutation<any, any, any>) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Include mutations matching this mutation key
|
|
41
|
+
*/
|
|
42
|
+
mutationKey?: MutationKey;
|
|
43
|
+
/**
|
|
44
|
+
* Include or exclude fetching mutations
|
|
45
|
+
*/
|
|
46
|
+
fetching?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export declare type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput;
|
|
49
|
+
export declare type Updater<TInput, TOutput> = TOutput | DataUpdateFunction<TInput, TOutput>;
|
|
50
|
+
export declare type QueryTypeFilter = 'all' | 'active' | 'inactive';
|
|
51
|
+
export declare const isServer: boolean;
|
|
52
|
+
export declare function noop(): undefined;
|
|
53
|
+
export declare function functionalUpdate<TInput, TOutput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
|
|
54
|
+
export declare function isValidTimeout(value: unknown): value is number;
|
|
55
|
+
export declare function difference<T>(array1: T[], array2: T[]): T[];
|
|
56
|
+
export declare function replaceAt<T>(array: T[], index: number, value: T): T[];
|
|
57
|
+
export declare function timeUntilStale(updatedAt: number, staleTime?: number): number;
|
|
58
|
+
export declare function parseQueryArgs<TOptions extends QueryOptions<any, any, any, TQueryKey>, TQueryKey extends QueryKey = QueryKey>(arg1: TQueryKey | TOptions, arg2?: QueryFunction<any, TQueryKey> | TOptions, arg3?: TOptions): TOptions;
|
|
59
|
+
export declare function parseMutationArgs<TOptions extends MutationOptions<any, any, any, any>>(arg1: MutationKey | MutationFunction<any, any> | TOptions, arg2?: MutationFunction<any, any> | TOptions, arg3?: TOptions): TOptions;
|
|
60
|
+
export declare function parseFilterArgs<TFilters extends QueryFilters, TOptions = unknown>(arg1?: QueryKey | TFilters, arg2?: TFilters | TOptions, arg3?: TOptions): [TFilters, TOptions | undefined];
|
|
61
|
+
export declare function parseMutationFilterArgs<TFilters extends MutationFilters, TOptions = unknown>(arg1?: QueryKey | TFilters, arg2?: TFilters | TOptions, arg3?: TOptions): [TFilters, TOptions | undefined];
|
|
62
|
+
export declare function matchQuery(filters: QueryFilters, query: Query<any, any, any, any>): boolean;
|
|
63
|
+
export declare function matchMutation(filters: MutationFilters, mutation: Mutation<any, any>): boolean;
|
|
64
|
+
export declare function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: QueryOptions<any, any, any, TQueryKey>): string;
|
|
65
|
+
/**
|
|
66
|
+
* Default query keys hash function.
|
|
67
|
+
* Hashes the value into a stable hash.
|
|
68
|
+
*/
|
|
69
|
+
export declare function hashQueryKey(queryKey: QueryKey): string;
|
|
70
|
+
/**
|
|
71
|
+
* Checks if key `b` partially matches with key `a`.
|
|
72
|
+
*/
|
|
73
|
+
export declare function partialMatchKey(a: QueryKey, b: QueryKey): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Checks if `b` partially matches with `a`.
|
|
76
|
+
*/
|
|
77
|
+
export declare function partialDeepEqual(a: any, b: any): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* This function returns `a` if `b` is deeply equal.
|
|
80
|
+
* If not, it will replace any deeply equal children of `b` with those of `a`.
|
|
81
|
+
* This can be used for structural sharing between JSON values for example.
|
|
82
|
+
*/
|
|
83
|
+
export declare function replaceEqualDeep<T>(a: unknown, b: T): T;
|
|
84
|
+
/**
|
|
85
|
+
* Shallow compare objects. Only works with objects that always have the same properties.
|
|
86
|
+
*/
|
|
87
|
+
export declare function shallowEqualObjects<T>(a: T, b: T): boolean;
|
|
88
|
+
export declare function isPlainArray(value: unknown): boolean;
|
|
89
|
+
export declare function isPlainObject(o: any): o is Object;
|
|
90
|
+
export declare function isQueryKey(value: unknown): value is QueryKey;
|
|
91
|
+
export declare function isError(value: any): value is Error;
|
|
92
|
+
export declare function sleep(timeout: number): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Schedules a microtask.
|
|
95
|
+
* This can be useful to schedule state updates after rendering.
|
|
96
|
+
*/
|
|
97
|
+
export declare function scheduleMicrotask(callback: () => void): void;
|
|
98
|
+
export declare function getAbortController(): AbortController | undefined;
|
|
99
|
+
export declare function replaceData<TData, TOptions extends QueryOptions<any, any, any, any>>(prevData: TData | undefined, data: TData, options: TOptions): TData;
|
package/build/types/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { PersistedClient, Persister, PersistRetryer } from '@tanstack/react-query-persist-client';
|
|
2
|
+
interface Storage {
|
|
3
|
+
getItem: (key: string) => string | null;
|
|
4
|
+
setItem: (key: string, value: string) => void;
|
|
5
|
+
removeItem: (key: string) => void;
|
|
6
|
+
}
|
|
7
|
+
interface CreateSyncStoragePersisterOptions {
|
|
8
|
+
/** The storage client used for setting and retrieving items from cache.
|
|
9
|
+
* For SSR pass in `undefined`.
|
|
10
|
+
*/
|
|
11
|
+
storage: Storage | undefined;
|
|
12
|
+
/** The key to use when storing the cache */
|
|
13
|
+
key?: string;
|
|
14
|
+
/** To avoid spamming,
|
|
15
|
+
* pass a time in ms to throttle saving the cache to disk */
|
|
16
|
+
throttleTime?: number;
|
|
17
|
+
/**
|
|
18
|
+
* How to serialize the data to storage.
|
|
19
|
+
* @default `JSON.stringify`
|
|
20
|
+
*/
|
|
21
|
+
serialize?: (client: PersistedClient) => string;
|
|
22
|
+
/**
|
|
23
|
+
* How to deserialize the data from storage.
|
|
24
|
+
* @default `JSON.parse`
|
|
25
|
+
*/
|
|
26
|
+
deserialize?: (cachedString: string) => PersistedClient;
|
|
27
|
+
retry?: PersistRetryer;
|
|
28
|
+
}
|
|
29
|
+
export declare function createSyncStoragePersister({ storage, key, throttleTime, serialize, deserialize, retry, }: CreateSyncStoragePersisterOptions): Persister;
|
|
30
|
+
export {};
|