@@ -10,9 +10,11 @@ import {
10
10
IRequestConfig
11
11
} from './types'
12
12
13
- function request ( config : IRequestConfig ) {
13
+ export function request ( config : IRequestConfig ) {
14
14
return new Promise < IRequest > ( ( resolve , reject ) => {
15
- const data = ( config . data = JSON . stringify ( config . data ?? '' ) )
15
+ const data = ( config . data = config . data
16
+ ? JSON . stringify ( config . data ?? '' )
17
+ : config . data )
16
18
const handleConfigRes = handleConfig ( config )
17
19
18
20
const req = https . request ( handleConfigRes , ( res ) => {
@@ -54,30 +56,31 @@ function request(config: IRequestConfig) {
54
56
55
57
export async function fetch < T = any > ( config : IFetchConfig ) : Promise < T > {
56
58
const { requestConifg, intervalTime } = config
59
+ const isRequestConifgArr = Array . isArray ( requestConifg )
60
+ const requestConifgArr = isRequestConifgArr ? requestConifg : [ requestConifg ]
57
61
58
- let res
59
- if ( Array . isArray ( requestConifg ) ) {
60
- res = [ ]
62
+ const total = requestConifgArr . length
63
+ let currentCount = 0
61
64
62
- for ( const item of requestConifg ) {
63
- const requestRes = await request ( item )
64
- res . push ( JSON . parse ( requestRes . data . toString ( ) ) )
65
+ const container = [ ]
65
66
66
- if ( typeof intervalTime !== 'undefined' ) {
67
- const timeout =
68
- typeof intervalTime === 'number'
69
- ? intervalTime
70
- : random ( intervalTime . max , intervalTime . min )
67
+ for ( const item of requestConifgArr ) {
68
+ currentCount ++
71
69
72
- await sleep ( timeout )
73
- }
70
+ const requestRes = await request ( item )
71
+ container . push ( JSON . parse ( requestRes . data . toString ( ) ) )
72
+
73
+ if ( typeof intervalTime !== 'undefined' && currentCount !== total ) {
74
+ const timeout =
75
+ typeof intervalTime === 'number'
76
+ ? intervalTime
77
+ : random ( intervalTime . max , intervalTime . min )
78
+
79
+ await sleep ( timeout )
74
80
}
75
- } else {
76
- const requestRes = await request ( requestConifg )
77
- res = JSON . parse ( requestRes . data . toString ( ) )
78
81
}
79
82
80
- return res
83
+ return isRequestConifgArr ? container : container [ 0 ]
81
84
}
82
85
83
86
export async function fetchFile ( config : IFetchFileConfig ) {
0 commit comments