immutable-js v4.0.0-rc.10 Release Notes

Release Date: 2018-09-19 // over 1 year ago
  • 🚀 It's been a long time since the last release candidate, but quite a bit of work has happened since the last once. One step closer to a final release!

    💥 Breaking:

    • ✂ Remove IteratorSequence. Do not attempt to detect iterators in Seq(). (#1589)

    Iterables can still be provided to Seq(), and most Iterators are also
    Iterables, so this change should not affect the vast majority of uses.
    👀 > For more information, see PR #1589

    • Node buffers no longer considered value-equal

    This was actually broken as of v4.0.0-rc.1 (2dcf3ef)
    but was highlighted as a breaking change by (#1437)

    🆕 New:

    • Top level predicate functions (#1600)

    New functions are exported from the immutable module:
    isSeq(), isList(), isMap(), isOrderedMap(), isStack(), isSet(), isOrderedSet(), and isRecord().

    • 👌 Support Typescript 3 (#1593)
    • 👌 Support latest Flow (#1531)
    • ➕ Add RecordOf<TProps> type alias for TypeScript, matching Flow (#1578)
    • 👌 Improved Flow support for Record subclasses (still not advised) (#1414)
    • 👌 Improve performance of toJS (#1581)

    ✅ > Cursory test is >10% faster than both v3.8.2 and v4.0.0-rc.7,

    and corrects the regression since v4.0.0-rc.9.

    • ➕ Added optional notSetValue in first() and last() (#1556)
    • Enable flow strict (#1580)
    • 👉 Make isArrayLike check more precise to avoid false positives (#1520)
    • map() for List, Map, and Set returns itself for no-ops (#1455) (5726bd1)
    • Hash functions as objects, allowing functions as values in collections (#1485)

    🛠 Fix:

    • groupBy no longer returns a mutable Map instance (#1602)
    • 🛠 Fix issue where refs can recursively collide, corrupting .size (#1598)
    • 🔀 Throw error in mergeWith() method if missing the required merger function (#1543)
    • ⚡️ Update isPlainObj() to workaround Safari bug and allow cross-realm values (#1557)
    • 🔀 The mergeDeepWith merger is untypable in TS/Flow. (#1532)
    • 🛠 Fix missing "& T" to some methods in RecordInstance (#1464)
    • 👉 Make notSetValue optional for typed Records (#1461) (a1029bb)
    • Export type of RecordInstance (#1434)
    • 🛠 Fix Record size check in merge() (#1521)
    • 🛠 Fix Map#concat being not defined (#1402)