Skip to content

alexghr/got-fetch

Folders and files

NameName
Last commit message
Last commit date
Jul 19, 2024
Jul 19, 2024
Oct 31, 2021
Dec 14, 2021
Dec 18, 2021
Sep 9, 2019
Apr 26, 2022
Sep 16, 2019
Nov 18, 2024
Jun 3, 2019
Jul 19, 2024
Dec 24, 2021
Jan 27, 2025
Dec 28, 2021
Jul 19, 2024
Dec 14, 2021
Mar 10, 2025

Repository files navigation

got-fetch

NPM Release workflow semantic-release: angular npm npm

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).

Before you install

If you're using on NodeJS v18 or greater than you should be using its global fetch. It's better integrated, better supported and has more features.

Native fetch

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:

License

See LICENSE for information.