Skip to content

Releases: immutable-js/immutable-js

3.3.0

24 Nov 02:59
Compare
Choose a tag to compare

New:

  • setIn added to Record
  • Added mergeIn and deepMergeIn to Map and List.
  • updateIn, and all *In methods accept any Iterable as key path, not just Array.
  • Optimization for concat, merge and union. If this is empty, and a single non-empty argument is provided, then attempt to return the argument unmodified.

Fixes:

  • Documentation improvements
  • Tests to ensure equality symmetry and hash equality
  • Performance improvements to collection hashing

3.2.1

15 Nov 07:18
Compare
Choose a tag to compare

Fixes

  • Ensure equality symmetry

3.2.0

15 Nov 00:13
Compare
Choose a tag to compare

New:

  • Immutable.isOrdered describes if an iterable has a defined iteration order.
  • Immutable.is and iterable#equals now respect ordered-ness to evaluate equality.

3.1.0

12 Nov 18:50
Compare
Choose a tag to compare

New:

  • Performance enhancement to Maps and Sets with 8 or fewer entries.
  • OrderedSet introduced.
  • Map and Set can now be sorted, returning an OrderedMap or OrderedSet, respectively.
  • Improved sortBy, maxBy and minBy performance

Fixed:

  • Map#set or Set#add now return themselves for a no-op involving a hash collision.
  • Accessing an Indexed Iterable (such as List) with strings are now coerced to number when possible, mirroring the behavior of native Array.
  • List, Stack and Set constructors documentation now matches behavior.
  • Records now ignore unknown keys provided to constructors.
  • OrderedMap no longer leaks memory when keys are removed.

3.0.3

05 Nov 22:16
Compare
Choose a tag to compare

A number of issues with v3.0.0 spotted and fixed by the growing Immutable.js community.

Fixes:

  • Indexed and Set constructors no longer accept Objects, an unintended edge case which led to easy to make mistakes.
  • Indexed and Set constructors accept Keyed Iterables as lists of [K,V] entries rather than dropping the keys, better mirroring ES6 Map and Set behavior.
  • Collection constructors no longer throw when provided null/undefined and instead return empty collections. Better mirroring the behavior of ES6 Map/Set.
  • concat accepts arguments of similar type as it's this's constructor. Ensures objects passed to concat are not exploded into an array of fields which is almost never intended.
  • Record equality works as advertised
  • Record iteration now includes default fields
  • Map iteration no longer incorrectly yield values on ES6 browsers (Chrome canary)
  • Implicit any removed from TypeScript files
  • OrderedMap no longer breaks when keys are removed.
  • Cursor iterators now reference proper this.
  • Improvements to example code and Readme.

3.0.2

01 Nov 02:56
Compare
Choose a tag to compare
  • mergeDeep is smarter about when to merge nested values vs replacing existing values.
  • Mention Record in README

3.0.1

29 Oct 17:52
Compare
Choose a tag to compare

Fixes:

  • Cursors in contrib now work in any ES5 environment

3.0.0

29 Oct 03:21
Compare
Choose a tag to compare

v3.0.0 brings the Immutable collection API closer to ES6 Map and Set, introduces opt-in lazy operations, clarifies the differences between keyed and non-keyed collections and more.

A lot has changed, please check out the upgrade guide for more details and help for upgrading your code to work with this new version of the library.

New:

  • Collection methods (map, filter, etc) are now eager by default.
  • Seq and toSeq for explicit lazy operations.
  • Renamed Sequence to Iterable
  • Renamed Vector to List
  • Renamed length to size
  • Constructors now always accept Iterable.
    • empty() and from() removed
    • of(...values) on indexed and set collections
  • contrib/ directory
    • Cursor now moved to contrib.
  • "is type" predicates exist on all major Iterable types, such as Map.isMap().
  • groupBy() and countBy() return concrete Map.
  • Added: keyOf() and lastKeyOf() on KeyedIterable are similar to indexOf() and lastIndexOf() on IndexedIterable.

2.6.2

28 Oct 17:32
Compare
Choose a tag to compare

Fixes:

  • Vector slicing along N^2-1 bound could result in exception.
  • Negative slice could result in a sized collection.
  • Many link and url fixes to README.

2.6.1

24 Oct 17:56
Compare
Choose a tag to compare

Fix filename issue on case-sensitive file systems