immer
11.2.9 · 22 Oct 2026MIT89.4M / weekRepositoryHomepagenpmAtom feed
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