Skip to content

chore(deps): upgrade immer 9 → 11#1035

Merged
ctrlplusb merged 2 commits intomasterfrom
1034-upgrade-immer
May 4, 2026
Merged

chore(deps): upgrade immer 9 → 11#1035
ctrlplusb merged 2 commits intomasterfrom
1034-upgrade-immer

Conversation

@ctrlplusb
Copy link
Copy Markdown
Owner

Summary

Upgrades the immer dependency from ^9.0.21 to ^11.1.4. Closes #1034.

Changes

  • package.json — bump immer to ^11.1.4; remove ./proxy-polyfill from exports and files.
  • src/lib.js — drop the useProxies constructor option from our custom Immer instance. immer v10 dropped ES5 mode entirely, so useProxies no longer exists and Proxy is the only supported backend. Kept autoFreeze: false (still required for the mixed mutability/immutability pattern around computed properties).
  • proxy-polyfill.js + proxy-polyfill.d.ts — deleted. The shim called immer.enableES5(), which was removed in immer v10. Every browser supported by React 19 has native Proxy, so no replacement is needed.
  • website/docs/docs/upgrading-from-v6/README.md — documents the subpath removal as a v7 breaking change.

What stayed the same

  • easy-peasy/map-set-support subpath — verified empirically that enableMapSet() is still a real opt-in in immer v11 (Map/Set draft support throws without it). Kept as-is.
  • All other immer API surface used by the project (isDraft, current, original, produce, setAutoFreeze) is unchanged in v11.

Verification

  • yarn test — 193 passed (incl. computed, persist, immer, migrations)
  • yarn test:coverage — 193 passed under v8 instrumentation; 96.49% statements
  • yarn dtslint — clean
  • yarn build — clean (Rollup ESM + CJS for index + server)
  • yarn lint — only one pre-existing warning, unrelated to this change

🤖 Generated with Claude Code

- Bump immer from ^9.0.21 to ^11.1.4
- Drop useProxies option in src/lib.js — immer v10 dropped ES5 mode and
  Proxy is now the only supported backend
- Remove easy-peasy/proxy-polyfill subpath export — enableES5() no longer
  exists in immer
- Document the subpath removal as a v7 breaking change in the upgrade guide
- Keep easy-peasy/map-set-support — enableMapSet() is still opt-in in v11

Closes #1034

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
easy-peasy Ready Ready Preview, Comment May 4, 2026 4:04am
easy-peasy-v6 Ready Ready Preview, Comment May 4, 2026 4:04am

The proxy-polyfill subpath documented here was removed in #1035 — immer v10
dropped ES5 mode entirely, so the IE11 / non-Proxy environment workflow
described on this page no longer applies.

- Drop the "Polyfilling Proxy" and "Create React App IE11 Support" sections.
- Reframe the page around React 19's supported runtimes (all ship native
  Proxy).
- Keep the "Why Immer?" overview and the Map/Set support section.
- Add a v6 → v7 migration callout pointing at the upgrade guide for
  consumers who imported the removed subpath.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ctrlplusb ctrlplusb merged commit fe4d374 into master May 4, 2026
10 checks passed
@ctrlplusb ctrlplusb deleted the 1034-upgrade-immer branch May 4, 2026 04:05
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.

chore(deps): evaluate upgrading immer 9 → 11

1 participant