@@ -11,6 +11,7 @@ async function createNFCResponseClass() {
1111 } , { } )
1212
1313 const metaData = {
14+ redirected : response . redirected ,
1415 url : response . url ,
1516 status : response . status ,
1617 statusText : response . statusText ,
@@ -32,17 +33,33 @@ async function createNFCResponseClass() {
3233 statusText : 'Gateway Timeout' ,
3334 headers : { } ,
3435 counter : 0 ,
36+ redirected : false ,
3537 } ,
3638 async ( ) => undefined ,
3739 false ,
3840 true ,
3941 ) ;
4042 }
4143
44+ static setUrlAndRedirected ( target : Response , url : string , redirected : boolean ) {
45+ Object . defineProperty ( target , 'url' , {
46+ get : ( ) => url ,
47+ enumerable : true ,
48+ configurable : true ,
49+ } ) ;
50+
51+ Object . defineProperty ( target , 'redirected' , {
52+ get : ( ) => redirected ,
53+ enumerable : true ,
54+ configurable : true ,
55+ } ) ;
56+ }
57+
4258 constructor (
4359 bodyStream : ReadableStream ,
4460 metaData : Omit < ResponseInit , 'headers' > & {
4561 url : string ;
62+ redirected : boolean ;
4663 counter : number ;
4764 headers : Record < string , string [ ] > ;
4865 } ,
@@ -52,8 +69,16 @@ async function createNFCResponseClass() {
5269 ) {
5370 super (
5471 bodyStream ,
55- metaData as any , // eslint-disable-line @typescript-eslint/no-unsafe-argument
72+ metaData as any ,
5673 ) ;
74+
75+ NFCResponse . setUrlAndRedirected ( this , metaData . url , metaData . redirected ) ;
76+ }
77+
78+ override clone ( ) : Response {
79+ const superClone = super . clone ( ) ;
80+ NFCResponse . setUrlAndRedirected ( superClone , this . url , this . redirected ) ;
81+ return superClone ;
5782 }
5883 }
5984}
0 commit comments