</>PackageGraphPackageGraph

make-fetch-happen

npmv16.0.1

Opinionated, caching, retrying fetch client

Adopt with care

make-fetch-happen is usable, with caveats. Pulls in 29 transitive packages, about 3.8 MB installed (at least — some of the tree is still being crawled).

  • AAdoption: grade A, Excellent.

    43.3M downloads per week and 1 known dependents.

  • AMaintenance: grade A, Excellent.

    Last published 57 days ago. 13 releases in the last 2 years.

  • CWeight: grade C, Fair — worth a look.

    Pulls in 29 transitive packages, about 3.8 MB installed (at least — some of the tree is still being crawled).

  • ASupply chain: grade A, Excellent.

    No install scripts, 4 maintainers, and a contained dependency surface.

  • ALicense: grade A, Excellent.

    ISC — permissive, with no copyleft found in the dependency tree.

Grades are computed deterministically from registry metadata collected by PackageGraph — downloads, dependents, publish dates, the resolved dependency tree, maintainer count, and declared licenses. No third-party scores are used.

Install cost

What you actually take on by adding make-fetch-happen to a project.

12
Direct dependencies

Runtime packages this one declares itself.

29
Total installed

Distinct packages in the full runtime tree, deduplicated the way a package manager would.

3.8 MB
Install size

Unpacked size of this package plus its entire runtime tree.

5
Tree depth

Longest resolved dependency chain below this package.

Part of this dependency tree has not been crawled yet, so these figures are a lower bound rather than a final total.

Licenses in the dependency tree

BSD-2-ClauseBlueOak-1.0.0ISCMIT

Every license you inherit by installing make-fetch-happen, not just its own. Check this before a legal review, not after.

Compatibility

Node.js
node ^22.22.2 || ^24.15.0 || >=26.0.0
Module format
CommonJS only
TypeScript
No bundled types
Install scripts
None

Quick start

A usage example from the make-fetch-happen README.

javascriptFull README ↗
const fetch = require('make-fetch-happen').defaults({
  cachePath: './my-cache' // path where cache will be written (and read)
})

fetch('https://registry.npmjs.org/make-fetch-happen').then(res => {
  return res.json() // download the body as JSON
}).then(body => {
  console.log(`got ${body.name} from web`)
  return fetch('https://registry.npmjs.org/make-fetch-happen', {
    cache: 'no-cache' // forces a conditional request
  })
}).then(res => {
  console.log(res.status) // 304! cache validated!
  return res.json().then(body => {
Example truncated — see the full README.

make-fetch-happen vs the alternatives

Packages solving a similar problem in the npm ecosystem, compared on the signals that drive an adoption decision.

PackageWeekly downloadsDependentsLicenseLast release
make-fetch-happenthis page43.3M1ISC1 month ago
cacache01ISC4 hours ago
@mswjs/interceptors01MIT4 hours ago
node-fetch09MIT4 hours ago
undici015MIT4 hours ago
fresh121.2M3MIT4 hours ago

Dependencies

Declared by make-fetch-happen v16.0.1. Runtime dependencies are installed with the package; dev dependencies are not.

Dev (6)

@npmcli/eslint-config ^7.0.0@npmcli/template-oss 5.1.0nock ^13.2.4safe-buffer ^5.2.1standard-version ^9.3.2tap ^16.0.0

Used by

Popular packages that depend on make-fetch-happen.

Relationship graph

Dependencies (left) and dependents (right) of make-fetch-happen.

Frequently installed together

Release history

12 releases in the last two years, typically about 30 days apart.

Recent versions of make-fetch-happen
VersionPublishedSizeLicense
15.0.61 month ago52 KBISC
16.0.1latest1 month ago52 KBISC
16.0.02 months ago52 KBISC
15.0.54 months ago52 KBISC
15.0.44 months ago52 KBISC
15.0.38 months ago52 KBISC
15.0.210 months ago52 KBISC
15.0.111 months ago52 KBISC
15.0.01 year ago52 KBISC
14.0.31 year ago52 KBISC
14.0.21 year ago52 KBISC
14.0.11 year ago52 KBISC
14.0.01 year ago52 KBISC
13.0.12 years ago52 KBISC
13.0.02 years ago51 KBISC

Overview

make-fetch-happen is an npm package that opinionated, caching, retrying fetch client. It is extremely widely used, with about 43.3M downloads per week and 1 known dependents in the graph. The latest version is 16.0.1, released under the ISC license.

Who should use it

Teams working in the npm ecosystem who need opinionated, caching, retrying fetch client and value a battle-tested, widely-adopted solution.

When not to use it

Consider an alternative if you need to minimize your dependency tree, have first-class TypeScript types out of the box, or if a more actively-maintained option better fits your npm stack.

Pros

  • Large, well-established user base (43.3M weekly downloads).
  • Clear open-source license (ISC).

Cons

  • Large dependency tree (18 direct dependencies) increases install size and audit surface.
  • No bundled TypeScript types (may require a separate @types package).

Auto-generated from collected registry metadata. No external claims are inferred.

Maintainers

Keywords

Frequently asked questions

Should I use make-fetch-happen?

make-fetch-happen is usable, with caveats. Pulls in 29 transitive packages, about 3.8 MB installed (at least — some of the tree is still being crawled).

How do I install make-fetch-happen?

Run `npm install make-fetch-happen` to add make-fetch-happen to your npm project.

How many dependencies does make-fetch-happen have?

make-fetch-happen declares 18 direct dependencies and pulls in 29 packages in total once its runtime tree is resolved totalling about 3.8 MB on disk.

What license is make-fetch-happen released under?

make-fetch-happen is distributed under the ISC license. Its dependency tree also includes: BSD-2-Clause, BlueOak-1.0.0, ISC, MIT.

How popular is make-fetch-happen?

make-fetch-happen has approximately 43,273,493 downloads per week and 1 known dependent packages.

Is make-fetch-happen still maintained?

The most recent release of make-fetch-happen (v16.0.1) was published 1 month ago.

Does make-fetch-happen run install scripts?

No. make-fetch-happen does not define preinstall, install, or postinstall scripts, so installing it does not execute publisher-supplied code.