Skip to content

Commit 19fccc6

Browse files
committed
fix: use fetch and Headers fallbacks
1 parent a8f96bf commit 19fccc6

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

src/http/fetch.browser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* eslint-env browser */
33

44
const { TimeoutError, AbortError } = require('./error')
5-
const Response = require('./response')
5+
const { Request, Response, Headers, fetch } = require('./fetch.polyfill')
66

77
/**
88
* @typedef {RequestInit & ExtraFetchOptions} FetchOptions

src/http/fetch.polyfill.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
'use strict'
2+
3+
/* eslint-env browser */
4+
5+
// JSDOM has `XMLHttpRequest` but it does not have a `fetch` or `Response` so
6+
// we workaround by pulling in node-fetch.
7+
// See: https://github.com/jsdom/jsdom/issues/1724
8+
exports.fetch = typeof fetch === 'function'
9+
? fetch
10+
: require('node-fetch')
11+
12+
exports.Response = typeof Response === 'function'
13+
? Response
14+
: require('node-fetch').Response
15+
16+
exports.Request = typeof Request === 'function'
17+
? Request
18+
: require('node-fetch').Response
19+
20+
exports.Headers = typeof Headers === 'function'
21+
? Headers
22+
: require('node-fetch').Headers

src/http/response.js

-11
This file was deleted.

0 commit comments

Comments
 (0)