rtfeldman / seamless-immutable

Immutable data structures for JavaScript which are backwards-compatible with normal JS Arrays and Objects.
BSD 3-Clause "New" or "Revised" License
5.37k stars 194 forks source link

Add support for static Immutable methods #158

Closed ghost1542 closed 7 years ago

ghost1542 commented 7 years ago

First commit provides the fix for #130. Add static methods to Immutable while remaining backward compatible with current syntax.

// Those are equivalent

obj.setIn(['key'], value);
Immutable.setIn(obj, ['key'], value);

Second commit is only a proof that it works in test units. With some addition it may actually be fine, as it also makes tests cover static and non-static methods as a side effect. But I wasn't sure if @rtfeldman would prefer any different approach. This can be updated if this PR gets any interest.

Perhaps the documentation can also be updated to promote the static methods over the non-static ones, all up to you. I'm happy to add any further commits I'm asked for.

rtfeldman commented 7 years ago

Wow, this looks great @saivann! 😻 Thank you so much!

theogravity commented 7 years ago

This is amazing - thank you for the work. It's working great and things feel cleaner than it did before.