Isomorphic Unfetch
Switches between unfetch & node-fetch for client & server.
Fork differences:
- On Node,
node-fetch
is always used instead ofglobal.fetch
. This is a workaround thisundici
bug which is negatively affecting many versions of Node and Next.js. - Don't polyfill, leave
global.fetch
alone. - Applies a patch on node-fetch-cjs to this node-fetch bug by following this PR. Then we inline node-fetch-cjs into the built version of server.js, so that it will contain our patched version of node-fetch-cjs.
Install
This project uses node and npm. Go check them out if you don't have them locally installed.
$ npm i isomorphic-unfetch
Then with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules
import fetch from 'isomorphic-unfetch'
// using CommonJS modules
const fetch = require('isomorphic-unfetch')
Usage
As a ponyfill:
import fetch from 'isomorphic-unfetch';
fetch('/foo.json')
.then( r => r.json() )
.then( data => {
console.log(data);
});
Globally, as a polyfill:
import 'isomorphic-unfetch';
// "fetch" is now installed globally if it wasn't already available
fetch('/foo.json')
.then( r => r.json() )
.then( data => {
console.log(data);
});