-
v0.61.1 - 2023/11/15
- Fully compatible with versions down to 0.59.0
- Fixed
reduceWithandreduceRightWithnot using the initial value whenreducewas called with more than three arguments
-
v0.61.0 - 2022/11/09
- Fully compatible with versions down to 0.59.0
- Added
symmetricDifference - Big performance improvements to the following functions in ES6 aware environments:
difference,intersection,symmetricDifference,union,unionBy,uniquesanduniquesBy - Gave a new coat of paint to all tests
- Updated doc comments and streamlined some parameter names
- Dropped TravisCI for Github actions
-
v0.60.0 - 2021/03/08
- Fully compatible with versions down to 0.59.0
- Added
mean,medianandreplace
-
v0.59.2 - 2020/07/17
- Fully compatible with version 0.59.0
- Updated "exports" property in
package.jsonto address the issue where some tools couldn't access the manifest file. See https://github.com/nodejs/node/issues/33460. - Got rid of ES5 in all examples
-
v0.59.0 - 2020/07/07
- Sorry for all the renaming, but I'm in the process of freezing the API and wanted to tackle some inconsistencies in naming choices.
- Updated to support Node.js ES modules (and renamed ES modules build to
lamb.mjs) - Added
splitandsplitBy - API change: renamed
picktopickInandpickKeystopick - API change: renamed
skiptoskipInandskipKeystoskip - API change: renamed
renametorenameInandrenameKeystorename - API change: renamed
plucktopluckFromandpluckKeytopluck - API change: renamed
casetocasusto avoid confusion and clashing with the switch statement's case - API change: renamed
invokerandinvokerOntoinvokeandinvokeOn - Fixed
.DS_STOREfile leaking again in thedistfolder
-
v0.58.0 - 2019/06/18
- Added one file ES modules build
- API change:
invokernow accepts an array of bound arguments - API change: benched
immutablefor the moment being - Added
joinandjoinWith - Added
findLast,findLastWhere,findLastIndex,findLastIndexWhere - Added
dropLastWhileandtakeLastWhile - Switched from uglify-js to terser
- Updated docs, linting and tests
-
v0.57.0 - 2019/02/12
- Splitted the library into ES modules
- API change:
sort,sortWithandsortedInsertnow accept an array of sorters - API change: removed
@@lamb/placeholderproperty as now the placeholder is exported as__ - Switched to Jest as a test suite
-
v0.56.0 - 2018/07/15
- API change:
compose,intersection,merge,mergeOwn,unionandzipare now binary functions, and so are functions built withunionBy. - API change:
adapter,allOf,anyOf,collectandpipenow accept an array of functions - Updated doc comments and tests
- API change:
-
v0.55.0 - 2018/03/21
- Fully compatible with versions down to 0.53.x
- Added
rotateandrotateBy - Updated link to jsDelivr
- Fixed and updated doc comments and tests
-
v0.54.1 - 2018/03/09
- Fixed:
setPathandupdatePathweren't returning unary functions, and further arguments would have overwritten the previous ones - Updated doc comments
- Updated linting rules
- Fixed:
-
v0.54.0 - 2017/08/01
- Added
mapValuesandmapValuesWith - Added "@since" tags to doc comments
- Added linting for tests
- Added
-
v0.53.1 - 2017/04/06
- Fixed:
hasKeyValuewas returningtruefor any existent property when searching for anundefinedvalue - Updated object checking tests
- Fixed:
-
v0.53.0 - 2017/03/30
- API change: unfilled placeholders in functions built with
asPartialnow assume anundefinedvalue - API change:
rangenow converts to number its parameters and will return an empty array if the specified range is invalid - API change:
differenceis now a binary function and returns a result without duplicates - Changed the name of the property holding the library's version
- Added the possibility to use custom placeholders in partial application
- API change: unfilled placeholders in functions built with
-
v0.52.0 - 2017/03/17
- API change:
partialis no longer variadic and accepts a function and an array of arguments instead - API change:
getArgAtand all array accessors now convert their index parameter to integer - API change: reverted change made in v0.50.0 about
composeandpipe: now they return again theidentityfunction if called without arguments - API change:
mergeandmergeOwnnow throw fornilvalues and convert to object everything else as before - API change:
intersectionnow return an empty array if called without parameters - Fixed:
transposeandzipnow correctly throw whennilvalues, preceded by empty array-likes, are encountered - Added
partialRight differenceandintersectionare now correctly documented to work with array-like objects- Updated test and moved shared variables to an external file
- API change:
-
v0.51.0 - 2017/02/20
- API change: removed the
iterateeparameter fromuniques - API change: removed
fromIndexparameter fromcontainsandisIn - API change:
tapArgsisn't variadic anymore and accepts an array of "tappers" as the second parameter - API change: renamed
dropandtaketodropFromandtakeFrom - API change: renamed
dropNandtakeNtodropandtake - API change: the
falseFnparameter ofconditionis no longer optional - Added
caseto quickly build cases foradapter - Added
unionByanduniquesBy
- API change: removed the
-
v0.50.0 - 2017/02/08
- API change: renamed
istoareSameandisSVZtoareSVZ. The old names are now used for curried version of those functions - API change: removed
isNot - API change: renamed
isGT,isGTE,isLTandisLTEtogt,gte,lt,lte. The old names are now used for right curried versions of these functions. - API change:
composeandpipenow build a function throwing an exception if they are called without arguments - API change: renamed
addtosum.addis now used as a curried version ofsum. - Added
deductas a right curried version ofsubtract - Added
multiplyByas a curried version ofmultiply - Added
divideByas a right curried version ofdivide - Added optimized currying for functions with arity 2 and 3
- Performance improvement for
composeandpipe
- API change: renamed
-
v0.49.0 - 2017/01/24
- API change: removed optional context parameter in every function that was using it
- API change:
aritizenow will simply convert itsarityparameter to integer, instead of giving it a special meaning when isundefined - Fixed:
skipandskipKeysnow convert to string every value in theblacklist - Fixed:
hasKeyValuenow correctly returnsfalsewhen searching for anundefinedvalue in a non-existent property - Fixed:
pathExists,pathExistsInandhasPathValuewill no longer see valid paths when a negative array index is out of bounds - Minor performance improvements for
pick,pickIf,skipandskipIf - Added tests with sparse arrays where needed and updated existing ones with misleading texts / specs
- Tidied up test code a bit by grouping some common variables
- Updated tests for
hasPathValueand "pick" and "skip" functions - Updated tests of
updatePathto check negative array indexes that are out of bounds
-
v0.48.0 - 2017/01/10
- API change:
sliceisn't a generic anymore to ensure that dense arrays are returned and has no optional parameters - Fixed:
pullandpullFromnow considernils received as thevaluesparameter as empty arrays - Added
sliceAt - All array functions always return dense arrays now
- Updated tests
- API change:
-
v0.47.0 - 2016/12/16
- API change: renamed
applytoapplication - API change: renamed
applyArgstoapplyTo - API change:
clampnow converts to number its arguments and returnsNaNifminis greater thanmax - API change: removed
wrap - Re-added
applyas a left-curried version ofapplication - Added
clampWithinandisInstanceOf - Updated tests and doc comments
- API change: renamed
-
v0.46.0 - 2016/12/07
- Fully compatible with versions down to 0.44.x
- Added
isFinite,isInteger,isSafeInteger - Code clean-up and minor performance improvements in sorting functions
- First step in improving the documentation site
-
v0.45.0 - 2016/11/14
- Fully compatible with versions down to 0.44.x
- Added
pullandpullFrom - Added
keySatisfiesandpathSatisfies - Updated examples and doc comments
-
v0.44.0 - 2016/11/08
- API change:
repeatandtestWithnow throw an exception when the source string isniland convert to string every other value - API change:
repeatnow floors the value received as thetimesparameter instead of ceiling it - API change: the
charparameter of the padding functions isn't optional anymore and will be coerced to string - Fixed: predicates built with
testWithare now safe to reuse even when the global flag is used in the pattern - Added
appendandappendTo - Updated tests of all string functions
- API change:
-
v0.43.0 - 2016/11/03
- Fully compatible with versions down to 0.40.x
- Added
pathExistsandpathExistsIn - Improved performance of
setIn,setKey,updateInandupdateKey - Improved performance of
setPath,setPathIn,updatePathandupdatePathIn
-
v0.42.0 - 2016/10/25
- Fully compatible with versions down to 0.40.x
- Added
unlessandwhen - Improved performance of
condition
-
v0.41.0 - 2016/09/08
- Fully compatible with versions down to 0.40.x
- Added
findWhere,findIndexWhere,hasPathValue findnow usesfindIndexto perform the search to avoid duplicate code- Minor performance gain when
aritizeneeds to addundefinedarguments
-
v0.40.0 - 2016/09/02
- API change:
hasKeyValuenow uses the “SameValueZero" comparison - Fixed:
updatePathandupdatePathIntreated unassigned positive indexes in sparse arrays as non existent properties - Updated tests for
hasKeyValue - Updated tests for “pick” and “skip” functions
- Updated tests for “pairs”, “tear” and “values” functions
- Updated tests of array accessors
- Updated tests of object and path accessors
- Improved performance of
hasKeyValue
- API change:
-
v0.39.0 - 2016/08/26
- Fully compatible with versions down to 0.37.x
- Added
every,everyIn,some,someIn - Updated tests for functions using predicates
- Made
intersectionuseeveryIninstead of the native method - Updated doc comments, examples and tests for
uniques - Minor performance improvement of
uniques
-
v0.38.0 - 2016/08/19
- Fully compatible with versions down to 0.37.x
- Improved performance of
flatMap,flatMapWith,flattenandshallowFlatten - Greatly improved performance of all grouping functions
- Greatly improved performance of
transpose, improved performance ofzipas a consequence - Greatly improved performance of
getArgAt
-
v0.37.0 - 2016/08/10
- API change:
sortedInsertnow returns an array copy of the given array-like if there is no element to insert, though still acceptsundefinedvalues if they are passed explicitly - Greatly improved performance of all curry (and curried) functions
- Optimized
invokerandinvokerOn - Minor performance improvements in the usage of the arguments object
- API change:
-
v0.36.0 - 2016/08/04
- Fully compatible with versions down to 0.34.x
- Added
asPartial
-
v0.35.0 - 2016/07/29
- Fully compatible with versions down to 0.34.x
- Added
collect,pickKeysandskipKeys - Updated the examples of
anyOfandclamp
-
v0.34.0 - 2016/07/19
- API change:
filter,forEach,map,reduceandreduceRightaren’t array generics anymore and have been replaced with performant custom implementations as JS engines didn’t get any better. Unlike native methods, these custom implementations won’t skip unassigned or deleted indexes in arrays. - Overall performance improvements (other than the ones caused by the aforementioned custom implementations) and some code clean-up
- API change:
-
v0.33.0 - 2016/07/08
- API change:
sortedInsertnow accepts array-like objects - Completed "fifth round" of test updating
- API change:
-
v0.32.0 - 2016/07/01
- API change:
takeandtakeNnow convertundefinedvalues passed asnto Number (zero) before callingslice - API change:
tapArgs,updateAtandupdateIndexare now more strict about their function parameter as “falsy” values failed to throw an exception before - API change: curry functions now let empty calls consume the arity
- Completed “fourth round" of test updating
- API change:
-
v0.31.0 - 2016/06/24
- API change: all path functions and object setters now throw a TypeError
nilvalues received assource, other values will be converted to Object - API change:
setPath,setPathInnow convert to string thepathparameter - API change: the “set” and “update” path functions now give priority to existing object keys over array indexes, like the “get” path functions
- Completed “third round" of test updating
- API change: all path functions and object setters now throw a TypeError
-
v0.30.0 - 2016/06/21
- API change:
aritizenow addsundefinedarguments if the desired arity is greater than the amount of received parameters - API change:
applyandapplyArgsnow treat non-array-like values for theargsparameter as empty arrays - API change:
allOf,anyOf,apply,applyArgs,aritize,binaryandunarynow keep the functions' context - Completed “second round" of test updating
- API change:
-
v0.29.0 - 2016/06/16
- API change:
pick,pickIf,skipandskipIfnow throw exceptions only fornilvalues in the data argument, other values will be converted to Object - API change:
picknow throws exceptions only fornilvalues in thewhitelistparameter, other values will be treated as empty arrays - API change:
skipnow throws exceptions only fornilvalues in theblacklistparameter, other values will be treated as empty arrays - API change:
notnow correctly keeps the predicate’s context
- API change:
-
v0.28.0 - 2016/06/03
- API change:
differencenow accepts array-like objects - API change: String padding functions now convert to string
non-nilsources before using them - API change: String padding functions won’t throw errors for
nilvalues passed as padding chars and use the default value instead - API change:
flattenandshallowFlattennow throw an exception only fornilvalues, converts array-likes to arrays and treat every other value as an empty array - API change:
differencenow throws an exception only fornilvalues passed as the main parameter; other unexpected values will be treated as empty arrays - API change:
differenceparameters but than the main one will be treated as an empty array if they aren’t array-like - API change:
fromPairsnow throw exceptions only fornilvalues, other unexpected values will be treated as empty arrays - API change:
hasandhasKeynow throw exceptions only fornilvalues, other unexpected values will be converted to Object - Completed "first round" of test updating
- API change:
-
v0.27.0 - 2016/05/23
- API change: renamed
inserttosortedInsert - Added
insert,insertAt,reduceWithandreduceRightWith
- API change: renamed
-
v0.26.0 - 2016/05/16
- Fully compatible with versions down to 0.25.x
- Added
rename,renameKeysandrenameWith
-
v0.25.1 - 2016/05/10
- API change:
enumerables,pairs,tearandvaluesnow throw a TypeError if supplied withnullorundefined - API change:
ownPairs,ownValuesandtearOwnnow throw a TypeError only if supplied withnullorundefinedregardless of the ECMAScript engine you are using - Added
keysas a shim of ES6’sObject.keys
- API change:
-
v0.24.0 - 2016/05/05
- API change:
setPathandsetPathInnow treat non-enumerable properties encountered in a path as non-existent properties - Added
updatePathandupdatePathIn
- API change:
-
v0.23.0 - 2016/04/27
- API change:
getPathandgetPathInnow support negative indexes - API change: The function returned by
getAtnow throw exceptions only if called withnullorundefinedand returnsundefinedfor any other non-array-like object - Added
getIndex,setIndexandupdateIndex
- API change:
-
v0.22.0 - 2016/04/19
- Fully compatible with versions down to 0.21.x
- Added
updateIn,updateKeyandupdateAt
-
v0.21.0 - 2016/04/13
- API change:
getPathInandgetPathnow returnundefinedfor any non existent path, instead of throwing exceptions when anundefinedvalue was a part of the path instead of being its target - API change: renamed
sequencetogenerateto avoid confusion with other languages, concepts and libraries - Added
count,countBy,index,indexBy
- API change:
-
v0.20.0 - 2016/04/08
- API change: The
mergeOwnfunction now convertsnullandundefinedvalues to empty objects instead of throwing exceptions - Added
setPathandsetPathIn
- API change: The
-
v0.19.0 - 2016/04/05
- API change: renamed
getWithPathtogetPathIn - Added
getPathandreverse
- API change: renamed
-
v0.18.0 - 2016/04/01
- API change: renamed
gettogetIn - Added
setInandsetKey
- API change: renamed
-
v0.17.0 - 2016/03/29
- Minor API change (shouldn't affect anyone): changed integer conversions in
isIn,transposeand currying functions - API change:
getAtno longer accepts strings as indexes - Added
getArgAtandsetAt
- Minor API change (shouldn't affect anyone): changed integer conversions in
-
v0.16.0 - 2016/03/23
- Fully compatible with versions down to 0.15.x
- Added
init,tail,getAt,head,last
-
v0.15.3 - 2016/03/21
- Fully compatible with versions down to 0.15.x
- Updated
genericfunction and removed unused Function.prototype caching - Added specific tests for
generic,sorterandsorterDesc - Minor improvements in documentation
-
v0.15.2 - 2016/03/17
- Fully compatible with versions down to 0.15.x
- Added support for Travis CI and Coveralls
- Updated README and fixed typo in documentation
-
v0.15.1 - 2016/03/08
- Fully compatible with version 0.15.0
- Minor performance improvements
-
v0.15.0 - 2016/03/03
- API change: changed
insertandsorter - Added
invokerOn,sort,sorterDescandsortWith
- API change: changed
-
v0.14.0 - 2015/05/13
- Fully compatible with versions down to 0.13.x
- Added
transpose,zip,zipWithIndex
-
v0.13.0 - 2015/05/06
- API change:
difference,intersectionanduniquesnow use the "SameValueZero" comparison - Added
clamp,contains,isIn,isSVZ
- API change:
-
v0.12.0 - 2015/04/22
- Fully compatible with versions down to 0.9.x
- Added
enumerablesandpluckKey - Added
mergeOwn,ownPairs,ownValuesandtearOwn
-
v0.11.0 - 2015/04/17
- Fully compatible with versions down to 0.9.x
- The
unionfunction now can work with array-like objects - Added
flatMapWith,partition,partitionWith
-
v0.10.0 - 2015/04/15
- Fully compatible with version 0.9.x
- Added
mergefunction - Added
binaryandunaryas shortcuts for common use cases ofaritize
-
v0.9.0 - 2015/04/10
- API change: dropped the boolean parameter in
flattenand addedshallowFlatten - API change: dropped the boolean parameter in
curryandcurryable, addedcurryRightandcurryableRight - API change: renamed
typeOftotypeto avoid confusion with the operator - Added the
filterWithfunction
- API change: dropped the boolean parameter in
-
v0.8.0 - 2015/04/03
- API change: the
valuesfunction now picks from all enumerable properties, even inherited - API change: renamed
getFromPathtogetWithPath - Added
fromPairs,immutable,make,pairs,tear
- API change: the
-
v0.7.0 - 2015/03/25
- Fully compatible with previous 0.x versions
- Added the
groupandgroupByfunctions - Added the
findandfindIndexfunctions - Some long due performance improvements on
curry,curryableandpartial
-
v0.6.3 - 2015/03/20
- The documentation is now online
- Minor fixes in doc comments
-
v0.6.2 - 2015/03/18
- First public release