File tree 1 file changed +19
-10
lines changed
1 file changed +19
-10
lines changed Original file line number Diff line number Diff line change @@ -11,25 +11,34 @@ const createURL = (urlPrefix, url) =>
11
11
: urlPrefix
12
12
13
13
function configToCaller ( axios , urlPrefix , config ) {
14
+ // 如果配置非函数,则不需要每次调用接口都重新计算 URL
15
+ let url
16
+ if ( ! ( typeof config === 'function' ) ) {
17
+ url = createURL ( urlPrefix , config . url )
18
+ }
19
+
14
20
return config
15
21
? ( payload , payloadAs ) => {
16
- const configComputed = typeof config === 'function' ? config ( payload ) : config
22
+ let configComputed = config
23
+ if ( typeof config === 'function' ) {
24
+ configComputed = config ( payload )
25
+ url = createURL ( urlPrefix , configComputed . url )
26
+ }
17
27
18
28
if ( payload ) {
19
29
payloadAs ??= METHODS_WITH_REQUEST_BODY . includes ( configComputed . method ?. toUpperCase ( ) || '' )
20
30
? 'data'
21
31
: 'params'
22
- if ( payloadAs === 'data' ) {
23
- configComputed . data = payload
24
- }
25
- else if ( payloadAs === 'params' ) {
26
- configComputed . params = payload
27
- }
28
32
}
29
33
30
- configComputed . url = createURL ( urlPrefix , configComputed . url )
31
-
32
- return axios ( configComputed )
34
+ return axios ( {
35
+ ...payload && {
36
+ ...( payloadAs === 'data' && { data : payload } ) ,
37
+ ...( payloadAs === 'params' && { params : payload } ) ,
38
+ } ,
39
+ ...configComputed ,
40
+ url,
41
+ } )
33
42
}
34
43
: ( ) => { }
35
44
}
You can’t perform that action at this time.
0 commit comments