CHANGELOG.md

January 16, 2025 ยท View on GitHub

11.3.1

  • Sync with Rambda version 9.4.2

11.3.0

  • Fix deno release

  • Sync with Rambda version 9.4.1

11.2.0

  • R.throttle TS typings now support no argument case for function input.

  • Sync with Rambda version 9.3.0

11.1.1

Fix broken build due to changes to TypeScript definitions for lenses.

11.1.0

  • Improve R.mapToObject types - Issue #96

  • Sync with Rambda version 9.2.0

11.0.0

  • Sync with Rambda version 9.1.0

  • Change typings of R.lensEq to match Rambda-adjust typings

10.1.0

  • Simplify TypeScript logic of R.pipeAsync/R.composeAsync/R.pipedAsync - MR #698

  • Sync with Rambda version 8.6.0

10.0.0

  • Sync with Rambda version 8.0.0

  • Add R.omitPaths - Issue #681

  • Add R.noop

9.1.1

Add missing fix for type: module imports.

9.1.0

  • Sync with Rambda version 7.5.0

9.0.0

From this release, CHANGELOG will simply refer to the Rambda version linked to the release, instead of listing Rambda changes here as well. In this case, the version referring to this release is 7.3.0.

  • Breaking change due to renaming of R.mapFastAsync to R.mapParallelAsync and R.mapAsyncLimit to R.mapParallelAsyncWithLimit.

8.1.0

  • Breaking change due to renaming of R.partialCurry to R.partialObject.

  • Wrong R.update if index is -1 - PR #593

  • Wrong curried typings in R.anyPass - Issue #642

  • R.modifyPath not exported - Issue #640

  • Add new method R.uniqBy. Implementation is coming from Ramda MR#2641

  • Apply the following changes from @types/rambda:

-- [https://github.com/DefinitelyTyped/DefinitelyTyped/commit/bab47272d52fc7bb81e85da36dbe9c905a04d067](add AnyFunction and AnyConstructor)

-- Improve R.ifElse typings - https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59291

-- Make R.propEq safe for null/undefined arguments - https://github.com/ramda/ramda/pull/2594/files

  • Rambda's pipe/compose doesn't return proper length of composed function which leads to issue with R.applySpec. It was fixed by alligning Rambda's pipe/compose with Ramda logic - Issue #627

  • Replace Async with Promise as return type of R.type.

  • Add new types as TypeScript output for R.type - "Map", "WeakMap", "Generator", "GeneratorFunction", "BigInt", "ArrayBuffer"

  • Add new methods after Ramda version upgrade to 0.28.0:

-- R.count -- R.modifyPath -- R.on -- R.whereAny

  • Replace Async with Promise as return type of R.type.

  • Remove isFunction method

  • Add R.juxt method

  • Add R.contains method

  • Add R.mapcat method WIP

  • Add R.flattenObject method

  • Add R.deletePath method WIP

  • Change R.count logic to match the new Ramda.count method. Instead of counting for target value, the counting is done by predicate function.

8.0.1

  • Rambdax doesn't work with pnpm due to wrong export configuration - Issue #619

8.0.0

  • Breaking change - sync R.compose/R.pipe with @types/ramda. That is significant change so as safeguard, it will lead a major bump. Important - this lead to raising required TypeScript version to 4.2.2. In other words, to use Rambda you'll need TypeScript version 4.2.2 or newer.

Related commit in @types/ramda - https://github.com/DefinitelyTyped/DefinitelyTyped/commit/286eff4f76d41eb8f091e7437eabd8a60d97fc1f#diff-4f74803fa83a81e47cb17a7d8a4e46a7e451f4d9e5ce2f1bd7a70a72d91f4bc1

There are several other changes in @types/ramda as stated in this comment. This leads to change of typings for the following methods in Rambda:

-- R.unless

-- R.toString

-- R.ifElse

-- R.always

-- R.complement

-- R.cond

-- R.is

-- R.sortBy

-- R.dissoc

-- R.toPairs

-- R.assoc

-- R.toLower

-- R.toUpper

  • One more reason for the breaking change is changing of export declarations in package.json based on this blog post and this merged Ramda's PR. This also led to renaming of babel.config.js to babel.config.cjs.

  • Add R.apply, R.bind and R.unapply

  • Fix missing return value in R.throttle - Issue #76

  • Add R.findAsync - Issue #65

  • Fix R.debounce typings as the method actually doesn't return a result.

  • R.startsWith/R.endsWith now support lists as inputs. This way, it matches current Ramda behavior.

  • Remove unused typing for R.chain.

  • R.map/R.filter no longer accept bad inputs as iterable. This way, Rambda behaves more like Ramda, which also throws.

  • Make R.lastIndexOf follow the logic of R.indexOf.

  • Change R.type logic to Ramda logic. This way, R.type can return Error and Set as results.

  • Add missing logic in R.equals to compare sets - Issue #599

  • Improve list cloning - Issue #595

  • Handle multiple inputs with R.allPass and R.anyPass - Issue #604

  • Fix R.length wrong logic with inputs as {length: 123} - Issue #606.

  • Improve non-curry typings of R.merge by using types from mobily/ts-belt.

  • Improve performance of R.uniqWith.

  • Wrong R.update if index is -1 - PR #593

  • Make R.eqProps safe for falsy inputs - based on this opened Ramda PR.

  • Incorrect benchmarks for R.pipe/R.compose - Issue #608

  • Fix R.last/R.head typings - Issue #609

7.4.1

Fixing R.uniq was done by improving R.indexOf which has performance implication to all methods importing R.indexOf:

  • R.includes
  • R.intersection
  • R.difference
  • R.excludes
  • R.symmetricDifference
  • R.union

7.4.0

  • Add R.objOf method

  • Add R.mapObjIndexed method

7.3.0

  • Add R.rejectIndexed and R.partitionIndexed methods - Rambdax issue #67

  • Expose R.mapObject, R.mapArray, R.filterObject and R.filterArray - Issue #578

  • R.has use Object.prototype.hasOwnProperty- Issue #572

  • Fix R.intersection wrong order compared to Ramda.

  • Expose immutable.ts typings which are Rambda typings with readonly statements - Issue #565, Rambdax issue #69

  • R.path wrong return of null instead of undefined when path value is null - PR #577

  • Wrong arguments order in R.removeIndex - Issue #66

  • Change R.piped typings to mimic that of R.pipe. Main difference is that R.pipe is focused on unary functions.

  • Fix wrong logic when R.without use R.includes while it should use array version of R.includes.

  • Use uglify plugin for UMD bundle.

  • Remove ts-toolbelt types from TypeScript definitions. Most affected are the following methods, which lose one of its curried definitions:

  1. R.maxBy
  2. R.minBy
  3. R.pathEq
  4. R.viewOr
  5. R.when
  6. R.merge
  7. R.mergeDeepRight
  8. R.mergeLeft

7.2.0

  • Approve PR #61 - fix wrong R.isValid typings

  • R.produceAsync returns promise even if all rules are synchronous.

  • R.defaultTo no longer accepts infinite inputs, thus it follows Ramda implementation.

  • R.equals supports equality of functions.

  • R.pipe doesn't use R.compose.

  • Close Issue #561 - export several internal TS interfaces and types

  • Add CHANGELOG.md file in release files list

7.1.0

  • Add R.tryCatchAsync

  • Add R.xnor

  • R.equals supports equality of functions.

  • Close Issue #559 - improve R.propOr typings

  • Close Issue #560 - apply immutable lint to TypeScript definitions

  • Close Issue #553 - fix problem with curried typings of R.prop

  • Fix wrong R.last typing

  • Upgrade all rollup related dependencies

  • R.type supports Symbol just like Ramda.

  • Remove file extension in main property in package.json in order to allow experimental-modules. See also this Ramda's PR - https://github.com/ramda/ramda/pull/2678/files

  • Import R.indexBy/R.when/R.zipObj/R.propEq/R.complement changes from recent @types/ramda release.

  • R.tryCatch stop supporting asynchronous functions; the previous behaviour is exported to Rambdax as R.tryCatchAsync

7.0.1

  • Fix missing Evolved declaration in TypeScript definition

7.0.0

  • Rename R.produce to R.produceAsync

  • Add R.produce which is synchronous version of R.produceAsync

  • Stop supporting expression inside template's props. Also, spaces are no longer allowed between {{ and }}, i.e. R.interpolate('{{ foo }}', x) should be R.interpolate('{{foo}}', x).

  • Add typings for R.takeWhile when iterable is a string

  • Add R.takeLastWhile

  • Add R.dropWhile

  • Add R.eqProps

  • Add R.dropLastWhile

  • Add R.dropRepeats

  • Add R.dropRepeatsWith

  • Add R.evolve

6.2.0

  • R.switcher accepts undefined as valid input

  • Add R.props

  • Add R.zipWith

  • Add R.splitAt

  • Add R.splitWhen

  • Close Issue #547 - restore readonly declaration in Rambda TypeScript definitions.

  • R.append/R.prepend now work only with arrays just like Ramda. Previous behaviour was for them to work with both arrays and strings.

  • Sync R.pluck typings with @types/ramda as there was a tiny difference.

6.1.0

  • Add R.mapIndexed

  • Add R.filterIndexed

  • Add R.forEachIndexed

  • Fix R.and wrong definition, because the function doesn't convert the result to boolean. This introduce another difference with @types/ramda.

  • Add R.once

  • Add R.or

6.0.0

  • Breaking change - R.map/R.filter/R.reject/R.forEach/R.partition doesn't pass index as second argument to the predicate, when looping over arrays. The old behaviour of map, filter and forEach can be found in Rambdax methods R.mapIndexed, R.filterIndexed and R.forEachIndexed(introduced in version 6.1.0).

  • Breaking change - R.all/R.none/R.any/R.find/R.findLast/R.findIndex/R.findLastIndex doesn't pass index as second argument to the predicate.

  • Add R.applyDiff method

  • Change R.assocPath typings so the user can explicitly sets type of the new object

  • Typings of R.assoc match its @types/ramda counterpart.

  • Simplify R.forEach typings

  • Remove ReadonlyArray<T> pattern from TypeScript definitions - not enough value for the noise it adds.

  • Fix typing of R.reject as it wrongly declares that with object, it pass property to predicate.

5.1.0

  • Add R.takeUntil method

  • Fix wrong R.takeWhile

5.0.0

  • Deprecate R.change method - it does too much; partially replaced with R.updateObject.

  • Deprecate R.compact method - vague use case; R.filter does the same job.

  • R.produce always returns a promise

  • Add R.updateObject method

  • Add R.takeWhile method

  • Add R.viewOr method

  • Add R.pipeAsync method

  • Add R.removeIndex method

  • Add R.excludes method

  • R.includes throws on wrong input, i.e. R.includes(1, null)

  • Close Issue #524 - R.assocPath wrong logic when number is used in array path input.

  • R.mapToObjectAsync supports currying

  • R.mapAsyncLimit supports currying

  • Fix R.mapAsync to pass property to iterator, when input is an object.

  • Fix currying for several async methods - R.tapAsync, R.produce, R.filterAsync *(extend typings)

4.2.0

  • Add R.move method

  • Add R.union method

  • Add R.lensSatisfies method

  • Add R.mapKeys method

  • Add R.sortByPath method

  • Add R.sortByProps method

  • Close Issue #519 - ts-toolbelt needs other type of export with --isolatedModules flag

4.1.0

  • R.template is renamed to R.interpolate

  • R.equals now supports negative zero just like Ramda.equals

  • Add R.replaceAll method

  • Add R.lensEq method

4.0.1

Forgot to export R.of because of wrong marker in files/index.d.ts

4.0.0

Deprecate the following methods:

  • R.promiseAllObject - because R.produce serves the same purpose
  • R.composed - because R.piped makes more sense, when we want to pass the input at the start of the function
  • R.defaultToStrict - confusing logic
  • R.findInObject - overestimated importance
  • R.headObject - overestimated importance
  • R.includesType - overestimated importance
  • R.inject - confusing logic
  • R.isAttach - confusing logic
  • R.mergeRight - overestimated importance
  • R.opposite - overestimated importance
  • R.otherwise - overestimated importance
  • R.pushUniq - overestimated importance
  • R.resolve - overestimated importance
  • R.s - overestimated importance
  • R.toggle - overestimated importance
  • R.uuid - not suitable
  • R.whenAsync - overestimated importance

Move the following methods to Rambda and change their logic to match Ramda implementation:

  • R.hasPath
  • R.unless
  • R.pathEq
  • R.tryCatch
  • R.where
  • R.whereEq

Also these changes:

  • R.flatMap - renamed to R.chain and moved to Rambda

  • R.ifElseAsync - accept any number of arguments for the returned function

  • R.produce, R.filterAsync, R.debounce, R.throttle - fix typings

  • R.mapAsyncLimit - drop support for curring and therefore for usage with R.composeAsync

  • Improve R.ok throwed error message

  • R.ok returns undefined instead of true when validation passes.

  • R.mergeDeep is renamed to R.mergeDeepLeft

  • Add R.pipeAsync

  • Take R.partialCurry from Rambda as it is deprecated there

3.7.0

Sync with Rambda

Add R.lens

Add R.lensIndex

Add R.lensPath

Add R.lensProp

Add R.over

Add R.set

Add R.view

Add R.paths

Add R.xor

Add R.cond

3.6.0

  • Add R.mapAsyncLimit

  • Add R.toggle, match Ramda upcoming method specification

  • Add R.isValidAsync

  • Extend R.template without introducing breaking change

3.5.0 Sync with Rambda - add methods descriptions to TypeScript definitions

3.4.0 Sync with Rambda and close Issue #42

3.3.0 Fix R.sortObject typing

3.3.0 Add R.filterAsync and R.sortObject methods

3.2.0 R.uuid accept second argument in order to return string only uuid

3.1.0 Dynamic set of exports lead to adding previously ommited Rambda exports such as R.identical

3.0.3 Sync with Rambda - new functionality of R.isEmpty

3.0.2 Add typings for R.mapToObject

3.0.1 Fix typings

3.0.0 Breaking change as Rambda also has breaking changes

Read more about it in Rambda changelog

Also with this versions, typings tests are provided and several definitions are changed.

  • R.anyTrue, R.anyFalse, R.allTrue, R.allFalse use internal isTruthy and isFalsy methods. Empty array and object with zero length are considered falsy.

  • Deprecate R.contains

  • Deprecate R.defaultToWhen

  • Moved R.runTests to helpers repo

2.17.0 Change in R.runTests logic. It will be removed from Rambdax to helpers repo.

2.16.0 Restore R.runTests but without documentation

  • export getEvaluations, getPositiveEvaluation, getNegativeEvaluation in the context of R.runTests

2.15.0 Several changes

  • TypeScript definitions have been updated and typings tests are introduced

  • R.mapAsync and R.mapFastAsync pass index as second argument

2.14.1 Restore R.contains

2.14.0 Several changes:

  • R.inject accept before flag as fourth argument

  • Remove R.includesAny

  • Improve typing of R.partition

  • R.nextIndex and R.prevIndex work also with number as second argument

2.13.1 Deprecate R.log and R.runTests

2.12.3 Add 'dist' directory to files

2.12.2 Add R.mapToObject typings

2.12.0 Sync with Rambda

2.11.1 Fix R.waitFor

2.11.0 Add R.toDecimal

2.10.2 Fix issue 32

2.10.0 deprecate R._

2.9.1 R.fromPairs/toPairs typing

2.9.0 npm doesn't update version on their site

2.8.2 R.map typing

2.8.0 Sync with Rambda | no need for create types script

2.7.0 Add R.prevIndex

2.6.2 Sync with Rambda

2.6.0 R.log depends on RAMBDAX_LOG

2.5.0 Rambda's partial

2.4.0 Add R.uuid

2.3.0 R._ parse to constant case

This introduce breaking change for ie11 as noted in issue 31 which is fixed with 2.10.0 which deprecates this method

2.2.1 Add R.log, R.logInit and R.logHolder

2.1.0 Add R._

2.0.0 Add R.toggle

1.9.0 Add R.pushUniq

1.8.2 No need for sourcemaps

1.8.1 Fix building with regeneratorRuntime

1.8.0 Upgrade to new major Rollup release

  • Restore R.headObject

  • Add R.hasPath method

1.7.2 R.memoize contains dev console.logs

1.7.1 Forgot to build types

1.7.0 Rename R.then to R.resolve because of Ramda issue with R.then(they rename it to R.andThen)

  • Add R.isFalsy, R.nextIndex and R.mergeDeep

1.6.3 Forgot to export R.unless(credit to @mobily for the PR)

1.6.0 Restore R.compact method

1.5.6 R.maybe accepts also anonymous functions as second and third argument

1.5.5 Add R.maybe method

  • Fix errors caugth by DeepScan service
  • Fix TypeScript definitions for R.then and R.otherwise
  • R.change increase nesting level to 4

1.4.1 R.isValid didn't work with Number prototype

1.4.0 Add multiple methods

  • Add R.defaultToStrict

  • Add R.defaultToWhen

  • Add R.whereEq

  • Add R.partition

  • Add R.negate is renamed to R.opposite

  • Add R.then

  • Add R.otherwise

  • R.isValid accepts prototypes as rules, i.e. schema = {a: String}

  • The prevoious point leads to the same change applied to the methods depending on R.isValid, i.e. R.ok, R.pass and R.isAttach

    1.3.0 Add R.unless

  • R.when accepts both function and value for whenTrue argument. The same is valid for R.unless

  • export R.negate which is the same as R.complement

    1.2.0 Export src folder

    1.1.0 Restore promiseAllObject and flatMap

    1.0.1 Fix typings

    1.0.0 Deprecate the following methods:

  • compact

  • evolve

  • flatMap

  • greater

  • intersection

  • less

  • omitBy

  • pickBy

  • promiseAllObject

  • promiseAllSecure

  • rangeBy

Also pass deprecation of addIndex from Rambda@2.0.0

0.24.0 add R.pipedAsync, replace R.multiline with R.glue, remove R.validate

0.23.0 Add R.count

0.22.0 Add R.includesAny

0.21.0 Add R.includesType

0.20.1 R.pass and R.ok work with single schema.

0.20.0 Add R.pathEq

0.19.0 Add R.wait, expose already complete R.waitFor

0.18.0 AddR.anyType and R.allType

0.17.0 Rename R.is to R.pass and restore R.is original functionality.

0.16.0 getter, setter, reset methods

0.15.3 No more prepublish script

0.15.2 curry in remove

Last version with lib folder exposed