JavaScript ES6+ İpuçları #9: JSON.parseImmutable ile Değişmezlik Sağlamak
JavaScript ES6+ serisindeki bir önceki yazı: JavaScript ES6+ İpuçları #8: Object.groupBy() ile Dizileri Gruplamak
Pandemi döneminde yazdığım JavaScript ES6+ İpuçları serisindeki yazılardan birisi de Record ve Tuple ile Native Değişmezlik Sağlamak başlıklı, önceleri Immutable.js gibi üçüncü parti kütüphanelerle sağladığımız değişmezlik özelliğinin, JavaScript’e kazandırılması üzerineydi. Maalesef o yazının üstünden geçen dört senelik zamanda bu özellik standart olamadı. Hâlâ TC39 sürecinde ikinci aşamada yer alıyor.
JSON.parseImmutable()
Çoğunluğunu, Record ve Tuple önerisinin geliştiricilerinin oluşturduğu bir grup geliştirici, Record ve Tuple önerisi içerisinde yer alan ve JSON formatındaki veriler için derinlemesine değişmezlik sağlayan parseImmutable()
metodunu, JSON
objesine dahil edecek ayrı bir öneri sundu TC39'a.
Aslında Object.freeze()
metodu bize benzer bir değişmezliği sağlıyordu. Fakat bunu yalnızca objeler içerisindeki ilkel tipteki veriler (primitive) için yaptığından içe içe (nested) veri yapılarında ve referans tipteki veriler için tam olarak ihtiyacı karşılamıyordu. JSON.parseImmutable()
bunu tüm veri tipleri için, derinlemesine (deep immutability) yapmayı amaçlıyor.
Kullanımı ise oldukça basit.
Sonuç
JSON.parseImmutable()
metodu da tıpkı Record ve Tuple gibi, Ağustos 2024 itibarıyla TC39 sürecinde ikinci aşamada yer alıyor. Fakat bağımlılığı Record ve Tuple’a göre çok daha az olduğu için sonraki aşamalara daha kısa sürede geçeceği düşünülüyor topluluk tarafından. Yine bu özelliği projelerimizde veya deneysel çalışmalarımızda kullanabilmek için TC39 ikinci aşama önerilerini Babel yapılandırmalarımıza eklememiz gerekiyor.