got-fetch
v5.1.9
Published
A fetch-compatible interface to the got HTTP client
Downloads
73,133
Readme
got-fetch
A fetch
-compatible wrapper around got for those times when you need to
fetch stuff over HTTP 😉
Why would you use this instead of got? Sometimes you might need a fetch
wrapper and this is it (e.g. Apollo uses fetch
to query remote schemas).
Install
Support table:
|got-fetch
version|works with got
version|Notes |
|-------------------|------------------------|-------------------------------------|
|^5.0.0 |^12.0.0 |ESM package. You have to use import
|
|^4.0.0 |^11.0.0 |CJS package. You can use require
|
got
is a peer dependency so you will need to install it alongside got-fetch
:
npm install --save got got-fetch
For CommonJS support, we maintain v4 of this package.
Usage
Use the default export:
import fetch from 'got-fetch';
// in ESM we can use top-level await
const resp = await fetch('https://example.com');
console.log(resp.status); // 200
console.log(await resp.text()); // a HTML document
The module also exports a function which allows you to use your own custom
got
instance:
import got from 'got';
import { createFetch } from 'got-fetch';
const myGot = got.extend({
headers: {
'x-api-key': 'foo bar'
}
});
const fetch = createFetch(myGot);
// this request will send the header `x-api-key: foo bar`
fetch('https://example.com');
Limitations
fetch
is designed for browser environments and this package is just a wrapper
around a Node-based HTTP client. Not all fetch
features are supported:
- ❌ RequestMode
no-cors
,same-origin
,navigate
- ❌ RequestCache
only-if-cached
- ❌ RequestRedirect
error
,manual
- ❌ response body streaming. See https://github.com/alexghr/got-fetch/issues/25
- ❗ ESM vs CJS packages. See https://github.com/alexghr/got-fetch/issues/70
- ❗ RequestHeaders must be a plain object
- ❗ RequestCache if unset (or
default
) will use got's caching algorithm (any other value will disable caching)
License
See LICENSE for information.