1
1
import axios , { Axios } from 'axios' ;
2
+ import { setTimeout } from 'node:timers/promises' ;
2
3
3
4
export interface ApiOptions {
4
5
baseUrl : string ;
@@ -30,56 +31,54 @@ export class Api {
30
31
headers : { authorization : `api-key ${ options . apiKey } ` }
31
32
} ) ;
32
33
33
- this . client . interceptors . request . use ( ( request ) => {
34
- // eslint-disable-next-line no-console
35
- console . log ( 'Request:' , {
36
- method : request . method ,
37
- url : request . url ,
38
- headers : request . headers ,
39
- body : request . data
40
- } ) ;
41
-
42
- return request ;
43
- } ) ;
34
+ const isGithubRunnerDebugMode =
35
+ process . env . ACTIONS_STEP_DEBUG === 'true' ||
36
+ process . env . ACTIONS_RUNNER_DEBUG === 'true' ;
44
37
45
- this . client . interceptors . response . use (
46
- ( response ) => {
38
+ if ( isGithubRunnerDebugMode ) {
39
+ this . client . interceptors . request . use ( ( request ) => {
47
40
// eslint-disable-next-line no-console
48
- console . log ( 'Response :' , {
49
- status : response . status ,
50
- statusText : response . statusText ,
51
- headers : response . headers ,
52
- body : response . data
41
+ console . log ( 'Request :' , {
42
+ method : request . method ,
43
+ url : request . url ,
44
+ headers : request . headers ,
45
+ body : request . data
53
46
} ) ;
54
47
55
- return response ;
56
- } ,
57
- ( error ) => {
58
- if ( axios . isAxiosError ( error ) ) {
59
- if ( error . response ) {
48
+ return request ;
49
+ } ) ;
50
+
51
+ this . client . interceptors . response . use (
52
+ ( response ) => {
53
+ // eslint-disable-next-line no-console
54
+ console . log ( 'Response:' , {
55
+ status : response . status ,
56
+ statusText : response . statusText ,
57
+ headers : response . headers ,
58
+ body : response . data
59
+ } ) ;
60
+
61
+ return response ;
62
+ } ,
63
+ ( error ) => {
64
+ if ( axios . isAxiosError ( error ) ) {
65
+ if ( error . response ) {
66
+ // eslint-disable-next-line no-console
67
+ console . log ( 'Response:' , {
68
+ status : error . response . status ,
69
+ statusText : error . response . statusText ,
70
+ headers : error . response . headers ,
71
+ body : error . response . data
72
+ } ) ;
73
+ }
74
+ } else {
60
75
// eslint-disable-next-line no-console
61
- console . log ( 'Response:' , {
62
- status : error . response . status ,
63
- statusText : error . response . statusText ,
64
- headers : error . response . headers ,
65
- body : error . response . data
66
- } ) ;
76
+ console . log ( 'Response Error:' , error ) ;
67
77
}
68
- } else {
69
- // eslint-disable-next-line no-console
70
- console . log ( 'Response Error:' , error ) ;
71
- }
72
78
73
- return Promise . reject ( error ) ;
74
- }
75
- ) ;
76
-
77
- const isGithubRunnerDebugMode =
78
- process . env . ACTIONS_STEP_DEBUG === 'true' ||
79
- process . env . ACTIONS_RUNNER_DEBUG === 'true' ;
80
-
81
- if ( ! isGithubRunnerDebugMode ) {
82
- this . client . interceptors . request . clear ( ) ;
79
+ return Promise . reject ( error ) ;
80
+ }
81
+ ) ;
83
82
}
84
83
}
85
84
@@ -136,7 +135,7 @@ export class Api {
136
135
`Repeater ${ repeaterId } is not connected after ${ maxAttempts } checks`
137
136
) ;
138
137
} else {
139
- await this . sleep ( timeout ) ;
138
+ await setTimeout ( timeout ) ;
140
139
}
141
140
}
142
141
}
@@ -162,12 +161,8 @@ export class Api {
162
161
`Scan ${ scanId } couldn't finish after ${ maxAttempts } checks`
163
162
) ;
164
163
} else {
165
- await this . sleep ( timeout ) ;
164
+ await setTimeout ( timeout ) ;
166
165
}
167
166
}
168
167
}
169
-
170
- private async sleep ( time : number ) {
171
- return new Promise ( ( resolve ) => setTimeout ( resolve , time ) ) ;
172
- }
173
168
}
0 commit comments