Skip to content

Commit 47726be

Browse files
committed
Update implementation based on RFC emberjs/rfcs#1065
1 parent 4d1da70 commit 47726be

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/index.js

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
import { waitForPromise } from '@ember/test-waiters';
22

3-
export function fetch(...args) {
4-
let promise = globalThis.fetch(...args);
3+
export async function wrappedFetch(...args) {
4+
let responsePromise = fetch(...args);
55

6-
waitForPromise(promise);
6+
waitForPromise(responsePromise);
77

8-
return promise;
8+
let response = await responsePromise;
9+
10+
return new Proxy(response, {
11+
get(target, prop, receiver) {
12+
let original = Reflect.get(target, prop, receiver);
13+
14+
if (['json', 'text', 'arrayBuffer', 'blob', 'formData'].includes(prop)) {
15+
return (...args) => {
16+
let parsePromise = original(...args);
17+
18+
return waitForPromise(parsePromise);
19+
}
20+
}
21+
22+
return original;
23+
}
24+
});
925
}
1026

11-
export default fetch;
27+
export default wrappedFetch;

0 commit comments

Comments
 (0)