soda-tanstack-query 0.0.6 → 0.0.7
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.
|
@@ -27,17 +27,26 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
27
27
|
createUseQuery: ()=>createUseQuery
|
|
28
28
|
});
|
|
29
29
|
const react_query_namespaceObject = require("@tanstack/react-query");
|
|
30
|
-
function createUseQuery(
|
|
31
|
-
|
|
30
|
+
function createUseQuery(params, client) {
|
|
31
|
+
const { queryFn, queryKey, ...rest } = params;
|
|
32
|
+
const useRequest = function(params2, options, client2 = client) {
|
|
32
33
|
return (0, react_query_namespaceObject.useQuery)({
|
|
33
34
|
queryKey: [
|
|
34
35
|
queryKey,
|
|
35
|
-
|
|
36
|
+
params2
|
|
36
37
|
],
|
|
37
|
-
queryFn: ()=>queryFn(
|
|
38
|
+
queryFn: ()=>queryFn(params2),
|
|
38
39
|
...rest,
|
|
39
40
|
...options
|
|
40
|
-
},
|
|
41
|
+
}, client2);
|
|
42
|
+
};
|
|
43
|
+
useRequest.refine = function(params2, client2) {
|
|
44
|
+
params2 = "function" == typeof params2 ? params2(params, client) : params2;
|
|
45
|
+
client2 = "function" == typeof client2 ? client2(params, client) : client2;
|
|
46
|
+
return createUseQuery({
|
|
47
|
+
...params,
|
|
48
|
+
...params2
|
|
49
|
+
}, client2 ?? client);
|
|
41
50
|
};
|
|
42
51
|
}
|
|
43
52
|
exports.createUseQuery = __webpack_exports__.createUseQuery;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefinedInitialDataOptions, DefinedUseQueryResult, QueryClient, UndefinedInitialDataOptions, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
2
|
-
import { IsParamRequired, StrictPartial } from "soda-type";
|
|
2
|
+
import { Assign, IsParamRequired, StrictPartial } from "soda-type";
|
|
3
3
|
/** 参数必须的 useQuery */
|
|
4
4
|
interface _UseQueryWithParams<TFn extends (params: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>, TParams = Parameters<TFn>[0], TResponse = Awaited<ReturnType<TFn>>> {
|
|
5
5
|
<TData = TInitSelectData>(params: TParams): UseQueryResult<NoInfer<TData>, Error>;
|
|
@@ -19,7 +19,12 @@ interface _UseQueryWithOptionalParams<TFn extends (params?: any) => any, TInitSe
|
|
|
19
19
|
export interface UseQueryWithOptionalParams<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> extends _UseQueryWithOptionalParams<TFn, TInitSelectData> {
|
|
20
20
|
}
|
|
21
21
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
22
|
-
|
|
22
|
+
type _UseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = IsParamRequired<TFn> extends true ? UseQueryWithParams<TFn, TInitSelectData> : UseQueryWithOptionalParams<TFn, TInitSelectData>;
|
|
23
|
+
export type UseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQuery<TFn, TInitSelectData> & {
|
|
24
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
25
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
26
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
27
|
+
};
|
|
23
28
|
/** 传递了初始化参数的 createUseQuery 参数 */
|
|
24
29
|
interface _CreateUseQueryDefinedInitialDataParams<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>, TParams = Parameters<TFn>[0], TResponse = Awaited<ReturnType<TFn>>> extends Omit<DefinedInitialDataOptions<TResponse, Error, TInitSelectData, [string, TParams]>, "queryKey" | "queryFn"> {
|
|
25
30
|
queryFn: TFn;
|
|
@@ -40,7 +45,12 @@ interface _UseQueryDefinedInitialDataWithOptionalParams<TFn extends (params?: an
|
|
|
40
45
|
export interface UseQueryDefinedInitialDataWithOptionalParams<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> extends _UseQueryDefinedInitialDataWithOptionalParams<TFn, TInitSelectData> {
|
|
41
46
|
}
|
|
42
47
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
43
|
-
export type
|
|
48
|
+
export type _UseQueryDefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = IsParamRequired<TFn> extends true ? UseQueryDefinedInitialDataWithParams<TFn, TInitSelectData> : UseQueryDefinedInitialDataWithOptionalParams<TFn, TInitSelectData>;
|
|
49
|
+
export type UseQueryDefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQueryDefinedInitialData<TFn, TInitSelectData> & {
|
|
50
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
51
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
52
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
53
|
+
};
|
|
44
54
|
/** 未传递初始化参数的 createUseQuery 参数 */
|
|
45
55
|
interface _CreateUseQueryUndefinedInitialDataParams<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>, TParams = Parameters<TFn>[0], TResponse = Awaited<ReturnType<TFn>>> extends Omit<UndefinedInitialDataOptions<TResponse, Error, TInitSelectData, [string, TParams]>, "queryKey" | "queryFn"> {
|
|
46
56
|
queryFn: TFn;
|
|
@@ -61,14 +71,20 @@ interface _UseQueryUndefinedInitialDataWithOptionalParams<TFn extends (params: a
|
|
|
61
71
|
export interface UseQueryUndefinedInitialDataWithOptionalParams<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> extends _UseQueryUndefinedInitialDataWithOptionalParams<TFn, TInitSelectData> {
|
|
62
72
|
}
|
|
63
73
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
64
|
-
|
|
74
|
+
type _UseQueryUndefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = IsParamRequired<TFn> extends true ? UseQueryUndefinedInitialDataWithParams<TFn, TInitSelectData> : UseQueryUndefinedInitialDataWithOptionalParams<TFn, TInitSelectData>;
|
|
75
|
+
export type UseQueryUndefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQueryUndefinedInitialData<TFn, TInitSelectData> & {
|
|
76
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
77
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
78
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams), client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined)): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>;
|
|
79
|
+
};
|
|
65
80
|
interface _CreateUseQueryParams<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>, TParams = Parameters<TFn>[0], TResponse = Awaited<ReturnType<TFn>>> extends Omit<UseQueryOptions<TResponse, Error, TInitSelectData, [string, TParams]>, "queryKey" | "queryFn"> {
|
|
66
81
|
queryFn: TFn;
|
|
67
82
|
queryKey: string;
|
|
68
83
|
}
|
|
69
84
|
export interface CreateUseQueryParams<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> extends _CreateUseQueryParams<TFn, TInitSelectData> {
|
|
70
85
|
}
|
|
71
|
-
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData
|
|
72
|
-
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(pararm: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData
|
|
73
|
-
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(pararm: CreateUseQueryParams<TFn, TInitSelectData
|
|
86
|
+
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient): UseQueryDefinedInitialData<TFn, TInitSelectData>;
|
|
87
|
+
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(pararm: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient): UseQueryUndefinedInitialData<TFn, TInitSelectData>;
|
|
88
|
+
export declare function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(pararm: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient): UseQuery<TFn, TInitSelectData>;
|
|
89
|
+
export type GetHookFromParams<Params> = Params extends CreateUseQueryDefinedInitialDataParams<infer TFn, infer TInitSelectData> ? UseQueryDefinedInitialData<TFn, TInitSelectData> : Params extends CreateUseQueryUndefinedInitialDataParams<infer TFn, infer TInitSelectData> ? UseQueryUndefinedInitialData<TFn, TInitSelectData> : Params extends CreateUseQueryParams<infer TFn, infer TInitSelectData> ? UseQuery<TFn, TInitSelectData> : never;
|
|
74
90
|
export {};
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
function createUseQuery(
|
|
3
|
-
|
|
2
|
+
function createUseQuery(params, client) {
|
|
3
|
+
const { queryFn, queryKey, ...rest } = params;
|
|
4
|
+
const useRequest = function(params2, options, client2 = client) {
|
|
4
5
|
return useQuery({
|
|
5
6
|
queryKey: [
|
|
6
7
|
queryKey,
|
|
7
|
-
|
|
8
|
+
params2
|
|
8
9
|
],
|
|
9
|
-
queryFn: ()=>queryFn(
|
|
10
|
+
queryFn: ()=>queryFn(params2),
|
|
10
11
|
...rest,
|
|
11
12
|
...options
|
|
12
|
-
},
|
|
13
|
+
}, client2);
|
|
14
|
+
};
|
|
15
|
+
useRequest.refine = function(params2, client2) {
|
|
16
|
+
params2 = "function" == typeof params2 ? params2(params, client) : params2;
|
|
17
|
+
client2 = "function" == typeof client2 ? client2(params, client) : client2;
|
|
18
|
+
return createUseQuery({
|
|
19
|
+
...params,
|
|
20
|
+
...params2
|
|
21
|
+
}, client2 ?? client);
|
|
13
22
|
};
|
|
14
23
|
}
|
|
15
24
|
export { createUseQuery };
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
UseQueryOptions,
|
|
8
8
|
UseQueryResult,
|
|
9
9
|
} from "@tanstack/react-query"
|
|
10
|
-
import { IsParamRequired, StrictPartial } from "soda-type"
|
|
10
|
+
import { Assign, IsParamRequired, StrictPartial } from "soda-type"
|
|
11
11
|
|
|
12
12
|
// 要在第一个加一个重载,因为 options 是可选的,如果不加这个重载,options 类型会匹配到 DefinedInitialDataOptions,会误认为 initialData 被传递了,造成返回类型必定不为 undefined
|
|
13
13
|
|
|
@@ -72,9 +72,24 @@ export interface UseQueryWithOptionalParams<TFn extends (params?: any) => any, T
|
|
|
72
72
|
> {}
|
|
73
73
|
|
|
74
74
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
75
|
-
|
|
75
|
+
type _UseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> =
|
|
76
76
|
IsParamRequired<TFn> extends true ? UseQueryWithParams<TFn, TInitSelectData> : UseQueryWithOptionalParams<TFn, TInitSelectData>
|
|
77
77
|
|
|
78
|
+
export type UseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQuery<TFn, TInitSelectData> & {
|
|
79
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
80
|
+
params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
81
|
+
client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
82
|
+
): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>
|
|
83
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
84
|
+
params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
85
|
+
client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
86
|
+
): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>
|
|
87
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
88
|
+
params: TRefineParams | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
89
|
+
client?: QueryClient | ((params: CreateUseQueryParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
90
|
+
): GetHookFromParams<Assign<CreateUseQueryParams<TFn, TInitSelectData>, TRefineParams>>
|
|
91
|
+
}
|
|
92
|
+
|
|
78
93
|
/** 传递了初始化参数的 createUseQuery 参数 */
|
|
79
94
|
interface _CreateUseQueryDefinedInitialDataParams<
|
|
80
95
|
TFn extends (param: any) => any,
|
|
@@ -130,11 +145,29 @@ export interface UseQueryDefinedInitialDataWithOptionalParams<
|
|
|
130
145
|
> extends _UseQueryDefinedInitialDataWithOptionalParams<TFn, TInitSelectData> {}
|
|
131
146
|
|
|
132
147
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
133
|
-
export type
|
|
148
|
+
export type _UseQueryDefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> =
|
|
134
149
|
IsParamRequired<TFn> extends true
|
|
135
150
|
? UseQueryDefinedInitialDataWithParams<TFn, TInitSelectData>
|
|
136
151
|
: UseQueryDefinedInitialDataWithOptionalParams<TFn, TInitSelectData>
|
|
137
152
|
|
|
153
|
+
export type UseQueryDefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQueryDefinedInitialData<
|
|
154
|
+
TFn,
|
|
155
|
+
TInitSelectData
|
|
156
|
+
> & {
|
|
157
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
158
|
+
params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
159
|
+
client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
160
|
+
): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
161
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
162
|
+
params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
163
|
+
client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
164
|
+
): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
165
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
166
|
+
params: TRefineParams | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
167
|
+
client?: QueryClient | ((params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
168
|
+
): GetHookFromParams<Assign<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
169
|
+
}
|
|
170
|
+
|
|
138
171
|
/** 未传递初始化参数的 createUseQuery 参数 */
|
|
139
172
|
interface _CreateUseQueryUndefinedInitialDataParams<
|
|
140
173
|
TFn extends (param: any) => any,
|
|
@@ -190,11 +223,29 @@ export interface UseQueryUndefinedInitialDataWithOptionalParams<
|
|
|
190
223
|
> extends _UseQueryUndefinedInitialDataWithOptionalParams<TFn, TInitSelectData> {}
|
|
191
224
|
|
|
192
225
|
/** 根据参数是否必需,选择不同的 useQuery */
|
|
193
|
-
|
|
226
|
+
type _UseQueryUndefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> =
|
|
194
227
|
IsParamRequired<TFn> extends true
|
|
195
228
|
? UseQueryUndefinedInitialDataWithParams<TFn, TInitSelectData>
|
|
196
229
|
: UseQueryUndefinedInitialDataWithOptionalParams<TFn, TInitSelectData>
|
|
197
230
|
|
|
231
|
+
export type UseQueryUndefinedInitialData<TFn extends (params?: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>> = _UseQueryUndefinedInitialData<
|
|
232
|
+
TFn,
|
|
233
|
+
TInitSelectData
|
|
234
|
+
> & {
|
|
235
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
236
|
+
params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
237
|
+
client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
238
|
+
): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
239
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
240
|
+
params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
241
|
+
client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
242
|
+
): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
243
|
+
refine<TRefineParams extends StrictPartial<CreateUseQueryParams<TFn, TInitSelectData>, "queryKey" | "queryFn">>(
|
|
244
|
+
params: TRefineParams | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => TRefineParams),
|
|
245
|
+
client?: QueryClient | ((params: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, client?: QueryClient) => QueryClient | undefined),
|
|
246
|
+
): GetHookFromParams<Assign<CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>, TRefineParams>>
|
|
247
|
+
}
|
|
248
|
+
|
|
198
249
|
interface _CreateUseQueryParams<
|
|
199
250
|
TFn extends (param: any) => any,
|
|
200
251
|
TInitSelectData = Awaited<ReturnType<TFn>>,
|
|
@@ -213,27 +264,47 @@ export interface CreateUseQueryParams<TFn extends (param: any) => any, TInitSele
|
|
|
213
264
|
// 根据是否传递初始化参数,选择不同的 createUseQuery,目前存在一个问题,UndefinedInitialDataOptions 和 UseQueryOptions 是完全一致的,所以匹配不到第三种可能,但这是 @tanstack/react-query 的问题
|
|
214
265
|
export function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(
|
|
215
266
|
params: CreateUseQueryDefinedInitialDataParams<TFn, TInitSelectData>,
|
|
267
|
+
client?: QueryClient,
|
|
216
268
|
): UseQueryDefinedInitialData<TFn, TInitSelectData>
|
|
217
269
|
export function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(
|
|
218
270
|
pararm: CreateUseQueryUndefinedInitialDataParams<TFn, TInitSelectData>,
|
|
271
|
+
client?: QueryClient,
|
|
219
272
|
): UseQueryUndefinedInitialData<TFn, TInitSelectData>
|
|
220
273
|
export function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(
|
|
221
274
|
pararm: CreateUseQueryParams<TFn, TInitSelectData>,
|
|
275
|
+
client?: QueryClient,
|
|
222
276
|
): UseQuery<TFn, TInitSelectData>
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
277
|
+
|
|
278
|
+
export function createUseQuery<TFn extends (param: any) => any, TInitSelectData = Awaited<ReturnType<TFn>>>(
|
|
279
|
+
params: CreateUseQueryParams<TFn, TInitSelectData>,
|
|
280
|
+
client?: QueryClient,
|
|
281
|
+
): any {
|
|
282
|
+
const { queryFn, queryKey, ...rest } = params
|
|
283
|
+
|
|
284
|
+
const useRequest: any = function useRequest(params2: any, options?: any, client2: QueryClient | undefined = client) {
|
|
229
285
|
return useQuery(
|
|
230
286
|
{
|
|
231
|
-
queryKey: [queryKey,
|
|
232
|
-
queryFn: () => queryFn(
|
|
287
|
+
queryKey: [queryKey, params2],
|
|
288
|
+
queryFn: () => queryFn(params2),
|
|
233
289
|
...rest,
|
|
234
290
|
...options,
|
|
235
291
|
},
|
|
236
|
-
|
|
292
|
+
client2,
|
|
237
293
|
)
|
|
238
294
|
}
|
|
295
|
+
|
|
296
|
+
useRequest.refine = function refine(params2: any, client2?: any) {
|
|
297
|
+
params2 = typeof params2 === "function" ? params2(params, client) : params2
|
|
298
|
+
client2 = typeof client2 === "function" ? client2(params, client) : client2
|
|
299
|
+
return createUseQuery({ ...params, ...params2 }, client2 ?? client)
|
|
300
|
+
}
|
|
239
301
|
}
|
|
302
|
+
|
|
303
|
+
export type GetHookFromParams<Params> =
|
|
304
|
+
Params extends CreateUseQueryDefinedInitialDataParams<infer TFn, infer TInitSelectData>
|
|
305
|
+
? UseQueryDefinedInitialData<TFn, TInitSelectData>
|
|
306
|
+
: Params extends CreateUseQueryUndefinedInitialDataParams<infer TFn, infer TInitSelectData>
|
|
307
|
+
? UseQueryUndefinedInitialData<TFn, TInitSelectData>
|
|
308
|
+
: Params extends CreateUseQueryParams<infer TFn, infer TInitSelectData>
|
|
309
|
+
? UseQuery<TFn, TInitSelectData>
|
|
310
|
+
: never
|