Released on December 14th, 2024.
- Fixed uniqueId not being exported in our compatibility library.
We sincerely thank @redd97 for their contributions. We appreciate your great efforts!
Released on December 13th, 2024.
- Introduced support for pull.
- Added compatibility functions for map, range, rangeRight, differenceWith, nth, noop, identity, keys, propertyOf, nthArg, delay, toPlainObject, unary, once, after, takeRightWhile, escapeRegExp, unescape, upperFirst, lowerFirst, deburr, lt, lte, toLower, invoke, method, reverse, now, findKey, stubArray, stubFalse, stubObject, stubString, and stubTrue.
We sincerely thank @healtheloper, @mass2527, @D-Sketon, @eunhyulkim, @scato3, @Na-hyunwoo, and @dasom-jo for their contributions. We appreciate your great efforts!
Released on December 1st, 2024.
- Introduced support for cloneDeepWith.
- Added a compatibility function for lastIndexOf.
- Fixed an issue in flattenObject where nested objects in arrays were not flattened correctly.
We sincerely thank @nnnnoel and @evan-moon for their contributions. We appreciate your great efforts!
Released on November 30th, 2024.
- Added compatibility functions for gt, gte, toArray, toUpper, add, assignIn (extend), and isElement.
- Introduced new compatibility types for
DebouncedFunc
. - Enhanced our function types to accept
PropertyKey
instead of juststring
for property keys. - Corrected flatMap to accurately infer return types when the
depth
parameter is omitted. - Resolved issues with incorrect types for partial and partialRight.
- Fixed intersectionBy, differenceBy, and differenceWith to properly calculate differences between various element types.
- Ensured that words is now correctly exported in our compatibility library.
We sincerely thank @D-Sketon, @mass2527, @1eeminhyeong, @chhw130, @DONG-8, @filipsobol, @kim-dongho, @nnnnoel, @pbstar, and @jsparkdev for their contributions. We appreciate your great efforts!
Released on November 10th, 2024.
- Added support for findKey and isSubsetWith.
- Introduced compatibility functions for words, at, differenceBy, uniqBy, forEach, each, sum, sumBy, union, zip, unzip, iteratee, isEmpty, and replace.
- Fixed a bug in cloneDeep that prevented it from correctly cloning object prototypes.
- Improved performance for at.
- Enhanced performance for toPath, get, set, unset, has, orderBy, chunk, difference, drop, dropRight, dropWhile, findLastIndex, head, last, sample, tail, take, and takeRight in our compatibility library.
We sincerely thank @scato3, @ssi02014, @filipsobol, @mass2527, @Gyumong, @D-Sketon, @dayongkr, @kyvg, @Na-hyunwoo, @kaehehehe, and @bhollis for their contributions. Special thanks to @cruelladevil for improving the documentation. We appreciate your great efforts!
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.