@@ -87,15 +87,19 @@ export class NodeHttp2Handler implements HttpHandler<NodeHttp2HandlerOptions> {
8787 this . connectionManager . destroy ( ) ;
8888 }
8989
90- async handle ( request : HttpRequest , { abortSignal } : HttpHandlerOptions = { } ) : Promise < { response : HttpResponse } > {
90+ async handle (
91+ request : HttpRequest ,
92+ { abortSignal, requestTimeout } : HttpHandlerOptions = { }
93+ ) : Promise < { response : HttpResponse } > {
9194 if ( ! this . config ) {
9295 this . config = await this . configProvider ;
9396 this . connectionManager . setDisableConcurrentStreams ( this . config . disableConcurrentStreams || false ) ;
9497 if ( this . config . maxConcurrentStreams ) {
9598 this . connectionManager . setMaxConcurrentStreams ( this . config . maxConcurrentStreams ) ;
9699 }
97100 }
98- const { requestTimeout, disableConcurrentStreams } = this . config ;
101+ const { requestTimeout : configRequestTimeout , disableConcurrentStreams } = this . config ;
102+ const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout ;
99103 return new Promise ( ( _resolve , _reject ) => {
100104 // It's redundant to track fulfilled because promises use the first resolution/rejection
101105 // but avoids generating unnecessary stack traces in the "close" event handler.
@@ -176,10 +180,10 @@ export class NodeHttp2Handler implements HttpHandler<NodeHttp2HandlerOptions> {
176180 }
177181 } ) ;
178182
179- if ( requestTimeout ) {
180- req . setTimeout ( requestTimeout , ( ) => {
183+ if ( effectiveRequestTimeout ) {
184+ req . setTimeout ( effectiveRequestTimeout , ( ) => {
181185 req . close ( ) ;
182- const timeoutError = new Error ( `Stream timed out because of no activity for ${ requestTimeout } ms` ) ;
186+ const timeoutError = new Error ( `Stream timed out because of no activity for ${ effectiveRequestTimeout } ms` ) ;
183187 timeoutError . name = "TimeoutError" ;
184188 rejectWithDestroy ( timeoutError ) ;
185189 } ) ;
@@ -227,7 +231,7 @@ export class NodeHttp2Handler implements HttpHandler<NodeHttp2HandlerOptions> {
227231 }
228232 } ) ;
229233
230- writeRequestBodyPromise = writeRequestBody ( req , request , requestTimeout ) ;
234+ writeRequestBodyPromise = writeRequestBody ( req , request , effectiveRequestTimeout ) ;
231235 } ) ;
232236 }
233237
0 commit comments