Skip to content

Commit 5d6ceb2

Browse files
committed
define url and redirected when constructing NFCResponse
1 parent 5301af1 commit 5d6ceb2

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

src/classes/response.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)