diff --git a/packages/client-common/src/transporter/createTransporter.ts b/packages/client-common/src/transporter/createTransporter.ts index 621b2d47d..708c641f4 100644 --- a/packages/client-common/src/transporter/createTransporter.ts +++ b/packages/client-common/src/transporter/createTransporter.ts @@ -151,17 +151,14 @@ export function createTransporter({ throw new RetryError(stackTraceWithoutCredentials(stackTrace)); } - let responseTimeout = requestOptions.timeout; - if (responseTimeout === undefined) { - responseTimeout = isRead ? timeouts.read : timeouts.write; - } + let responseTimeout = isRead ? requestOptions.timeouts?.read || timeouts.read : requestOptions.timeouts?.write || timeouts.write; const payload: EndRequest = { data, headers, method: request.method, url: serializeUrl(host, request.path, queryParameters), - connectTimeout: getTimeout(timeoutsCount, timeouts.connect), + connectTimeout: getTimeout(timeoutsCount, requestOptions.timeouts?.connect || timeouts.connect), responseTimeout: getTimeout(timeoutsCount, responseTimeout), }; diff --git a/packages/client-common/src/types/transporter.ts b/packages/client-common/src/types/transporter.ts index 3b760d1d9..074fca664 100644 --- a/packages/client-common/src/types/transporter.ts +++ b/packages/client-common/src/types/transporter.ts @@ -11,7 +11,7 @@ export type RequestOptions = Pick & { * the given timeout will be applied. But the transporter layer may * increase this timeout if there is need for it. */ - timeout?: number; + timeouts?: Partial; /** * Custom headers for the request. This headers are