Skip to content

Release 4.3.0 - #120

Merged
MattCCC merged 11 commits into
masterfrom
claude/elegant-ritchie-umt7va
Sep 27, 2026
Merged

MattCCC merged 11 commits into
masterfrom
claude/elegant-ritchie-umt7va

Conversation

@MattCCC

@MattCCC MattCCC commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

This pull request prepares the 4.3.0 release. It bumps the version in package.json and package-lock.json, rebuilds dist with everything merged since 4.2.0, and brings the README up to date, including the comparison with other libraries, which now covers TanStack Query.

🧩 Pull Requests Merged Into This One

📖 README

  • The logo is centered in its own <p align="center">, which GitHub and npm both honor.
  • Closest competitors first in the comparison: TanStack Query, axios and swr come right after fetchff, followed by ofetch, wretch and native fetch(). The TanStack Query column is checked against the options and defaults of @tanstack/react-query 5.104.
  • Added rows for what 4.3.0 brings: pausing polling in hidden tabs and offline, throttled revalidation on focus, the slow request callback, ETag revalidation, persistent cache, upload and download progress, typed endpoints from OpenAPI schemas, and no third-party dependencies. ETag revalidation and OpenAPI-typed endpoints are fetchff-only.
  • Corrected cells that the current versions contradict:
    • axios has no built-in retries.
    • swr retries with exponential backoff, can decide on retries by the error (shouldRetryOnError), and can poll conditionally based on the latest data (refreshInterval as a function).
    • ofetch and wretch accept a custom fetch(), and ofetch errors can be customized with onResponseError.
  • Merged duplicate rows: "Custom adapters (fetchers)", "Concurrent Request Deduplication" and "Revalidation on Tab Focus" repeated other rows.
  • Measured all bundle sizes the same way (esbuild, minified and gzipped, with the versions listed under the table), and rated them by a stated rule: 🟢 under 10 KB, 🟡 10–13 KB and 🔴 over 13 KB. fetchff 4.3.0 is 🟢 at 8.9 KB, or 9.7 KB with its React hook, while TanStack Query (13.6 KB) and axios (19.5 KB) are 🔴. The "~5 KB" and "~4KB gzipped" claims are now "~9 KB", and the coverage badge shows 100% instead of 96.93%.

📋 What's in 4.3.0

✨ Features & Improvements

🐛 Bug Fixes

⚠️ Behavior Changes

🧪 Tests

  • All 895 tests pass on Node.js 18 and 22 with 100% coverage, as well as type checks, lint and the build.

📦 Bundle Size

Bundle (brotli) 4.2.0 4.3.0
browser/index.mjs 5.81 kB 7.98 kB
browser/index.global.js 5.99 kB 8.17 kB
node/index.js 5.90 kB 8.15 kB
react/index.mjs 9.02 kB 11.22 kB
react/index.js 9.84 kB 12.06 kB

All bundles are within the current size limits. The React sizes include the core and React itself, as size-limit counts all dependencies.

🏷️ After Merging

  1. Publish a GitHub release with the tag v4.3.0 on master ("Generate release notes" lists the pull requests above).
  2. The Release job publishes 4.3.0 to npm. If the npm environment requires a reviewer, approve it under "Review deployments" in the run.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

size-limit report 📦

Path Size
dist/browser/index.mjs 7.79 KB (+0.13% 🔺)
dist/browser/index.global.js 7.98 KB (+0.1% 🔺)
dist/node/index.js 7.96 KB (+0.14% 🔺)
dist/react/index.mjs 10.96 KB (+0.56% 🔺)
dist/react/index.js 11.78 KB (+0.11% 🔺)

@MattCCC
MattCCC force-pushed the claude/elegant-ritchie-umt7va branch from 1041b58 to c0aa5f5 Compare September 27, 2026 21:14
Keep direct assignments for custom fetcher responses to avoid a slowdown
@MattCCC
MattCCC merged commit 1da0e91 into master Sep 27, 2026
14 checks passed
@MattCCC
MattCCC deleted the claude/elegant-ritchie-umt7va branch September 27, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant