@@ -44,13 +44,15 @@ export function createResponseMiddleware<T, U>({
4444 extendClientRequest,
4545 convertToAdapterResponse,
4646 extendClientResponse,
47+ cloneClientRequest,
4748 retry,
4849} : {
4950 plugins : Plugin [ ] ;
5051 convertToAdapterRequest : ConvertToAdapterRequest < T > ;
5152 extendClientRequest : ExtendClientRequest < T > ;
5253 convertToAdapterResponse : ConvertToAdapterResponse < U > ;
5354 extendClientResponse : ExtendClientResponse < U > ;
55+ cloneClientRequest ?: ( req : T ) => T ;
5456 retry : Retryer < T , U > ;
5557} ) {
5658 return async ( clientResponse : U , clientRequest : T ) => {
@@ -64,12 +66,17 @@ export function createResponseMiddleware<T, U>({
6466 convertToAdapterRequest ( clientRequest ) ,
6567 // eslint-disable-next-line @typescript-eslint/no-loop-func
6668 async ( adapterRequest ) => {
67- clientRequest = await extendClientRequest (
69+ const extendedClientRequest = await extendClientRequest (
6870 clientRequest ,
6971 adapterRequest
7072 ) ;
73+ const clonedClientRequest = cloneClientRequest
74+ ? cloneClientRequest ( extendedClientRequest )
75+ : extendedClientRequest ;
7176
72- clientResponse = await retry ( clientRequest ) ;
77+ clientResponse = await retry ( extendedClientRequest ) ;
78+
79+ clientRequest = clonedClientRequest ;
7380
7481 return convertToAdapterResponse ( clientResponse ) ;
7582 }
@@ -86,6 +93,7 @@ export default function createMiddleware<Req, Res>({
8693 extendClientRequest,
8794 convertToAdapterResponse,
8895 extendClientResponse,
96+ cloneClientRequest,
8997 plugins,
9098 retry,
9199} : {
@@ -94,6 +102,7 @@ export default function createMiddleware<Req, Res>({
94102 extendClientRequest : ExtendClientRequest < Req > ;
95103 convertToAdapterResponse : ConvertToAdapterResponse < Res > ;
96104 extendClientResponse : ExtendClientResponse < Res > ;
105+ cloneClientRequest ?: ( req : Req ) => Req ;
97106 retry : Retryer < Req , Res > ;
98107} ) {
99108 return {
@@ -108,6 +117,7 @@ export default function createMiddleware<Req, Res>({
108117 extendClientRequest,
109118 convertToAdapterResponse,
110119 extendClientResponse,
120+ cloneClientRequest,
111121 retry,
112122 } ) ,
113123 } ;
0 commit comments