@@ -10,48 +10,104 @@ import useThrottlePlugin from './plugins/useThrottlePlugin'
1010
1111import useRequestImplement from './useRequestImplement'
1212
13- import { UseRequestOptions , UseRequestOptionsWithFormatResult , UseRequestPlugin , useRequestResult , UseRequestService } from './types'
13+ import {
14+ UseRequestOptions ,
15+ UseRequestOptionsWithFormatResult ,
16+ UseRequestOptionsWithInitialData ,
17+ UseRequestPlugin ,
18+ useRequestResult ,
19+ UseRequestService ,
20+ } from './types'
1421import { withArgs } from './utils/resolve-args'
1522
23+ export type PluginsMiddleOptionsType <
24+ PluginsOptions ,
25+ TData ,
26+ TParams extends unknown [ ] = unknown [ ]
27+ > = PluginsOptions extends ( infer P ) [ ]
28+ ? P extends UseRequestPlugin < TData , TParams , infer R >
29+ ? R
30+ : never
31+ : never
1632
17- // 有 formatResult
33+ // 同时存在 formatResult 和 initialData
1834export function useRequest <
1935 TData ,
2036 TParams extends unknown [ ] = unknown [ ] ,
2137 PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ] ,
22- SR = any ,
23- > ( service : UseRequestService < SR , TParams > , options : UseRequestOptionsWithFormatResult < TData , TParams , PluginsOptions extends ( infer P ) [ ]
24- ? P extends UseRequestPlugin < TData , TParams , infer R >
25- ? R
26- : never
27- : never , SR > , plugins ?: PluginsOptions ) : useRequestResult < TData , TParams >
28-
38+ SR = any
39+ > (
40+ service : UseRequestService < SR , TParams > ,
41+ options : UseRequestOptionsWithFormatResult <
42+ TData ,
43+ TParams ,
44+ PluginsMiddleOptionsType < PluginsOptions , TData , TParams > ,
45+ SR
46+ > &
47+ UseRequestOptionsWithInitialData < SR , TParams , PluginsOptions > ,
48+ plugins ?: PluginsOptions ,
49+ ) : useRequestResult < TData , TParams >
2950
30- // 无 formatResults
51+ // 只有 formatResult
3152export function useRequest <
3253 TData ,
3354 TParams extends unknown [ ] = unknown [ ] ,
3455 PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ] ,
35- > ( service : UseRequestService < TData , TParams > , options ?: UseRequestOptions < TData , TParams , PluginsOptions extends ( infer P ) [ ]
36- ? P extends UseRequestPlugin < TData , TParams , infer R >
37- ? R
38- : never
39- : never > , plugins ?: PluginsOptions ) : useRequestResult < TData , TParams >
56+ SR = any
57+ > (
58+ service : UseRequestService < SR , TParams > ,
59+ options : UseRequestOptionsWithFormatResult <
60+ TData ,
61+ TParams ,
62+ PluginsMiddleOptionsType < PluginsOptions , TData , TParams > ,
63+ SR
64+ > ,
65+ plugins ?: PluginsOptions ,
66+ ) : useRequestResult < TData , TParams >
4067
68+ // 只有 initialData
4169export function useRequest <
4270 TData ,
4371 TParams extends unknown [ ] = unknown [ ] ,
44- PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ] ,
72+ PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ]
4573> (
4674 service : UseRequestService < TData , TParams > ,
47- options ?: UseRequestOptions < TData , TParams , PluginsOptions extends ( infer P ) [ ]
48- ? P extends UseRequestPlugin < TData , TParams , infer R >
49- ? R
50- : never
51- : never > ,
75+ options : UseRequestOptionsWithInitialData <
76+ TData ,
77+ TParams ,
78+ PluginsMiddleOptionsType < PluginsOptions , TData , TParams >
79+ > ,
5280 plugins ?: PluginsOptions ,
53- ) {
81+ ) : useRequestResult < TData , TParams >
5482
83+ // 无 formatResults 和 initialData
84+ export function useRequest <
85+ TData ,
86+ TParams extends unknown [ ] = unknown [ ] ,
87+ PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ]
88+ > (
89+ service : UseRequestService < TData , TParams > ,
90+ options ?: UseRequestOptions <
91+ TData ,
92+ TParams ,
93+ PluginsMiddleOptionsType < PluginsOptions , TData , TParams >
94+ > ,
95+ plugins ?: PluginsOptions ,
96+ ) : useRequestResult < TData , TParams >
97+
98+ export function useRequest <
99+ TData ,
100+ TParams extends unknown [ ] = unknown [ ] ,
101+ PluginsOptions extends UseRequestPlugin < TData , TParams > [ ] = UseRequestPlugin < TData , TParams > [ ]
102+ > (
103+ service : UseRequestService < TData , TParams > ,
104+ options ?: UseRequestOptions <
105+ TData ,
106+ TParams ,
107+ PluginsMiddleOptionsType < PluginsOptions , TData , TParams >
108+ > ,
109+ plugins ?: PluginsOptions ,
110+ ) {
55111 const BuiltInPlugins = [
56112 process . env . NODE_ENV === 'development' ? useDevtoolsPlugin : null ,
57113 useDebouncePlugin ,
@@ -61,15 +117,13 @@ export function useRequest<
61117 useThrottlePlugin ,
62118 useAutoRunPlugin ,
63119 useCachePlugin ,
64- useRetryPlugin
120+ useRetryPlugin ,
65121 ] ?. filter ( Boolean )
66122
67123 return withArgs < TData , TParams > ( useRequestImplement , options ?. use ) ( service , options , [
68124 ...( plugins || [ ] ) ,
69- ...BuiltInPlugins
125+ ...BuiltInPlugins ,
70126 ] as UseRequestPlugin < TData , TParams > [ ] )
71127}
72128
73-
74-
75129export default useRequest
0 commit comments