// the find
mjackson/http-client
Compose HTTP clients using JavaScript's fetch API
A small middleware-based wrapper around the Fetch API that lets you compose a custom fetch function out of reusable pieces — base URL, headers, auth, query params, body parsing. Aimed at people who want something lighter than axios but don't want to hand-roll base-URL/header/parsing boilerplate on every request.
The middleware/stack model (createStack composing into createFetch) is genuinely clean — same compositional idea Koa/Redux use, and it predates most of today's fetch-wrapper libraries that converged on similar designs. parse() maps directly onto the spec's Body mixin methods (json/text/blob/arrayBuffer/formData) instead of inventing its own parsing API, so it can't drift from the actual fetch behavior. It doesn't bundle a fetch polyfill — you bring your own (isomorphic-fetch/node-fetch), which keeps the library tiny and out of the polyfill-update treadmill.
Dead project: initial release was around 2016 and the 2022 push is a minor fix, not real maintenance — no TypeScript types, no ESM build, nothing updated for how people write fetch code today. No retry, timeout, or AbortController integration built in or even mentioned — you're on your own for anything beyond the happy path. Tooling is fossilized (Travis CI, Karma, .babelrc), which signals nobody will merge a PR if something breaks on a current Node/browser. parse() reads the whole body before you get it, so streaming responses are a non-starter.