UNPKG

4.45 kBTypeScriptView Raw
1import { Updater } from './utils';
2import { QueryKey, QueryOptions, QueryStatus, EnsuredQueryKey, QueryMeta, CancelOptions, SetDataOptions } from './types';
3import { QueryCache } from './queryCache';
4import { QueryObserver } from './queryObserver';
5interface QueryConfig<TQueryFnData, TError, TData, TQueryKey extends QueryKey = QueryKey> {
6 cache: QueryCache;
7 queryKey: TQueryKey;
8 queryHash: string;
9 options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
10 defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
11 state?: QueryState<TData, TError>;
12 meta: QueryMeta | undefined;
13}
14export interface QueryState<TData = unknown, TError = unknown> {
15 data: TData | undefined;
16 dataUpdateCount: number;
17 dataUpdatedAt: number;
18 error: TError | null;
19 errorUpdateCount: number;
20 errorUpdatedAt: number;
21 fetchFailureCount: number;
22 fetchMeta: any;
23 isFetching: boolean;
24 isInvalidated: boolean;
25 isPaused: boolean;
26 status: QueryStatus;
27}
28export interface FetchContext<TQueryFnData, TError, TData, TQueryKey extends QueryKey = QueryKey> {
29 fetchFn: () => unknown | Promise<unknown>;
30 fetchOptions?: FetchOptions;
31 options: QueryOptions<TQueryFnData, TError, TData, any>;
32 queryKey: EnsuredQueryKey<TQueryKey>;
33 state: QueryState<TData, TError>;
34 meta: QueryMeta | undefined;
35}
36export interface QueryBehavior<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
37 onFetch: (context: FetchContext<TQueryFnData, TError, TData, TQueryKey>) => void;
38}
39export interface FetchOptions {
40 cancelRefetch?: boolean;
41 meta?: any;
42}
43interface FailedAction {
44 type: 'failed';
45}
46interface FetchAction {
47 type: 'fetch';
48 meta?: any;
49}
50interface SuccessAction<TData> {
51 data: TData | undefined;
52 type: 'success';
53 dataUpdatedAt?: number;
54}
55interface ErrorAction<TError> {
56 type: 'error';
57 error: TError;
58}
59interface InvalidateAction {
60 type: 'invalidate';
61}
62interface PauseAction {
63 type: 'pause';
64}
65interface ContinueAction {
66 type: 'continue';
67}
68interface SetStateAction<TData, TError> {
69 type: 'setState';
70 state: QueryState<TData, TError>;
71 setStateOptions?: SetStateOptions;
72}
73export declare type Action<TData, TError> = ContinueAction | ErrorAction<TError> | FailedAction | FetchAction | InvalidateAction | PauseAction | SetStateAction<TData, TError> | SuccessAction<TData>;
74export interface SetStateOptions {
75 meta?: any;
76}
77export declare class Query<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
78 queryKey: TQueryKey;
79 queryHash: string;
80 options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
81 initialState: QueryState<TData, TError>;
82 revertState?: QueryState<TData, TError>;
83 state: QueryState<TData, TError>;
84 cacheTime: number;
85 meta: QueryMeta | undefined;
86 private cache;
87 private promise?;
88 private gcTimeout?;
89 private retryer?;
90 private observers;
91 private defaultOptions?;
92 private abortSignalConsumed;
93 private hadObservers;
94 constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>);
95 private setOptions;
96 setDefaultOptions(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>): void;
97 private scheduleGc;
98 private clearGcTimeout;
99 private optionalRemove;
100 setData(updater: Updater<TData | undefined, TData>, options?: SetDataOptions): TData;
101 setState(state: QueryState<TData, TError>, setStateOptions?: SetStateOptions): void;
102 cancel(options?: CancelOptions): Promise<void>;
103 destroy(): void;
104 reset(): void;
105 isActive(): boolean;
106 isFetching(): boolean;
107 isStale(): boolean;
108 isStaleByTime(staleTime?: number): boolean;
109 onFocus(): void;
110 onOnline(): void;
111 addObserver(observer: QueryObserver<any, any, any, any, any>): void;
112 removeObserver(observer: QueryObserver<any, any, any, any, any>): void;
113 getObserversCount(): number;
114 invalidate(): void;
115 fetch(options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>, fetchOptions?: FetchOptions): Promise<TData>;
116 private dispatch;
117 protected getDefaultState(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>): QueryState<TData, TError>;
118 protected reducer(state: QueryState<TData, TError>, action: Action<TData, TError>): QueryState<TData, TError>;
119}
120export {};