Immer.js 6.0 ist da. Der Gewinner des JavaScript Open Source Awards 2019 im Bereich Most Impactful Contribution erhält mit dem neuesten Major Release etliche Bugfixes und zwei Breaking Changes.
Immer.js stützt sich auf den Copy-on-Write-Mechanismus und stellt ein Immutable-State-Management zur Verfügung. Besonders bei Sprachen wie JavaScript, bei denen die Unveränderlichkeit nicht einprogrammiert ist, kann das Package nützliche Hilfestellungen geben.
Immer.js v6.0: Das ist neu
Das neue Release führt den Support von Typen-Komptabilität für TypeScript-Versionen vor 3.7 ein.
Mit dem Ziel, die Größe von Immer.js so gering wie möglich zu halten, wurden einige Features standardmäßig deaktiviert. Sollten sie in einem Projekt nicht benötigt werden, wird auf diese Weise kein unnötiger Speicher verbraucht. Bei Bedarf kann jedes einzelne Feature manuell wieder aktiviert werden.
Betroffen ist der Support für ES 5, welcher mit der Methode enableES5()
hinzugeschaltet werden kann. Und auch der Support für ES 2015 Map and Set muss nun händisch aktiviert werden. Möglich ist das mit enableMapSet()
. Als Beispiel geben die Entwickler das Nutzen von produce
auf einer Map
an, was in der Praxis wie folgt aussehen würde, wenn das Plugin aktiviert wird:

Quelle: https://immerjs.github.io/immer/docs/installation
Als drittes Feature können JSON Patches mittels enablePatches()
genutzt werden. Sollte unklar sein, welche Plugins benötigt werden, raten die Entwickler dazu, alle auf einmal zu aktivieren. Dazu kann enableALLPlugins()
verwendet werden.
Als weiterer Breaking Change werden in der Version 6.0 benutzerdefinierte Serialization Hooks nicht mehr unterstützt.
Alle Informationen zum neuen Major Release von Immer.js finden sich auf GitHub.