1 | import { Updater } from './utils';
|
2 | import { QueryKey, QueryOptions, QueryStatus, EnsuredQueryKey, QueryMeta, CancelOptions, SetDataOptions } from './types';
|
3 | import { QueryCache } from './queryCache';
|
4 | import { QueryObserver } from './queryObserver';
|
5 | interface 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 | }
|
14 | export 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 | }
|
28 | export 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 | }
|
36 | export interface QueryBehavior<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
37 | onFetch: (context: FetchContext<TQueryFnData, TError, TData, TQueryKey>) => void;
|
38 | }
|
39 | export interface FetchOptions {
|
40 | cancelRefetch?: boolean;
|
41 | meta?: any;
|
42 | }
|
43 | interface FailedAction {
|
44 | type: 'failed';
|
45 | }
|
46 | interface FetchAction {
|
47 | type: 'fetch';
|
48 | meta?: any;
|
49 | }
|
50 | interface SuccessAction<TData> {
|
51 | data: TData | undefined;
|
52 | type: 'success';
|
53 | dataUpdatedAt?: number;
|
54 | }
|
55 | interface ErrorAction<TError> {
|
56 | type: 'error';
|
57 | error: TError;
|
58 | }
|
59 | interface InvalidateAction {
|
60 | type: 'invalidate';
|
61 | }
|
62 | interface PauseAction {
|
63 | type: 'pause';
|
64 | }
|
65 | interface ContinueAction {
|
66 | type: 'continue';
|
67 | }
|
68 | interface SetStateAction<TData, TError> {
|
69 | type: 'setState';
|
70 | state: QueryState<TData, TError>;
|
71 | setStateOptions?: SetStateOptions;
|
72 | }
|
73 | export declare type Action<TData, TError> = ContinueAction | ErrorAction<TError> | FailedAction | FetchAction | InvalidateAction | PauseAction | SetStateAction<TData, TError> | SuccessAction<TData>;
|
74 | export interface SetStateOptions {
|
75 | meta?: any;
|
76 | }
|
77 | export 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 | }
|
120 | export {};
|