@@ -388,6 +388,11 @@ ${override.fetch.forceSuccessResponse && hasSuccess ? '' : `export type ${respon
388388 const reviver = fetchReviver ? `, ${ fetchReviver . name } ` : '' ;
389389 const schemaValueRef =
390390 responseType === 'Error' ? 'ErrorSchema' : responseType ;
391+ const fetchResponseType =
392+ override . fetch . forceSuccessResponse && hasSuccess
393+ ? successName
394+ : responseTypeName ;
395+
391396 const throwOnErrorImplementation = `if (!${ isNdJson ? 'stream' : 'res' } .ok) {
392397 ${ isNdJson ? 'const body = [204, 205, 304].includes(stream.status) ? null : await stream.text();' : '' }
393398 const err: globalThis.Error & {info?: ${ hasError ? `${ errorName } ${ override . fetch . includeHttpResponseReturnType ? "['data']" : '' } ` : 'any' } , status?: number} = new globalThis.Error();
@@ -399,7 +404,11 @@ ${override.fetch.forceSuccessResponse && hasSuccess ? '' : `export type ${respon
399404 const fetchResponseImplementation = isNdJson
400405 ? ` const stream = await fetch(${ fetchFnOptions } );
401406 ${ override . fetch . forceSuccessResponse ? throwOnErrorImplementation : '' }
402- ${ override . fetch . includeHttpResponseReturnType ? `return { status: stream.status, stream, headers: stream.headers } as ${ override . fetch . forceSuccessResponse && hasSuccess ? successName : responseTypeName } ` : `return stream` }
407+ ${
408+ override . fetch . includeHttpResponseReturnType
409+ ? `return { status: stream.status, stream, headers: stream.headers } as ${ fetchResponseType } `
410+ : `return stream`
411+ }
403412 `
404413 : `const res = await fetch(${ fetchFnOptions } )
405414
@@ -409,11 +418,15 @@ ${override.fetch.forceSuccessResponse && hasSuccess ? '' : `export type ${respon
409418 isValidateResponse
410419 ? `const parsedBody = body ? JSON.parse(body${ reviver } ) : {}
411420 const data = ${ schemaValueRef } .parse(parsedBody)`
412- : `const data: ${ override . fetch . forceSuccessResponse && hasSuccess ? successName : responseTypeName } ${ override . fetch . includeHttpResponseReturnType ? `['data']` : '' } = body ? JSON.parse(body${ reviver } ) : {}`
421+ : `const data: ${ fetchResponseType } ${ override . fetch . includeHttpResponseReturnType ? `['data']` : '' } = body ? JSON.parse(body${ reviver } ) : {}`
422+ }
423+ ${
424+ override . fetch . includeHttpResponseReturnType
425+ ? `return { data, status: res.status, headers: res.headers } as ${ fetchResponseType } `
426+ : 'return data'
413427 }
414- ${ override . fetch . includeHttpResponseReturnType ? `return { data, status: res.status, headers: res.headers } as ${ override . fetch . forceSuccessResponse && hasSuccess ? successName : responseTypeName } ` : 'return data' }
415428` ;
416- let customFetchResponseImplementation = `return ${ mutator ?. name } <${ override . fetch . forceSuccessResponse && hasSuccess ? successName : responseTypeName } >(${ fetchFnOptions } );` ;
429+ let customFetchResponseImplementation = `return ${ mutator ?. name } <${ fetchResponseType } >(${ fetchFnOptions } );` ;
417430
418431 const bodyForm = generateFormDataAndUrlEncodedFunction ( {
419432 formData,
0 commit comments