Packages

immer

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

Your version

193 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.

  1. 5.x
  2. 5.3.4

    5 Feb 2020
    • Attempt to fix locally not reproducible build issue

  3. 5.3.3

    4 Feb 2020
    • Set inside patches were not correctly cloned. Fixes #521

    • Fixed issue where drafts from nested producers were frozen. Fixes #522, #524

    • Incorrect patches generated for array if property was deleted inside

  4. 5.3.2

    15 Jan 2020
  5. 5.3.1

    15 Jan 2020
    • Explained workaround better

    • types-external.d.ts is not bundled

  6. 5.3.0

    14 Jan 2020
    • Original should not rely on Drafted

    • General typing improvements for TS 3.7 and up

  7. 5.2.1

    10 Jan 2020
    • Map and Set instantions won't work on certain environments, fixes #502

  8. 5.2.0

    9 Jan 2020
  9. 5.1.0

    20 Dec 2019
    • Convert Immer to TypeScript

  10. 5.0.2

    18 Dec 2019
    • Object spread breaks IE

    • Merge branch 'oriSomething-fix-472'

  11. 5.0.1

    9 Dec 2019
    • Fixed #477, Immer crashes without an Object.assign polyfill

  12. 5.0.0

    30 Oct 2019
    • Inside recipes, you can directly modify Maps and Sets with methods like add, set, delete and clear

    • Those methods do mutate draft Maps and Sets, but won't actually change their originals!

    • Immer does not polyfill Map and Set automatically in environments where those aren't available out of the box

  13. 4.x
  14. 4.0.2

    22 Oct 2019
    • Add immerable Flow typedef

  15. 4.0.1

    4 Oct 2019
    • Don't use proxies if Proxy.revocable is not defined. Fixes #435

  16. 4.0.0

    11 Sep 2019
    • breaking

      Any value returned from produce will be deeply frozen in DEV, even when it wasn't frozen before the producer started. Fixes #412 #363 #260 #230 #313 #229 through #417

    • In development mode, any new value stored in a tree will be deeply frozen.

  17. 3.x
  18. 3.3.0

    11 Sep 2019
    • Always use remove command in generateArrayPatches() (d483334), closes #208

  19. 3.2.1

    10 Sep 2019
    • Ensure patches are reusable

    • Ensure patches are reusable

    • Ensure that patches are reusable. Fixes #411

  20. 3.2.0

    2 Aug 2019
    • Introduced produceWithPatches. Implements #400

  21. 3.1.4

    2 Aug 2019
    • Don't unnecessary modify draft if replaying patches results in a new state anyway

    • If a property is added, then deleted, don't produce a patch

  22. 3.1.3

    7 Jun 2019
    • build: add unpkg and jsdelivr fields to package.json

  23. 3.1.2

    14 May 2019
  24. 3.1.1

    18 Apr 2019
    • Revert Map support

  25. 3.1.0

    18 Apr 2019
    • Map support

  26. 3.0.0

    17 Apr 2019
    • breaking

      ts: typescript@3.4.0 is now the minimum required version

    • breaking

      this in recipe is no longer the draft, but unbound

    • breaking

      Dropped node 6 support

  27. 2.x
  28. 2.2.0

    17 Apr 2019
    • Immer now has it's own Github org, immerjs

    • Improve type inference based on the first arg of the recipe function

  29. 2.1.5

    4 Apr 2019
    • Remove pointless assignments

    • Unnecessary draft creation (ec00ee4), closes #343

  30. 2.1.4

    19 Mar 2019
  31. 2.1.3

    13 Mar 2019
    • build: use .module.js instead of .mjs for esm bundle

  32. 2.1.2

    12 Mar 2019
    • es5: delete then set an existing property (6963420), closes #328

    • ts: --target=es5 compatibility (0e5ecc9), closes #321

  33. 2.1.1

    5 Mar 2019
    • Share internal symbols between immer installations (02fed2c), closes #322

  34. 2.1.0

    28 Feb 2019
    • Improved array patches

  35. 2.0.0

    2 Feb 2019
    • breaking

      Added migration guide: Promises returned from producer will be evaluated

    • es5: throw if a modified child draft is returned

    • Async recipes (#307) (0f76f98), closes #307 #302

  36. 1.x
  37. 1.12.1

    23 Jan 2019
    • applyPatches should mutate drafts (d41be77), closes #301

  38. 1.12.0

    22 Jan 2019
    • Export isDraftable

  39. 1.11.1

    22 Jan 2019
    • Use getOwnPropertySymbols only when it exists

  40. 1.11.0

    21 Jan 2019
    • es5: account for drafts in prepareCopy

    • Draft as base state

    • Object.getPrototypeOf with a draft

  41. 1.10.5

    14 Jan 2019
    • ts: produce() return type

    • ts: use base type as default produce() return type

    • ts: deeply immutable produce() return type (06c8f6f), closes #289 #290

  42. 1.10.4

    12 Jan 2019
    • ts: reorder generic parameters of IProduce

  43. 1.10.3

    12 Jan 2019
    • ts: ensure produce returns an immutable type

    • ts: return type of produce()

  44. 1.10.2

    12 Jan 2019
    • ts: base type of curried producer

  45. 1.10.1

    11 Jan 2019
    • ts: parameter types of curried producers (89f6443), closes #288

  46. 1.10.0

    4 Jan 2019
    • Passing drafts to produce

  47. 1.9.3

    18 Dec 2018
  48. 1.9.2

    16 Dec 2018
  49. 1.9.1

    16 Dec 2018
    • Revert .d.ts and .js.flow module names

    • proxy: avoid has where possible

  50. 1.9.0

    15 Dec 2018
    • removed

      Drop typescript@2 support

    • removed

      Drop typescript@3.0 support

    • ts: improve IProduce (8a86e7c), closes #205

  51. 1.8.2

    12 Dec 2018

    Maintenance only: docs, tests, build or refactoring. Nothing changes in how you use it.

  52. 1.8.1

    12 Dec 2018
  53. 1.8.0

    19 Nov 2018

    For v1.8.0 and under, please visit the old changelog.md.

  54. 1.7.3 – 1.7.42 releases without a noteShow each