Skip to content

Releases: reazen/relude

Add Relude.Globals module for use as a global open

01 May 20:13
Compare
Choose a tag to compare

v0.5.0

  • Add a special module named Relude_Globals (aka Relude.Globals) which is intended to serve those who want to use a global open Relude.Globals to bring in the core Relude functionality.
  • Note: it is not required to open Relude.Globals to use Relude. We are also not encouraging or discouraging anyone to globally open anything from Relude - it is a personal/team decision as to whether to globally open any library for use.
  • See #71

Additional AsyncData/AsyncResult helpers

01 May 17:09
Compare
Choose a tag to compare

v0.4.0

  • Add some helper functions to AsyncData/AsyncResult like fold, foldLazy, foldByValue, etc.
  • See #66

Refactoring, renaming, and bugfixes

19 Apr 00:31
Compare
Choose a tag to compare

v0.3.0

At a Glance

  • IO got some testing and bugfixes courtesy of @johnhaley81 and @andywhite37
    • Better interop with Js.Promise
    • catchError should work better for Async now
  • @mlms13 refactored the List and Array modules
    • More code is reused (by deriving functionality from Relude_Foldables)
    • Naming and signatures are more consistent across modules
  • Array docs exist, and take and drop work more predictably with negatives (h/t @jdeisenberg)

🚨 Breaking Changes 🚨

  • In both Relude.List and Relude.Array:
    • take and drop are now takeExactly and dropExactly
    • takeUpTo and dropUpTo are now take and drop
  • In Relude.List:
    • removeBy and remove are now removeFirstBy and removeFirst
    • List.sumFloat is now List.Float.sum
    • List.String.map is now Relude.String.mapChars
    • containsF, indexOfF, sortF are now containsBy, etc
    • Relude_ListF is gone, just use Relude.List instead
    • Relude.List.Sequence (used internally by NonEmpty) is no longer public
    • Nested typeclass modules (e.g Relude.List.Option.Traversable) have been removed (for now?)
  • In Relude.Array:
    • Removed Array.one (use Array.pure instead)
    • Removed Array.mkString (use Array.String.joinWith instead)
    • Rename several functions to ...By:
      • contains is now containsBy
      • indexOf is now indexOfBy
      • sort is now sortBy
      • distinct is now distinctBy
  • In Relude.String
    • replaceAll is now replaceEach

✨ New Things ✨

  • In both Relude.List and Relude.Array
    • minBy, min, maxBy, and max functions
  • In Relude.List:
    • List.Result.sequence: list(Belt.Result.t('a, 'e)) => Belt.Result.t(list('a), 'e)
    • List.Float now matches List.Int with functions for contains, sort, sum, product`, and more
  • In Relude.Array:
    • Array.void, Array.flap, Array.map2 (up to map5) from Array.Monad
    • Array.countBy from Array.Foldable
    • Array.sort (which uses an ORD module)
    • Array.contains, Array.indexOf, and Array.distinct (which use an EQ module)
    • Array.fold and Array.intercalate (which use a MONOID module)
    • Array.shuffle which returns a copy (unlike shuffleInPlace)
    • Array.removeFirst, Array.removeFirstBy, Array.removeEach, Array.removeEachBy
    • Add submodules (e.g. Array.String, Array.Int, etc) to match the List submodules
  • In Relude.String:
    • removeFirst and removeEach

Various small, but breaking changes

11 Apr 05:51
0c8896e
Compare
Choose a tag to compare

v0.1.1: Test release for versioning strategy using npm version

15 Feb 22:29
Compare
Choose a tag to compare

This was just a test to see how tagging and releases work.

v0.1.0: An initial "release"

12 Feb 21:33
Compare
Choose a tag to compare

While the README still includes a "WIP" note, we've been using roughly this version of Relude in production for several months. It works reasonably well, but there are known inconsistencies in function names and signatures.

We plan to begin addressing several open issues that will lead to breaking API changes (generally with easy migration paths). In order to properly document those breaking changes, we need to be able to compare the API with some previous point in time. This 0.1.0 release marks that point in time.