@@ -344,7 +344,7 @@ export async function tryPost(
344344
345345 let mappedResponse : Response ;
346346 let retryCount : number | undefined ;
347- let originalResponseJson : Record < string , any > | undefined ;
347+ let originalResponseJson : Record < string , any > | null | undefined ;
348348
349349 let cacheKey : string | undefined ;
350350 let { cacheMode, cacheMaxAge, cacheStatus } = getCacheOptions (
@@ -355,6 +355,12 @@ export async function tryPost(
355355 const requestOptions = c . get ( 'requestOptions' ) ?? [ ] ;
356356 let transformedRequestBody : ReadableStream | FormData | Params = { } ;
357357 let fetchOptions : RequestInit = { } ;
358+ const areSyncHooksAvailable = Boolean (
359+ hooksManager . getHooksToExecute ( hookSpan , [
360+ 'syncBeforeRequestHook' ,
361+ 'syncAfterRequestHook' ,
362+ ] ) . length
363+ ) ;
358364
359365 // before_request_hooks handler
360366 ( {
@@ -471,7 +477,8 @@ export async function tryPost(
471477 isCacheHit ,
472478 params ,
473479 strictOpenAiCompliance ,
474- c . req . url
480+ c . req . url ,
481+ areSyncHooksAvailable
475482 ) ) ;
476483 }
477484
@@ -1247,7 +1254,7 @@ export async function recursiveAfterRequestHookHandler(
12471254 mappedResponse : Response ;
12481255 retryCount : number ;
12491256 createdAt : Date ;
1250- originalResponseJson ?: Record < string , any > ;
1257+ originalResponseJson ?: Record < string , any > | null ;
12511258} > {
12521259 let response , retryCount , createdAt , executionTime , retrySkipped ;
12531260 const requestTimeout =
@@ -1287,6 +1294,17 @@ export async function recursiveAfterRequestHookHandler(
12871294 retry ?. useRetryAfterHeader || false
12881295 ) ) ;
12891296
1297+ const hooksManager = c . get ( 'hooksManager' ) as HooksManager ;
1298+ const hookSpan = hooksManager . getSpan ( hookSpanId ) as HookSpan ;
1299+ // Check if sync hooks are available
1300+ // This will be used to determine if we need to parse the response body or simply passthrough the response as is
1301+ const areSyncHooksAvailable = Boolean (
1302+ hooksManager . getHooksToExecute ( hookSpan , [
1303+ 'syncBeforeRequestHook' ,
1304+ 'syncAfterRequestHook' ,
1305+ ] ) . length
1306+ ) ;
1307+
12901308 const {
12911309 response : mappedResponse ,
12921310 responseJson : mappedResponseJson ,
@@ -1300,7 +1318,8 @@ export async function recursiveAfterRequestHookHandler(
13001318 false ,
13011319 gatewayParams ,
13021320 strictOpenAiCompliance ,
1303- c . req . url
1321+ c . req . url ,
1322+ areSyncHooksAvailable
13041323 ) ;
13051324
13061325 const arhResponse = await afterRequestHookHandler (
0 commit comments