Packages

immer

11.2.9 · 22 Oct 2026MIT89.4M / weekRepositoryHomepagenpmAtom feed

Your version

11.0.0

major23 Nov 2025Where it was published

11.2.9 is the newest release of 11.x.

In short

18 breaking1 faster

  • breaking

    Enable loose iteration by default

  • breaking

    Simplify some iteration checks

  • breaking

    Allow passing type to get/set utils to skip archetype lookup

  • breaking

    Convert assigned_ to Map

  • breaking

    Enable loose iteration

  • breaking

    Replace recursive tree finalization with targeted callbacks

  • breaking

    Added cleanup callbacks for each draft that's created

  • breaking

    Added callbacks to handle root drafts, assigned values, and recursing inside of plain values

Release note

Performance Improvements

  • Rewrite finalization system to use a callback approach instead of tree traversal

Breaking changes

  • breaking

    Enable loose iteration by default

  • breaking

    Simplify some iteration checks

  • breaking

    Allow passing type to get/set utils to skip archetype lookup

  • breaking

    Convert assigned_ to Map

  • breaking

    Enable loose iteration

  • breaking

    Replace recursive tree finalization with targeted callbacks

Ported Mutative's "finalization callback" approach as a more targeted and performant implementation for finalization compared to the existing recursive tree traversal approach:

  • breaking

    Added cleanup callbacks for each draft that's created

  • breaking

    Added callbacks to handle root drafts, assigned values, and recursing
    inside of plain values

  • breaking

    Updated state creation to return [draft, state] to avoid a lookup

  • breaking

    Rewrote patch generation system to work with callbacks instead of
    during tree traversal

  • breaking

    Update self-reference test with new behavior

  • breaking

    Apply code review suggestions

  • breaking

    Byte-shave scopes and patch plugin usage

  • breaking

    Inline finalizeAssigned

  • breaking

    Move fixPotentialSetContents to plugin

  • breaking

    Byte-shave typeof utils

  • breaking

    Byte-shave Object references

  • breaking

    Byte-shave field names and arrow functions