Released on October 25th, 2024.
- Fixed a bug in isMatch that did not strictly compare
null
in objects.
This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
Released on October 24th, 2024.
- Added support for invariant, identity, median, and medianBy.
- Added compatibility functions for template, uniqueId, intersectionBy, orderBy, sortBy, and some.
- Made it possible to use drop, dropRight, every, take, and takeRight directly as iteratees, allowing for usage like
arr.map(drop)
. - Corrected merge to disallow primitive values such as numbers or strings.
This version includes contributions from @dayongkr, @Na-hyunwoo, @ssi02014, @kaehehehe, @jakvbs, @D-Sketon, and @seonghun0828. Thank you for your valuable contributions!
Released on October 16th, 2024.
- Fixed a problem with isJSONValue, isJSONArray, and isJSONObject that led to circular dependencies.
- Enhanced flatten, flattenDeep, flattenDepth, slice, and zipObjectDeep to work with array-like objects in our compatibility library, ensuring they are fully compatible with lodash.
This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
Released on October 15th, 2024.
- Resolved an issue in cloneDeep that incorrectly copied properties from the
target
when they were read-only. - Updated every, filter, find, findIndex, findLastIndex, indexOf, and join to now accept array-like objects and a
fromIndex
parameter, making them compatible with lodash.
This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
Released on October 14th, 2024.
- Added support for isFile.
- Added compatibility functions for escape, toSafeInteger, intersection, sample, chunk, compact, head, initial, last, tail, take, takeRight, uniq, and without.
- Enhanced performance for at and isPlainObject.
- Resolved an issue in cloneDeep that prevented it from cloning symbol properties and read-only properties of objects.
- Fixed a problem in pick within our compatibility library that incorrectly added
undefined
for keys that do not exist.
This version includes contributions from @D-Sketon, @mass2527, @dayongkr, @lukaszkowalik2, @Gyumong, @Dohun-choi, @belgattitude, and @chhw130. Thank you for your valuable contributions!
Released on October 7th, 2024.
- Added support for isBlob and isDate.
- Added compatibility functions for invertBy, times, constant, slice, toLength, defaultTo, dropRightWhile, curryRight, rangeRight, before, eq, defaults, toDefaulted, isArrayBuffer, isSet, and isMap.
- Enhanced difference to work with Array-like objects, aligning its functionality with lodash's behavior.
- Improved performance for pickBy and omitBy.
Released on October 1st, 2024.
- Added support for isEqualWith, isArrayBuffer, curryRight, isJSONValue, isJSONObject, isJSONArray.
- Fixed a bug in merge that copied the reference from the
source
object to thetarget
object. - Fixed a bug in includes that returned
true
for inherited properties. - Fixed a bug in startCase and other string methods that did not correctly split the words when using accented letters.
- Fixed a bug in filter that did not provide correct arguments to the predicate function.
- Fixed a bug in isMatch that did not strictly compare primitive falsy values.
This version includes contributions from @D-Sketon, @wojtekmaj, @mass2527, @chhw130, and @knott11. Thank you for your valuable contributions!
Released on September 28th, 2024.
-
Added compatibility functions for filter, includes, every, flip, and dropWhile.
-
Fixed a bug in throttle that prevented it from throttling after the initial
throttleMs
. -
Fixed a bug in cloneDeep that caused it to not clone the offset and length of
DataView
. -
Fixed a bug in clone that threw an error if
SharedArrayBuffer
is unavailable.
This version includes contributions from @dayongkr, @k-jeonghee, @D-Sketon, @iDevGon, @mass2527, @wojtekmaj, @jonganebski, @hyesungoh, and @chhw130. Thank you for your valuable contributions!
Released on September 25th, 2024.
- Added support for constantCase and isError.
- Added compatibility functions for pad, padStart, padEnd, defer, isFinite, toNumber, toFinite, and toInteger.
- Improved performance for flatten, isNumber, isString, isSymbol, isRegExp, and isBoolean.
- Fixed compact to correctly exclude
0n
as a falsey value. - Fixed pick to not pick nonexistent keys from the original object.
- Fixed omit to accept readonly arrays.
This version includes contributions from @hyesungoh, @D-Sketon, @mass2527, @gweesin, @VVSOGI, @coding-honey, @seonghun0828, and @jsparkdev. Thank you for your valuable contributions!
Released on September 20th, 2024.
- Added support for function invocation on leading and trailing edges for debounce and throttle.
- Added compatibility functions for debounce, throttle, curry, isNumber, and isNaN.
- Improved performance for at, zip, zipWith, and drop.
Released on September 14th, 2024.
- Added support for isDate, curry, upperCase.
- Added compatibility functions for pick, omit, unset, toPath, trim, trimStart, trimEnd, isInteger, isSafeInteger, snakeCase, startCase, lowerCase, kebabCase, ceil, floor, round.
- Enhanced clone to handle
Buffer
s,SharedArrayBuffer
s,File
s,Blob
s,TypedArray
s, andError
s. - Fixed a bug where mergeWith did not preserve the original properties of the
target
object. - Fixed a bug where groupBy couldn't group with keys like
toString
andindexOf
. - Improved performance for has and get.
Released on September 12th, 2024.
- Added support for isObject, findLastIndex, parseInt, rearg, conforms, conformsTo, bindKey, some, fromPairs, isArrayLikeObject, escapeRegExp, sortBy, isWeakSet, isWeakMap, flatMapDeep, escape, unescape, repeat, pad, join, and spread.
- Improved performance for deburr.
Released on August 31st, 2024.
- Added support for new functions: at, pullAt, deburr, lowerFirst, upperFirst, and isRegExp.
- Enhanced orderBy and sortBy to support function criteria.
- countBy now supports numeric and symbol keys.
- Updated type definitions for throttle and debounce.
- (
es-toolkit/compat
) Fixed orderBy to correctly handle deep keys even when object shapes differ (#427).
Released on August 15th, 2024.
- Added support for memoize, find, findIndex, has, partial, partialRight, sortBy, isString, rest, padEnd.
Released on August 10th, 2024.
- Disabled implicit conversion of values in orderBy for performance and simplicity.
Released on August 10th, 2024.
- Added support for merge, mergeWith, toMerged, isSymbol, pascalCase.
- Added compatibility tests with lodash for orderBy.
Released on August 9th, 2024.
- (
es-toolkit
) Added support for mapKeys, mapValues, cloneDeep, before, after, isSubset, ary, unary, flattenDeep, isEqual, isFunction, isBoolean, isPrimitive, and isTypedArray. - (
es-toolkit/compat
) Added support for matches, isMatch, isArray, isArrayLike, isObjectLike, isArguments, size, bind, flattenDepth, and padStart. - Added compatibility tests with lodash for many functions like initial, last, takeRight, without, uniq, invert, isNull, isUndefined, and isNil.
Released on July 20th, 2024.
- Use the compatibility layer
es-toolkit/compat
in legacy CDN builds.
Released on July 20th, 2024.
es-toolkit
can now be used in various CDNs, like unpkg and jsdelivr. See more in our usage docs
- Added support for flattenObject, isPlainObject, isLength. (3e60443, 3764993, #245)
- Added support for concat in our compatibility layer
es-toolkit/compat
. (e09517f)
- Ensured compatibility with difference and take
Released on July 19th, 2024.
- Fixed a bug where
es-toolkit/compat
was not available in modern Node.js environments. - Added support for max and min in our compatibility layer
es-toolkit/compat
. (e1e6e38)
Released on July 18th, 2024.
We're introducing es-toolkit/compat
, a new module designed as a drop-in replacement for lodash. It replicates lodash's API, making it easier to switch between the two libraries.
es-toolkit/compat
is undergoing rigorous testing using real lodash
test cases. Initial benchmarks suggest it's typically 5% slower and increases bundle size by 10% compared to the original es-toolkit
.
This module is intended to facilitate a smooth transition and should be replaced with the original es-toolkit
for optimal performance once migration is complete.
For more information, see our compatibility documentation.
- Added support for get and set in our compatibility layer
es-toolkit/compat
. (toss#232, toss#223) - Added support for zipObjectDeep in our compatibility layer
es-toolkit/compat
. (toss#150) - Added support for flatMap. (toss#209)
- Added support for startCase, startsWith, and endsWith. (toss#224).
- Added support for withTimeout. (toss#210)
- Fixed
drop
anddropRight
incorrectly accepting negative integers. (toss#218) - Fixed
invert
not to invert inherited properties. (toss#221)
- Improved performance for
dropRightWhile
. (toss#220)
Released on July 15th, 2024.
Released on July 14th, 2024.
- Add support for capitalize, snakeCase, kebabCase, camelCase and lowerCase. (toss#152, toss#161, toss#162, toss#166, 21d6530).
- Add support for negate. (toss#177)
- Add support for isEqual. (toss#174)
- Add support for clone. (toss#155)
- Add support for toFilled. (toss#154)
- Add support for initial and last. (toss#188, toss#149)
- Add support for flattenDeep. (toss#160)
- Optimize the performance of isNil by simplifying its check. (489ac76)
- Optimize the performance of sum. (toss#155)
Released on July 10th, 2024.
- Add support for head and tail. (toss#131, toss#143).
- Add support for unzip. (toss#130)
- Add support for flatten, which is six times faster than
Array#flat
. (toss#147)
Released on July 5th, 2024.
- Add support for orderBy. (toss#123)
- Add support for invert. (toss#125)
- Add support for inRange. (toss#124)
Released on July 3rd, 2024.
- Add support for unzipWith. (toss#113)
- Add support for forEachRight. (toss#119)
- Add support for countBy. (toss#117)
- Add support for without. (toss#115)
- Add support for fill. (toss#109)
- Add support for sampleSize. (toss#101)
- Add support for meanBy. (toss#104)
- Accept number and symbol keys in keyBy and groupBy (toss#98, toss#99)
Released on June 30th, 2024.
- Publish package on JSR.
Released on June 30th, 2024.
- Add support for keyBy. (toss#93).
- Add support for zipObject. (toss#92).
- Add support for compact. (60ae59b)
- Add support for mean. (715bc60)
Released on June 28th, 2024.
- Add support for range. (toss#77, 2db11d8).
- Add support for minBy (toss#71).
- Add support for maxBy (toss#64).
- Enforce stricter argument types in
pickBy
andomitBy
. (toss#60) - Fix a bug in
difference
where one array parameter was not readonly. (toss#83) - Fix a bug in
round
where it incorrectly accepts floating-point numbers asprecision
. (toss#79)
Released on June 15th, 2024.
- Add support for random. (toss#53)
- Add support for randomInt. (99a34e4)
- Add support for using AbortSignals to cancel the
Promise
returned bydelay
. (toss#52)
- Optimized
uniqBy
. (60e7974)
Released on June 15th, 2024.
- Fixed a bug in
dropWhile
where it incorrectly returned the entire array when no elements matched the predicate. (toss#49)
Released on June 14th, 2024.
- Add support for using AbortSignals to cancel
debounce
d functions. (toss#45)
- Optimize the time complexity of
intersection
. (toss#47)
Released on June 13th, 2024.
- Add support for
readonly
arrays in array utilities. (toss#32, e595e5e) - Optimize the time complexity of
uniq
. (toss#40) - Optimize the time complexity of
intersectionBy
. (toss#44)
Released on June 13th, 2024.
- Ensure that the
omit
andpick
functions only accept plain JavaScript objects as arguments. (toss#35)
Released on June 8th, 2024.
- Added the
noop
function. (https://github.com/toss/es-toolkit/commit/678028dd3d60509b99dfec47aed7f1088140d19d)
- Optimized the
difference
anddifferenceBy
functions for better performance with large arrays. (toss#27, toss#28)
- Fixed
shuffle
to ensure it does not modify the original array. (toss#29)
Released on June 5th, 2024.
- Support passing arguments to throttled and debounced functions. (toss#26)
Released on June 4th, 2024.
- Provide correct type declarations for ECMAScript Modules. (toss#21)
Released on June 3rd, 2024.
- Provide correct types for
"module": "Node"
,"Node10"
, and"Node16"
. (toss#16)
Initial release. Released on May 31th, 2024.