@@ -23,6 +23,8 @@ export interface ClientOptions extends Omit<RequestInit, "headers"> {
2323 querySerializer ?: QuerySerializer < unknown > | QuerySerializerOptions ;
2424 /** global bodySerializer */
2525 bodySerializer ?: BodySerializer < unknown > ;
26+ /** transform functions for request/response data */
27+ transform ?: TransformOptions < unknown , unknown > ;
2628 headers ?: HeadersOptions ;
2729 /** RequestInit extension object to pass as 2nd argument to fetch when supported (defaults to undefined) */
2830 requestInitExt ?: Record < string , unknown > ;
@@ -64,6 +66,18 @@ export type QuerySerializerOptions = {
6466
6567export type BodySerializer < T > = ( body : OperationRequestBodyContent < T > ) => any ;
6668
69+ export type TransformOptions < T = any , R = any > = {
70+ response ?: ( method : string , path : string , data : T ) => R ;
71+ } ;
72+
73+ export type TransformFunction < T = any , R = any > = (
74+ method : string ,
75+ path : string ,
76+ options : {
77+ data : T ;
78+ } ,
79+ ) => R ;
80+
6781type BodyType < T = unknown > = {
6882 json : T ;
6983 text : Awaited < ReturnType < Response [ "text" ] > > ;
@@ -127,6 +141,7 @@ export type MergedOptions<T = unknown> = {
127141 parseAs : ParseAs ;
128142 querySerializer : QuerySerializer < T > ;
129143 bodySerializer : BodySerializer < T > ;
144+ transform ?: TransformOptions < T , T > ;
130145 fetch : typeof globalThis . fetch ;
131146} ;
132147
0 commit comments