@hz52410/uni-query 1.0.1

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.
@@ -0,0 +1,15 @@
1
+ import { DataTag, DefaultError, InfiniteData, NonUndefinedGuard, QueryKey } from './query-core';
2
+ import { UseInfiniteQueryOptions } from './useInfiniteQuery';
3
+
4
+ export type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
5
+ initialData?: undefined;
6
+ };
7
+ export type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
8
+ initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>);
9
+ };
10
+ export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
11
+ queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
12
+ };
13
+ export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
14
+ queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
15
+ };
@@ -0,0 +1,8 @@
1
+ import { MutationCache as MC } from './query-core/mutationCache';
2
+ import { DefaultError, Mutation, MutationFilters } from './query-core';
3
+ import { MaybeRefDeep } from './types';
4
+
5
+ export declare class MutationCache extends MC {
6
+ find<TData = unknown, TError = DefaultError, TVariables = any, TOnMutateResult = unknown>(filters: MaybeRefDeep<MutationFilters>): Mutation<TData, TError, TVariables, TOnMutateResult> | undefined;
7
+ findAll(filters?: MaybeRefDeep<MutationFilters>): Array<Mutation>;
8
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * query-core - 本地实现
3
+ */
4
+ export * from './types';
5
+ export { QueryCache } from './queryCache';
6
+ export { MutationCache } from './mutationCache';
7
+ export { QueryClient } from './queryClient';
8
+ export { QueryObserver } from './queryObserver';
9
+ export { MutationObserver } from './mutationObserver';
10
+ export { InfiniteQueryObserver } from './infiniteQueryObserver';
11
+ export { QueriesObserver } from './queriesObserver';
12
+ export { hashQueryKey, shouldThrowError } from './utils';
@@ -0,0 +1,31 @@
1
+ import { QueryObserver } from './queryObserver';
2
+ import { QueryKey, InfiniteData, InfiniteQueryObserverResult, DefaultError, DefaultedQueryObserverOptions } from './types';
3
+
4
+ export declare class InfiniteQueryObserver<TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
5
+ private infiniteOptions;
6
+ constructor(client: any, options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> & {
7
+ initialPageParam: TPageParam;
8
+ getNextPageParam: (lastPage: TQueryFnData, allPages: TQueryFnData[]) => TPageParam | undefined;
9
+ getPreviousPageParam?: (firstPage: TQueryFnData, allPages: TQueryFnData[]) => TPageParam | undefined;
10
+ });
11
+ /**
12
+ * 获取下一页
13
+ */
14
+ fetchNextPage(options?: any): Promise<InfiniteQueryObserverResult<TData, TError>>;
15
+ /**
16
+ * 获取上一页
17
+ */
18
+ fetchPreviousPage(options?: any): Promise<InfiniteQueryObserverResult<TData, TError>>;
19
+ /**
20
+ * 获取当前结果(覆盖父类方法)
21
+ */
22
+ getCurrentResult(): InfiniteQueryObserverResult<TData, TError>;
23
+ /**
24
+ * 判断是否有下一页
25
+ */
26
+ private hasNextPage;
27
+ /**
28
+ * 判断是否有上一页
29
+ */
30
+ private hasPreviousPage;
31
+ }
@@ -0,0 +1,43 @@
1
+ import { Mutation, MutationFilters, DefaultError } from './types';
2
+
3
+ export declare class MutationCache {
4
+ private mutations;
5
+ private mutationId;
6
+ constructor();
7
+ /**
8
+ * 添加 Mutation
9
+ */
10
+ add(mutation: Mutation): void;
11
+ /**
12
+ * 移除 Mutation
13
+ */
14
+ remove(mutation: Mutation): void;
15
+ /**
16
+ * 查找 Mutation
17
+ */
18
+ find<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(filters: MutationFilters): Mutation<TData, TError, TVariables, TContext> | undefined;
19
+ /**
20
+ * 查找所有匹配的 Mutation
21
+ */
22
+ findAll(filters?: MutationFilters): Array<Mutation>;
23
+ /**
24
+ * 清除所有 Mutation
25
+ */
26
+ clear(): void;
27
+ /**
28
+ * 订阅缓存变化
29
+ */
30
+ subscribe(listener: () => void): () => void;
31
+ /**
32
+ * 生成 Mutation ID
33
+ */
34
+ generateMutationId(): number;
35
+ /**
36
+ * 匹配 Mutation
37
+ */
38
+ private matchMutation;
39
+ /**
40
+ * 匹配键
41
+ */
42
+ private matchKeys;
43
+ }
@@ -0,0 +1,43 @@
1
+ import { QueryClient } from './queryClient';
2
+ import { MutationObserverOptions, MutationObserverResult, DefaultError } from './types';
3
+
4
+ export declare class MutationObserver<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
5
+ private client;
6
+ private options;
7
+ private mutation;
8
+ private subscribers;
9
+ private currentResult;
10
+ constructor(client: QueryClient, options: MutationObserverOptions<TData, TError, TVariables, TContext>);
11
+ /**
12
+ * 订阅结果变化
13
+ */
14
+ subscribe(callback: (result: MutationObserverResult<TData, TError, TVariables, TContext>) => void): () => void;
15
+ /**
16
+ * 获取当前结果
17
+ */
18
+ getCurrentResult(): MutationObserverResult<TData, TError, TVariables, TContext>;
19
+ /**
20
+ * 设置选项
21
+ */
22
+ setOptions(options: MutationObserverOptions<TData, TError, TVariables, TContext>): void;
23
+ /**
24
+ * 执行 Mutation
25
+ */
26
+ mutate(variables: TVariables, options?: any): Promise<TData>;
27
+ /**
28
+ * 创建 Mutation
29
+ */
30
+ private createMutation;
31
+ /**
32
+ * 创建初始结果
33
+ */
34
+ private createInitialResult;
35
+ /**
36
+ * 创建结果对象
37
+ */
38
+ private createResult;
39
+ /**
40
+ * 更新结果并通知订阅者
41
+ */
42
+ private updateResult;
43
+ }
@@ -0,0 +1,27 @@
1
+ import { QueryClient } from './queryClient';
2
+ import { QueryObserverOptions, QueryObserverResult, QueriesObserverOptions } from './types';
3
+
4
+ export declare class QueriesObserver<TCombinedResult = unknown> {
5
+ private client;
6
+ private options;
7
+ private observers;
8
+ private subscribers;
9
+ private currentResult;
10
+ constructor(client: QueryClient, queries: Array<QueryObserverOptions<any, any, any, any, any>>, options?: QueriesObserverOptions<TCombinedResult>);
11
+ /**
12
+ * 订阅结果变化
13
+ */
14
+ subscribe(callback: (result: TCombinedResult) => void): () => void;
15
+ /**
16
+ * 获取乐观结果
17
+ */
18
+ getOptimisticResult(queries: Array<QueryObserverOptions<any, any, any, any, any>>, combine?: (result: Array<QueryObserverResult>) => TCombinedResult): [Array<QueryObserverResult>, (result: Array<QueryObserverResult>) => TCombinedResult];
19
+ /**
20
+ * 设置查询
21
+ */
22
+ setQueries(queries: Array<QueryObserverOptions<any, any, any, any, any>>, options?: QueriesObserverOptions<TCombinedResult>): void;
23
+ /**
24
+ * 获取组合结果
25
+ */
26
+ private getCombinedResult;
27
+ }
@@ -0,0 +1,40 @@
1
+ import { Query, QueryFilters, QueryKey, DefaultError } from './types';
2
+
3
+ export declare class QueryCache {
4
+ private queries;
5
+ constructor();
6
+ /**
7
+ * 添加查询
8
+ */
9
+ add(query: Query): void;
10
+ /**
11
+ * 移除查询
12
+ */
13
+ remove(query: Query): void;
14
+ /**
15
+ * 查找查询
16
+ */
17
+ find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(filters: QueryFilters & {
18
+ queryKey: QueryKey;
19
+ }): Query<TQueryFnData, TError, TData> | undefined;
20
+ /**
21
+ * 查找所有匹配的查询
22
+ */
23
+ findAll(filters?: QueryFilters): Array<Query>;
24
+ /**
25
+ * 清除所有查询
26
+ */
27
+ clear(): void;
28
+ /**
29
+ * 订阅缓存变化
30
+ */
31
+ subscribe(listener: () => void): () => void;
32
+ /**
33
+ * 生成查询哈希
34
+ */
35
+ private hashQueryKey;
36
+ /**
37
+ * 匹配查询
38
+ */
39
+ private matchQuery;
40
+ }
@@ -0,0 +1,133 @@
1
+ import { QueryCache } from './queryCache';
2
+ import { MutationCache } from './mutationCache';
3
+ import { QueryKey, MutationKey, Query, QueryFilters, MutationFilters, DefaultError, DefaultOptions, QueryObserverOptions, MutationObserverOptions, FetchQueryOptions, EnsureQueryDataOptions, FetchInfiniteQueryOptions, InfiniteData, InvalidateQueryFilters, RefetchQueryFilters, RefetchOptions, CancelOptions, ResetOptions, SetDataOptions, Updater, QueryState, Mutation } from './types';
4
+
5
+ export interface QueryClientConfig {
6
+ queryCache?: QueryCache;
7
+ mutationCache?: MutationCache;
8
+ defaultOptions?: DefaultOptions;
9
+ }
10
+ export declare class QueryClient {
11
+ queryCache: QueryCache;
12
+ mutationCache: MutationCache;
13
+ defaultOptions: DefaultOptions;
14
+ constructor(config?: QueryClientConfig);
15
+ /**
16
+ * 挂载(uni-app 不需要特殊处理)
17
+ */
18
+ mount(): void;
19
+ /**
20
+ * 卸载
21
+ */
22
+ unmount(): void;
23
+ /**
24
+ * 获取查询数据
25
+ */
26
+ getQueryData<TData = unknown>(queryKey: QueryKey): TData | undefined;
27
+ /**
28
+ * 设置查询数据
29
+ */
30
+ setQueryData<TData>(queryKey: QueryKey, updater: Updater<TData | undefined, TData | undefined>, options?: SetDataOptions): TData | undefined;
31
+ /**
32
+ * 设置多个查询数据
33
+ */
34
+ setQueriesData<TData>(filters: QueryFilters, updater: Updater<TData | undefined, TData | undefined>, options?: SetDataOptions): Array<[QueryKey, TData | undefined]>;
35
+ /**
36
+ * 获取查询状态
37
+ */
38
+ getQueryState<TData = unknown, TError = DefaultError>(queryKey: QueryKey): QueryState<TData, TError> | undefined;
39
+ /**
40
+ * 获取多个查询数据
41
+ */
42
+ getQueriesData<TData = unknown>(filters: QueryFilters): Array<[QueryKey, TData | undefined]>;
43
+ /**
44
+ * 获取查询
45
+ */
46
+ getQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(queryKey: QueryKey): Query<TQueryFnData, TError, TData> | undefined;
47
+ /**
48
+ * 获取所有查询
49
+ */
50
+ getQueries(filters?: QueryFilters): Array<Query>;
51
+ /**
52
+ * 获取所有 Mutations
53
+ */
54
+ getMutations(filters?: MutationFilters): Array<Mutation>;
55
+ /**
56
+ * 判断是否正在获取
57
+ */
58
+ isFetching(filters?: QueryFilters): number;
59
+ /**
60
+ * 判断是否正在执行 Mutation
61
+ */
62
+ isMutating(filters?: MutationFilters): number;
63
+ /**
64
+ * 获取默认查询选项
65
+ */
66
+ defaultQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> & {
67
+ _defaulted: true;
68
+ };
69
+ /**
70
+ * 获取默认 Mutation 选项
71
+ */
72
+ defaultMutationOptions<TData, TError, TVariables, TContext>(options: MutationObserverOptions<TData, TError, TVariables, TContext>): MutationObserverOptions<TData, TError, TVariables, TContext>;
73
+ /**
74
+ * 设置默认选项
75
+ */
76
+ setDefaultOptions(options: DefaultOptions): void;
77
+ /**
78
+ * 设置查询默认值
79
+ */
80
+ setQueryDefaults<TQueryFnData, TError, TData, TQueryData>(queryKey: QueryKey, options: Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData>, 'queryKey'>): void;
81
+ /**
82
+ * 获取查询默认值
83
+ */
84
+ getQueryDefaults(queryKey: QueryKey): Omit<QueryObserverOptions<any, any, any, any, any>, 'queryKey'>;
85
+ /**
86
+ * 设置 Mutation 默认值
87
+ */
88
+ setMutationDefaults<TData, TError, TVariables, TContext>(mutationKey: MutationKey, options: MutationObserverOptions<TData, TError, TVariables, TContext>): void;
89
+ /**
90
+ * 获取 Mutation 默认值
91
+ */
92
+ getMutationDefaults(mutationKey: MutationKey): MutationObserverOptions<any, any, any, any>;
93
+ /**
94
+ * 获取查询数据(确保存在)
95
+ */
96
+ ensureQueryData<TQueryFnData, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: EnsureQueryDataOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<TData>;
97
+ /**
98
+ * 获取查询
99
+ */
100
+ fetchQuery<TQueryFnData, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<TData>;
101
+ /**
102
+ * 预取查询
103
+ */
104
+ prefetchQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;
105
+ /**
106
+ * 获取无限查询
107
+ */
108
+ fetchInfiniteQuery<TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<InfiniteData<TData, TPageParam>>;
109
+ /**
110
+ * 预取无限查询
111
+ */
112
+ prefetchInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<void>;
113
+ /**
114
+ * 移除查询
115
+ */
116
+ removeQueries(filters?: QueryFilters): void;
117
+ /**
118
+ * 重置查询
119
+ */
120
+ resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void>;
121
+ /**
122
+ * 取消查询
123
+ */
124
+ cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>;
125
+ /**
126
+ * 使查询失效
127
+ */
128
+ invalidateQueries(filters?: InvalidateQueryFilters, options?: any): Promise<void>;
129
+ /**
130
+ * 重新获取查询
131
+ */
132
+ refetchQueries(filters?: RefetchQueryFilters, options?: RefetchOptions): Promise<void>;
133
+ }
@@ -0,0 +1,67 @@
1
+ import { QueryClient } from './queryClient';
2
+ import { QueryKey, Query, QueryObserverResult, DefaultError, DefaultedQueryObserverOptions } from './types';
3
+
4
+ export declare class QueryObserver<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
5
+ private client;
6
+ private options;
7
+ private query;
8
+ private subscribers;
9
+ private currentResult;
10
+ constructor(client: QueryClient, options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>);
11
+ /**
12
+ * 创建查询对象
13
+ */
14
+ private createQuery;
15
+ /**
16
+ * 判断是否应该获取数据
17
+ */
18
+ private shouldFetch;
19
+ /**
20
+ * 订阅结果变化
21
+ */
22
+ subscribe(callback: (result: QueryObserverResult<TData, TError>) => void): () => void;
23
+ /**
24
+ * 获取当前结果
25
+ */
26
+ getCurrentResult(): QueryObserverResult<TData, TError>;
27
+ /**
28
+ * 获取乐观结果
29
+ */
30
+ getOptimisticResult(options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): QueryObserverResult<TData, TError>;
31
+ /**
32
+ * 获取当前查询
33
+ */
34
+ getCurrentQuery(): Query<TQueryFnData, TError, TData> | undefined;
35
+ /**
36
+ * 设置选项
37
+ */
38
+ setOptions(options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): void;
39
+ /**
40
+ * 获取乐观结果(用于 suspense)
41
+ */
42
+ fetchOptimistic(options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): Promise<QueryObserverResult<TData, TError>>;
43
+ /**
44
+ * 获取数据
45
+ */
46
+ fetch(): Promise<QueryObserverResult<TData, TError>>;
47
+ /**
48
+ * 创建结果对象
49
+ */
50
+ private createResult;
51
+ /**
52
+ * 创建初始状态
53
+ */
54
+ private createInitialState;
55
+ /**
56
+ * 判断是否过期
57
+ */
58
+ private isStale;
59
+ /**
60
+ * 更新结果并通知订阅者
61
+ */
62
+ private updateResult;
63
+ /**
64
+ * 重新获取
65
+ */
66
+ refetch(options?: any): Promise<QueryObserverResult<TData, TError>>;
67
+ }
@@ -0,0 +1,236 @@
1
+ /**
2
+ * query-core 基础类型定义
3
+ */
4
+ export type QueryKey = readonly unknown[];
5
+ export type MutationKey = readonly unknown[];
6
+ export type DefaultError = Error;
7
+ export type QueryStatus = 'pending' | 'error' | 'success';
8
+ export type FetchStatus = 'fetching' | 'paused' | 'idle';
9
+ export interface QueryState<TData = unknown, TError = DefaultError> {
10
+ data: TData | undefined;
11
+ dataUpdatedAt: number;
12
+ error: TError | null;
13
+ errorUpdatedAt: number;
14
+ errorUpdateCount: number;
15
+ failureCount: number;
16
+ failureReason: TError | null;
17
+ fetchFailureCount: number;
18
+ fetchFailureReason: TError | null;
19
+ fetchMeta: any;
20
+ isInvalidated: boolean;
21
+ status: QueryStatus;
22
+ fetchStatus: FetchStatus;
23
+ }
24
+ export interface QueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
25
+ queryKey: TQueryKey;
26
+ queryFn: (context: {
27
+ queryKey: TQueryKey;
28
+ signal?: AbortSignal;
29
+ meta?: any;
30
+ }) => Promise<TQueryFnData>;
31
+ enabled?: boolean;
32
+ staleTime?: number;
33
+ gcTime?: number;
34
+ retry?: number | boolean | ((failureCount: number, error: TError) => boolean);
35
+ retryDelay?: number | ((attemptIndex: number) => number);
36
+ refetchOnMount?: boolean | 'always';
37
+ refetchOnWindowFocus?: boolean;
38
+ refetchInterval?: number | false;
39
+ refetchIntervalInBackground?: boolean;
40
+ select?: (data: TQueryFnData) => TData;
41
+ placeholderData?: TData | (() => TData | undefined);
42
+ initialData?: TData | (() => TData | undefined);
43
+ initialDataUpdatedAt?: number | (() => number | undefined);
44
+ meta?: any;
45
+ _defaulted?: boolean;
46
+ _optimisticResults?: 'optimistic' | 'isRestoring';
47
+ }
48
+ export interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
49
+ notifyOnChangeProps?: Array<keyof QueryObserverResult<TData, TError>> | 'all';
50
+ throwOnError?: boolean | ((error: TError, query: Query<TQueryFnData, TError>) => boolean);
51
+ }
52
+ export interface QueryObserverResult<TData = unknown, TError = DefaultError> {
53
+ data: TData | undefined;
54
+ dataUpdatedAt: number;
55
+ error: TError | null;
56
+ errorUpdatedAt: number;
57
+ errorUpdateCount: number;
58
+ failureCount: number;
59
+ failureReason: TError | null;
60
+ fetchFailureCount: number;
61
+ fetchFailureReason: TError | null;
62
+ fetchStatus: FetchStatus;
63
+ isError: boolean;
64
+ isFetched: boolean;
65
+ isFetchedAfterMount: boolean;
66
+ isFetching: boolean;
67
+ isInitialLoading: boolean;
68
+ isLoading: boolean;
69
+ isLoadingError: boolean;
70
+ isPaused: boolean;
71
+ isPlaceholderData: boolean;
72
+ isRefetchError: boolean;
73
+ isRefetching: boolean;
74
+ isStale: boolean;
75
+ isSuccess: boolean;
76
+ refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<TData, TError>>;
77
+ status: QueryStatus;
78
+ }
79
+ export interface DefinedQueryObserverResult<TData = unknown, TError = DefaultError> extends QueryObserverResult<TData, TError> {
80
+ data: TData;
81
+ status: 'success';
82
+ }
83
+ export interface Query<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData> {
84
+ queryKey: QueryKey;
85
+ queryHash: string;
86
+ state: QueryState<TData, TError>;
87
+ options: QueryOptions<TQueryFnData, TError, TData>;
88
+ }
89
+ export interface MutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
90
+ mutationFn: (variables: TVariables) => Promise<TData>;
91
+ mutationKey?: MutationKey;
92
+ onMutate?: (variables: TVariables) => Promise<TContext> | TContext;
93
+ onSuccess?: (data: TData, variables: TVariables, context?: TContext) => void | Promise<void>;
94
+ onError?: (error: TError, variables: TVariables, context?: TContext) => void | Promise<void>;
95
+ onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context?: TContext) => void | Promise<void>;
96
+ retry?: number | boolean | ((failureCount: number, error: TError) => boolean);
97
+ retryDelay?: number | ((attemptIndex: number) => number);
98
+ gcTime?: number;
99
+ meta?: any;
100
+ }
101
+ export interface MutationObserverOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationOptions<TData, TError, TVariables, TContext> {
102
+ throwOnError?: boolean | ((error: TError, variables: TVariables) => boolean);
103
+ }
104
+ export interface MutationObserverResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
105
+ data: TData | undefined;
106
+ error: TError | null;
107
+ failureCount: number;
108
+ failureReason: TError | null;
109
+ isError: boolean;
110
+ isIdle: boolean;
111
+ isPaused: boolean;
112
+ isLoading: boolean;
113
+ isSuccess: boolean;
114
+ mutate: (variables: TVariables, options?: any) => void;
115
+ mutateAsync: (variables: TVariables, options?: any) => Promise<TData>;
116
+ reset: () => void;
117
+ status: 'idle' | 'loading' | 'error' | 'success';
118
+ variables: TVariables | undefined;
119
+ context: TContext | undefined;
120
+ }
121
+ export type MutationState = MutationObserverResult;
122
+ export interface Mutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
123
+ mutationId: number;
124
+ options: MutationObserverOptions<TData, TError, TVariables, TContext>;
125
+ state: MutationObserverResult<TData, TError, TVariables, TContext>;
126
+ }
127
+ export interface InfiniteData<TData = unknown, TPageParam = unknown> {
128
+ pages: TData[];
129
+ pageParams: TPageParam[];
130
+ }
131
+ export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
132
+ initialPageParam: TPageParam;
133
+ getNextPageParam: (lastPage: TQueryFnData, allPages: TQueryFnData[]) => TPageParam | undefined;
134
+ getPreviousPageParam?: (firstPage: TQueryFnData, allPages: TQueryFnData[]) => TPageParam | undefined;
135
+ maxPages?: number;
136
+ }
137
+ export interface InfiniteQueryObserverResult<TData = unknown, TError = DefaultError> extends QueryObserverResult<TData, TError> {
138
+ fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
139
+ fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
140
+ hasNextPage: boolean;
141
+ hasPreviousPage: boolean;
142
+ isFetchingNextPage: boolean;
143
+ isFetchingPreviousPage: boolean;
144
+ }
145
+ export interface FetchNextPageOptions extends RefetchOptions {
146
+ }
147
+ export interface FetchPreviousPageOptions extends RefetchOptions {
148
+ }
149
+ export interface RefetchOptions {
150
+ cancelRefetch?: boolean;
151
+ throwOnError?: boolean;
152
+ }
153
+ export interface QueryFilters {
154
+ queryKey?: QueryKey;
155
+ exact?: boolean;
156
+ predicate?: (query: Query) => boolean;
157
+ type?: 'active' | 'inactive' | 'all';
158
+ stale?: boolean;
159
+ fetchStatus?: FetchStatus;
160
+ }
161
+ export interface MutationFilters {
162
+ mutationKey?: MutationKey;
163
+ exact?: boolean;
164
+ predicate?: (mutation: Mutation) => boolean;
165
+ status?: 'pending' | 'error' | 'success' | 'idle';
166
+ }
167
+ export interface InvalidateQueryFilters extends QueryFilters {
168
+ refetchType?: 'active' | 'inactive' | 'all' | 'none';
169
+ }
170
+ export interface RefetchQueryFilters extends QueryFilters {
171
+ type?: 'active' | 'inactive' | 'all';
172
+ }
173
+ export interface CancelOptions {
174
+ revert?: boolean;
175
+ }
176
+ export interface ResetOptions {
177
+ queryFilters?: QueryFilters;
178
+ mutationFilters?: MutationFilters;
179
+ }
180
+ export interface SetDataOptions {
181
+ updatedAt?: number;
182
+ }
183
+ export type Updater<TInput, TOutput> = TOutput | ((input: TInput) => TOutput);
184
+ export interface FetchQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
185
+ }
186
+ export interface EnsureQueryDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey> {
187
+ }
188
+ export interface FetchInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> {
189
+ }
190
+ export interface InvalidateOptions {
191
+ refetchType?: 'active' | 'inactive' | 'all' | 'none';
192
+ }
193
+ export interface DefaultOptions<TError = DefaultError> {
194
+ queries?: Omit<QueryObserverOptions<unknown, TError>, 'queryKey'>;
195
+ mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>;
196
+ }
197
+ export interface DehydrateOptions {
198
+ shouldDehydrateQuery?: (query: Query) => boolean;
199
+ shouldDehydrateMutation?: (mutation: Mutation) => boolean;
200
+ }
201
+ export interface HydrateOptions {
202
+ defaultOptions?: DefaultOptions;
203
+ }
204
+ export type QueryFunction<TQueryFnData = unknown, TQueryKey extends QueryKey = QueryKey> = (context: {
205
+ queryKey: TQueryKey;
206
+ signal?: AbortSignal;
207
+ meta?: any;
208
+ }) => Promise<TQueryFnData>;
209
+ export type DataTag<TQueryKey extends QueryKey, TData, TError> = TQueryKey & {
210
+ __queryKey: TQueryKey;
211
+ __queryData: TData;
212
+ __queryError: TError;
213
+ };
214
+ export type InferDataFromTag<TData, TTaggedQueryKey extends QueryKey> = TTaggedQueryKey extends DataTag<any, infer TInferredData, any> ? TInferredData : TData;
215
+ export type InferErrorFromTag<TError, TTaggedQueryKey extends QueryKey> = TTaggedQueryKey extends DataTag<any, any, infer TInferredError> ? TInferredError : TError;
216
+ export type NoInfer<T> = [T][T extends any ? 0 : never];
217
+ export type OmitKeyof<T, K extends keyof T> = Omit<T, K>;
218
+ export type WithRequired<T, K extends keyof T> = T & Required<Pick<T, K>>;
219
+ export type NonUndefinedGuard<T> = T extends undefined ? never : T;
220
+ export type Enabled<TQueryFnData, TError, TQueryData, TQueryKey> = boolean;
221
+ export type InitialDataFunction<TQueryFnData> = () => TQueryFnData;
222
+ export type ThrowOnError<TError = DefaultError, TQuery = any> = boolean | ((error: TError, query: TQuery) => boolean);
223
+ export type DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey> = QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> & {
224
+ _defaulted: true;
225
+ };
226
+ export interface QueriesObserverOptions<TCombinedResult = unknown> {
227
+ queries: Array<QueryObserverOptions>;
228
+ combine?: (result: Array<QueryObserverResult>) => TCombinedResult;
229
+ }
230
+ export type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;
231
+ export type MutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
232
+ export interface MutateOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
233
+ onSuccess?: (data: TData, variables: TVariables, context?: TContext) => void | Promise<void>;
234
+ onError?: (error: TError, variables: TVariables, context?: TContext) => void | Promise<void>;
235
+ onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context?: TContext) => void | Promise<void>;
236
+ }
@@ -0,0 +1,10 @@
1
+ import { QueryKey } from './types';
2
+
3
+ /**
4
+ * 生成查询键的哈希
5
+ */
6
+ export declare function hashQueryKey(queryKey: QueryKey): string;
7
+ /**
8
+ * 判断是否应该抛出错误
9
+ */
10
+ export declare function shouldThrowError<TError>(throwOnError: boolean | ((error: TError, query: any) => boolean) | undefined, params: [error: TError, query: any]): boolean;