Skip to content

Commit 51d30b9

Browse files
committed
feat: sync
1 parent be5d424 commit 51d30b9

File tree

3 files changed

+86
-19
lines changed

3 files changed

+86
-19
lines changed

packages/use-request/src/plugins/useThrottlePlugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const useThrottlePlugin: UseRequestPlugin<unknown, unknown[]> = (
5252
}
5353

5454
return {
55-
name: 'throttlePlugin',
55+
name: "throttlePlugin",
5656
onCancel: () => {
5757
throttledRef.value?.cancel()
5858
},

packages/use-request/src/types.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,12 @@ export interface UseRequestPlugin<TData, TParams extends unknown[] = unknown[],
283283
) => Partial<UseRequestFetchState<TData, TParams>>
284284
}
285285

286-
export interface useRequestResult<TData, TParams extends unknown[]> {
286+
export interface useRequestResult<
287+
TData,
288+
TParams extends unknown[],
289+
FormatResult = any,
290+
Initial = any
291+
> {
287292
/**
288293
* Is the service being executed.
289294
*/
@@ -292,7 +297,17 @@ export interface useRequestResult<TData, TParams extends unknown[]> {
292297
/**
293298
* Data returned by service.
294299
*/
295-
data: Readonly<Ref<TData | undefined>>
300+
data: Readonly<
301+
Ref<
302+
FormatResult extends false
303+
? Initial extends false
304+
? TData | undefined
305+
: TData
306+
: FormatResult extends (...args: any[]) => any
307+
? ReturnType<FormatResult> | undefined
308+
: FormatResult | undefined
309+
>
310+
>
296311

297312
/**
298313
* Exception thrown by service.

packages/use-request/src/useRequest.ts

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { withArgs } from './utils/resolve-args'
2323
export type PluginsMiddleOptionsType<
2424
PluginsOptions,
2525
TData,
26-
TParams extends unknown[] = unknown[]
26+
TParams extends unknown[] = unknown[],
2727
> = PluginsOptions extends (infer P)[]
2828
? P extends UseRequestPlugin<TData, TParams, infer R>
2929
? R
@@ -34,8 +34,11 @@ export type PluginsMiddleOptionsType<
3434
export function useRequest<
3535
TData,
3636
TParams extends unknown[] = unknown[],
37-
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<TData, TParams>[],
38-
SR = any
37+
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<
38+
TData,
39+
TParams
40+
>[],
41+
SR = any,
3942
>(
4043
service: UseRequestService<SR, TParams>,
4144
options: UseRequestOptionsWithFormatResult<
@@ -46,14 +49,31 @@ export function useRequest<
4649
> &
4750
UseRequestOptionsWithInitialData<SR, TParams, PluginsOptions>,
4851
plugins?: PluginsOptions,
49-
): useRequestResult<TData, TParams>
52+
): useRequestResult<
53+
TData,
54+
TParams,
55+
UseRequestOptionsWithFormatResult<
56+
TData,
57+
TParams,
58+
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>,
59+
SR
60+
>['formatResult'],
61+
UseRequestOptionsWithInitialData<
62+
TData,
63+
TParams,
64+
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>
65+
>['initialData']
66+
>
5067

5168
// 只有 formatResult
5269
export function useRequest<
5370
TData,
5471
TParams extends unknown[] = unknown[],
55-
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<TData, TParams>[],
56-
SR = any
72+
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<
73+
TData,
74+
TParams
75+
>[],
76+
SR = any,
5777
>(
5878
service: UseRequestService<SR, TParams>,
5979
options: UseRequestOptionsWithFormatResult<
@@ -63,13 +83,26 @@ export function useRequest<
6383
SR
6484
>,
6585
plugins?: PluginsOptions,
66-
): useRequestResult<TData, TParams>
86+
): useRequestResult<
87+
TData,
88+
TParams,
89+
UseRequestOptionsWithFormatResult<
90+
TData,
91+
TParams,
92+
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>,
93+
SR
94+
>['formatResult'],
95+
false
96+
>
6797

6898
// 只有 initialData
6999
export function useRequest<
70100
TData,
71101
TParams extends unknown[] = unknown[],
72-
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<TData, TParams>[]
102+
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<
103+
TData,
104+
TParams
105+
>[],
73106
>(
74107
service: UseRequestService<TData, TParams>,
75108
options: UseRequestOptionsWithInitialData<
@@ -78,13 +111,25 @@ export function useRequest<
78111
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>
79112
>,
80113
plugins?: PluginsOptions,
81-
): useRequestResult<TData, TParams>
114+
): useRequestResult<
115+
TData,
116+
TParams,
117+
false,
118+
UseRequestOptionsWithInitialData<
119+
TData,
120+
TParams,
121+
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>
122+
>['initialData']
123+
>
82124

83125
// 无 formatResults 和 initialData
84126
export function useRequest<
85127
TData,
86128
TParams extends unknown[] = unknown[],
87-
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<TData, TParams>[]
129+
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<
130+
TData,
131+
TParams
132+
>[],
88133
>(
89134
service: UseRequestService<TData, TParams>,
90135
options?: UseRequestOptions<
@@ -93,12 +138,15 @@ export function useRequest<
93138
PluginsMiddleOptionsType<PluginsOptions, TData, TParams>
94139
>,
95140
plugins?: PluginsOptions,
96-
): useRequestResult<TData, TParams>
141+
): useRequestResult<TData, TParams, false, false>
97142

98143
export function useRequest<
99144
TData,
100145
TParams extends unknown[] = unknown[],
101-
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<TData, TParams>[]
146+
PluginsOptions extends UseRequestPlugin<TData, TParams>[] = UseRequestPlugin<
147+
TData,
148+
TParams
149+
>[],
102150
>(
103151
service: UseRequestService<TData, TParams>,
104152
options?: UseRequestOptions<
@@ -120,10 +168,14 @@ export function useRequest<
120168
useRetryPlugin,
121169
]?.filter(Boolean)
122170

123-
return withArgs<TData, TParams>(useRequestImplement, options?.use)(service, options, [
124-
...(plugins || []),
125-
...BuiltInPlugins,
126-
] as UseRequestPlugin<TData, TParams>[])
171+
return withArgs<TData, TParams>(useRequestImplement, options?.use)(
172+
service,
173+
options,
174+
[...(plugins || []), ...BuiltInPlugins] as UseRequestPlugin<
175+
TData,
176+
TParams
177+
>[],
178+
)
127179
}
128180

129181
export default useRequest

0 commit comments

Comments
 (0)