68 KiB
es-toolkit Changelog
Version v1.42.0
Released on November 17th, 2025.
- Added new async utilities:
filterAsync,flatMapAsync,forEachAsync,mapAsync,reduceAsync, andlimitAsyncfor handling asynchronous operations. - Exported
ThrottleOptionsandDebounceOptionsinterfaces for better type support. - Fixed
isFiniteto implement type predicate to narrow type to number. - Fixed
isSafeIntegerto implement type predicate to narrow type to number. - Fixed
omitto prevent adding index properties to array-like objects. - Fixed
mergeWithto remove unnecessary nullish coalescing for 100% branch coverage. - Fixed
compat/updateWithto remove unreachable code and add prototype pollution test. - Updated documentation headings for consistency.
- Improved test coverage for
compat/mergeWith,compat/unset,get,toMerged,mergeWith, andcompat/intersectionBywith additional edge cases and security tests.
We sincerely thank @Debbl, @wo-o29, @raon0211, @Yeom-JinHo, @sukvvon, and @D-Sketon for their contributions. We appreciate your great efforts!
Version v1.41.0
Released on October 24th, 2025.
- Enhanced
throttleto preservethiscontext when called as a method. - Added type guard support for
partitionfunction. - Fixed
omitto support runtime-determined key arrays with proper overloads. - Fixed
defaultsin compatibility layer to properly handle undefined and null sources. - Fixed
toSnakeCaseKeysandtoCamelCaseKeysto correctly return types for non-plain objects. - Fixed
toMergedandmergeWithto properly handle shared objects in merge logic. - Fixed
compat/unionto support array-like objects. - Fixed
compat/updateWithto usegetfor value retrieval in updater function. - Fixed circular import between
isMatchandisMatchWith. - Fixed
findandfindLastby simplifying logic and removing unnecessary checks. - Fixed
takeRightby improving test coverage and removing redundant checks. - Fixed
curryandcurryRightby removing unnecessary type assertions. - Fixed
isEqualWithandmapKeysby removing unnecessary type assertions. - Improved performance for
meanByby removing intermediate array creation. - Updated build system to use UMD format instead of IIFE for browser builds.
- Fixed numerous documentation examples across compat modules.
- Improved test coverage with additional test cases for edge cases and compatibility.
We sincerely thank @the5thbeatle, @wo-o29, @hwibaski, @manudeli, @raon0211, @dayongkr, @D-Sketon, @yoouungyoung, @Dohun-choi, @sukvvon, @zoulou00, and @sen2y for their contributions. We appreciate your great efforts!
Version v1.40.0
Released on October 8th, 2025.
- Enhanced
sumByto pass the element index to thegetValuecallback function. - Improved performance for
uniqfunction. - Fixed
cloneDeepWithto handle runtime errors in environments without Blob support and correctly clone Boolean, Number, and String objects. - Fixed
omitto avoid unnecessary deep cloning, improving performance. - Fixed
toCamelCaseKeysto properly handle PascalCase type conversion. - Fixed
toPathto correctly handle arrays and non-string inputs. - Fixed
repeatto validate and handle invalid repeat counts. - Fixed
sortedIndexByto properly handle default iteratee. - Fixed
somepredicate check to correctly handle null and undefined cases. - Fixed compatibility issue in
compat/unsetwith nonexistent paths. - Fixed several JSDoc issues across multiple functions including return types, parameter descriptions, and method names.
- Improved documentation clarity and consistency across multiple functions.
- Enhanced test coverage with additional test cases for compat functions and edge cases.
- Updated build configuration and CI workflows.
We sincerely thank @wo-o29, @D-Sketon, @HidenLee, @yoouung, @manudeli, @dayongkr, @Li13, @nicklemmon, @sen2y, @miinhho, @raon0211, @joshkel, @jgjgill, @mlnwns, @Dohun-choi, @PinkChampagne17, @sukvvon, @YOUNGHO8762, @caseBread, @Jeongeun-Choi, @artechventure and hoyyChoi for their contributions. We appreciate your great efforts!
Version v1.39.10
Released on August 17th, 2025.
- Fixed
defaultsDeepto properly handle deep merging of objects in arrays - Fixed several documentation issues and examples across multiple functions
We sincerely thank @wo-o29, @thwlckd, @kilimandzharov, and @dayongkr for their contributions. We appreciate your great efforts!
Version v1.39.9
Released on August 10th, 2025.
- Fixed
mergeWithto properly handle null values returned from customizer function. - Fixed
cloneDeepWithto properly handle customizer returning null values. - Fixed some of the documentation issues.
We sincerely thank @raon0211, @joshkel, and @Najeong-Kim for their contributions. We appreciate your great efforts!
Version v1.39.8
Released on July 25th, 2025.
- Aligned the types of
fill,pullAll,pullAllBy,pullAllWith,pullAt,remove, andreversein our compatibility library with the latest Lodash types (@types/lodashv4.17.20).
Version v1.39.7
Released on July 9th, 2025.
- Fixed a compatibility issue with Lodash's
debounceandthrottlefunctions. - Remove useless source map for reduce bundle size.
- Fix some of the documentation issues.
We sincerely thank @dayongkr, @cobocho, @raon0211, and @D-Sketon for their contributions. We appreciate your great efforts!
Version v1.39.6
Released on July 2th, 2025.
- Fixed handling of null/undefined values in
valuesfunction. - Fixed type safety in
compat/getby adding GetFieldType utility type.
We sincerely thank @raon0211, @dayongkr, @yhb-flydream, @ssi02014, @JeongHwan-dev, and @guesung for their contributions. We appreciate your great efforts!
Version v1.39.5
Released on June 24th, 2025.
- Fixed type compatibility issues between
es-toolkit/compatand@types/lodash. - Improved documentation.
We thank @raon0211, @dayongkr, @sukvvon, and @yhb-flydream for their contributions.
Version v1.39.4
Released on June 21st, 2025.
- Fixed prototype pollution issue in es-toolkit to enhance security.
- Enhanced build system to provide compat/* functions in CommonJS format by default.
We thank @raon0211, and @dayongkr for their contributions.
Version v1.39.3
Released on June 7th, 2025.
- Fixed postbuild script to ensure compat function categorization aligns with src directory structure.
Version v1.39.2
Released on June 7th, 2025.
- Added dual package export support for individual compat functions (e.g.,
es-toolkit/compat/add).
Version v1.39.1
Released on June 6th, 2025.
- Resolved mismatch between named and default exports in compat .d.ts and .js files to improve TypeScript integration.
Version v1.39.0
🎉 Released on June 5th, 2025. 🎉
We're thrilled to announce that es-toolkit/compat has achieved full compatibility with Lodash! 🎉
A huge thank you to all our contributors who made this possible.
- Introduced compatibility functions for defaultsDeep, isMatchWith, flatMapDepth, flatMapDeep, overArgs, findLastKey and truncate.
- Enhanced build system to support
es-toolkit/compat/*module imports. - Fixed special functions like
eachto ensure proper functionality. - Fixed Deno compatibility issues for
defaultsDeepfunction. - Fixed import paths in Deno environment.
- Added benchmark comparing es-toolkit and lodash
identityfunction performance. - Improved documentation and test coverage for various functions.
We sincerely thank @raon0211, @dayongkr, @mreiden, @hwibaski, @shren207, @jiji-hoon96, and @myungjuice for their contributions. We appreciate your great efforts!
⭐️ Special Thanks to Our Amazing Contributors Who Made 100% Compatibility Possible ⭐️
@raon0211, @dayongkr, @D-Sketon, @mass2527, @ssi02014, @shren207, @chhw130, @haejunejung, @jsparkdev, @manudeli, @jgjgill, @hyesungoh, @kaehehehe, @filipsobol, @fvsch, @wondonghwi, @seungrodotlee, @bertyhell, @minchodang, @Jeong-Rae, @kangju2000, @juno7803, @wojtekmaj, @mattiacoll, @changwoolab, @po4tion, @gyumong, @choi2021, @mancuoj, @de-novo, @eunhyulkim, @kim-sung-jee, @gs18004, @Hanna922, @Na-hyunwoo, @aken-you, @tanggd, @ho991217, @piquark6046, @jiji-hoon96, @seonghun0828, @pkovzz, @nnnnoel, @noelkim-prestolabs, @minsoo-web, @hautest, @scato3, @l2hyunwoo, @WooWan, @VVSOGI, @k-jeonghee, @knott11, @lukaszkowalik2, @moonheekim0118, @sadobass, @minjongbaek, @umsungjun, @sossost, @sunrabbit123, @Seung-wan, @cruelladevil, @iDevGon, @oror-sine, @1eeminhyeong, @benzyminzy, @BlackWhite2000, @tooooo1, @L2HYUNN, @DonghyunKim98, @dasom-jo, @guesung, @uniqueeest, @KiKoS0, @myungjuice, @seung-juv, @Collection50, @nowethan, @coding-honey, @ariandel-dev, @apeltop, @jch1223, @yhay81, @milooy, @raviqqe, @youznn, @BinskLee, @YEONDG, @shinwonse, @willmanduffy, @vjo, @touhidrahman, @T3sT3ro, @belgattitude, @WISUNGWON, @anaclumos, @hsskey, @BasixKOR, @Kyujenius, @Dohun-choi, @dngur9801, @sanginchun, @westofsky, @DONG-8, @yhmpc, @pbstar, @MoXiaoluo, @uussong, @tuhm1, @tisou1, @spookyuser, @sa02045, @Hotanya, @nia3y, @mreiden, @kms0219kms, @IkumaTadokoro, @hansolbangul, @hainan-612, @hwibaski, @jeongshin, @HoberMin, @ohprettyhak, @gweesin, @FengBuPi, @kyvg, @evan-moon, @chldmsqls34, @kimpuro, @dogagenc, @Duck-98, @redd97, @faner11, @bhollis, @jaehunn, @babay123, @beomxtone, @ankitjha420, @shan-mx, @2skydev, @StyleShit, @confidential-nt, @siddsarkar, @seongminn, @healtheloper, @pnodet, @Gaic4o, @leeminhee119, @leehj322, @kristian240, @kingston, @kim-dongho, @jungwoo3490, @joris-gallot, @jonganebski, @jiwooproity, @moshuying, @jakvbs, @therealjamesjung, @SaeWooKKang and @HyeokjaeLee
Version v1.38.0
Released on May 18th, 2025.
- Added compatibility functions for bindAll, setWith, memoize, isNative, invokeMap, clone, cloneWith, and sortedLastIndexOf.
- Enhanced invariant function to accept Error instances and added assert alias.
- Fixed type definitions and empty array handling in maxBy and minBy.
- Fixed typo 'Partail' to 'Partial' in findKey type annotation.
- Enhanced max and min functions to skip NaN, symbol, and null values, and return undefined when all values are skipped.
- Fixed sparse array handling in compat functions to match Lodash's behavior.
- Improved test coverage and documentation for various functions.
- Fixed various documentation issues and typos.
We sincerely thank @myungjuice, @scato3, @uniqueeest, @YEONDG, @shren207, @hyesungoh, @kms0219kms, @minjongbaek, @kristian240, @D-Sketon, @Seung-wan, @jiji-hoon96, @raon0211, and @dayongkr for their contributions. We appreciate your great efforts!
Version v1.37.2
Released on May 4th, 2025.
- Fixed an issue in
es-toolkit/compat'sthrottlefunction to match Lodash's behavior by immediately invoking the throttled function when wait time is zero.
Version v1.37.1
Released on May 3rd, 2025.
- Fixed a bug in JSR's
@es-toolkit/es-toolkitpackage that prevented importing thecamelCasefunction in Deno.
Version v1.37.0
Released on May 3rd, 2025.
- Introduced compatibility functions for result, omitBy, xorBy, xorWith, unzipWith, sampleSize, transform, wrap, countBy, and xor.
- Added vitest benchmark for ary function.
- Fixed string comparison in sortBy and orderBy by removing locale comparison and using ASCII code instead.
- Fixed type definition in isBuffer.
- Fixed internal documentation links for Korean and Japanese headings.
- Improved code readability and documentation for various functions.
- Prevented circular dependencies by updating import paths in toCamelCaseKeys and toSnakeCaseKeys.
We sincerely thank @chldmsqls34, @umsungjun, @raon0211, @dayongkr, @shren207, @oror-sine, @L2HYUNN, @D-Sketon, @ariandel-dev, @Jeong-Rae, and @beomxtone for their contributions. We appreciate your great efforts!
Version v1.36.0
Released on April 24th, 2025.
- Introduced compatibility functions for groupBy, partial, partialRight, forEachRight, forOwnRight, forIn, forInRight, overEvery, hasIn, pullAt, forOwn, pullAllWith, overSome, partition, and flatMap.
- Fixed compatibility issues in take, takeRight, defaults, repeat, and words by adding proper guards.
- Fixed throttle behavior when both leading and trailing options are enabled.
- Improved performance for find by removing unnecessary slice operations.
- Enhanced performance of toPairs by pre-allocating arrays and using iterator values.
- Simplified implementation and aligned types with Lodash for partition.
We sincerely thank @D-Sketon, @raon0211, @dayongkr, @minjongbaek, @seungrodotlee, @mass2527, @uniqueeest, @leehj322, @cruelladevil, @shren207, and @ssi02014 for their contributions. We appreciate your great efforts!
Version v1.35.0
Released on April 16th, 2025.
- Added support for toCamelCaseKeys and toSnakeCaseKeys.
- Added support for custom delay function based on attempts in retry.
- Introduced compatibility functions for at (array), split, shuffle, zipWith, zipObject, keyBy, assign, assignInWith, assignWith, update, updateWith, uniqWith, unionBy, unionWith, takeWhile, sortedLastIndex, sortedLastIndexBy, toPairs, toPairsIn, cond, over, functions, and create in
es-toolkit/compat. - Fixed Lodash compatibility issues in pick and pickBy.
We sincerely thank @shren207, @kim-sung-jee, @HyeokjaeLee, @Jeong-Rae, @D-Sketon, @jsparkdev, @wojtekmaj, @FengBuPi, @oror-sine, @L2HYUNN, @gs18004, @ohprettyhak, and @kimpuro for their contributions. We appreciate your great efforts!
Version v1.34.1
Released on March 27th, 2025.
Version v1.34.0
Released on March 27th, 2025.
- Added support for isBrowser, isNode, attempt, attemptAsync.
- Introduced compatibility functions for functionsIn, meanBy, minBy, mean, sortedIndexOf.
- Fixed compatibility with lodash for set, add, subtract.
We sincerely thank @dayongkr, @D-Sketon, @seongminn, @Kyujenius for their contributions. We appreciate your great efforts!
Version v1.33.0
Released on March 9th, 2025.
- Added support for reverseString and isJSON.
- Introduced compatibility functions for pullAllBy, intersectionWith, findLast, reduce, reduceRight, divide, values, valuesIn, maxBy, and pickBy.
- Fixed package exports on React Native so that
es-toolkitcan be used in React Native projects. - Fixed a bug in sum where passing
undefinedvalues likesum([undefined, 1, 2, 3])resulted inNaN, which was different from lodash. - Fixed a bug in assignIn that didn't assign keys with undefined values.
Version v1.32.0
Released on January 30th, 2025.
- Added support for Semaphore, Mutex, isPromise, and retry.
- Introduced compatibility functions for multiply, sortedIndex, and sortedIndexBy.
- Added support for custom delimiters in flattenObject.
- Added support for
fromIndexparameters in find. - Fixed a bug in cloneDeep and cloneDeepWith that cloned uncloneable objects.
Version v1.31.0
Released on December 27th, 2024.
- Added support for the windowed, remove and asyncNoop functions.
- Introduced compatibility functions for pullAll, subtract, isBuffer, and methodOf.
- Enhanced the performance of pull when working with large arrays.
- Resolved an issue where reverse was not being exported in our compatibility library.
- Updated groupBy to properly handle keys like
toStringorvalueOf. - Fixed merge to correctly merge values when
targetor any of its values arenullorundefined.
We sincerely thank @T3sT3ro, @D-Sketon, @tuhm1, @willmanduffy, @apeltop, @aken-you, @SaeWooKKang, and @ssi02014 for their contributions. We appreciate your great efforts!
Version v1.30.1
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!
Version v1.30.0
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!
Version v1.29.0
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!
Version v1.28.0
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
PropertyKeyinstead of juststringfor property keys. - Corrected flatMap to accurately infer return types when the
depthparameter 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!
Version v1.27.0
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!
Version v1.26.1
Released on October 25th, 2024.
- Fixed a bug in isMatch that did not strictly compare
nullin objects.
This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
Version v1.26.0
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!
Version v1.25.2
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!
Version v1.25.1
Released on October 15th, 2024.
- Resolved an issue in cloneDeep that incorrectly copied properties from the
targetwhen they were read-only. - Updated every, filter, find, findIndex, findLastIndex, indexOf, and join to now accept array-like objects and a
fromIndexparameter, making them compatible with lodash.
This version includes contributions from @D-Sketon. Thank you for your valuable contributions!
Version v1.25.0
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
undefinedfor 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!
Version v1.24.0
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.
Version v1.23.0
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
sourceobject to thetargetobject. - Fixed a bug in includes that returned
truefor 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!
Version v1.22.0
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
SharedArrayBufferis unavailable.
This version includes contributions from @dayongkr, @k-jeonghee, @D-Sketon, @iDevGon, @mass2527, @wojtekmaj, @jonganebski, @hyesungoh, and @chhw130. Thank you for your valuable contributions!
Version v1.21.0
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
0nas 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!
Version v1.20.0
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.
Version v1.19.0
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
Buffers,SharedArrayBuffers,Files,Blobs,TypedArrays, andErrors. - Fixed a bug where mergeWith did not preserve the original properties of the
targetobject. - Fixed a bug where groupBy couldn't group with keys like
toStringandindexOf. - Improved performance for has and get.
Version v1.18.0
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.
Version v1.17.0
Released on August 31st, 2024.
New Features
- 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.
Bug Fixes
- Updated type definitions for throttle and debounce.
- (
es-toolkit/compat) Fixed orderBy to correctly handle deep keys even when object shapes differ (#427).
Version v1.16.0
Released on August 15th, 2024.
- Added support for memoize, find, findIndex, has, partial, partialRight, sortBy, isString, rest, padEnd.
Version v1.15.1
Released on August 10th, 2024.
- Disabled implicit conversion of values in orderBy for performance and simplicity.
Version v1.15.0
Released on August 10th, 2024.
- Added support for merge, mergeWith, toMerged, isSymbol, pascalCase.
- Added compatibility tests with lodash for orderBy.
Version v1.14.0
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.
Version v1.13.1
Released on July 20th, 2024.
- Use the compatibility layer
es-toolkit/compatin legacy CDN builds.
Version v1.13.0
Released on July 20th, 2024.
es-toolkit can now be used in various CDNs, like unpkg and jsdelivr. See more in our usage docs
Features
- Added support for flattenObject, isPlainObject, isLength. (3e60443, 3764993, #245)
- Added support for concat in our compatibility layer
es-toolkit/compat. (e09517f)
Lodash Compatibility
- Ensured compatibility with difference and take
Version v1.12.0
Released on July 19th, 2024.
- Fixed a bug where
es-toolkit/compatwas not available in modern Node.js environments. - Added support for max and min in our compatibility layer
es-toolkit/compat. (e1e6e38)
Version v1.11.0
Released on July 18th, 2024.
Introducing es-toolkit/compat
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.
Features
- Added support for get and set in our compatibility layer
es-toolkit/compat. (https://github.com/toss/es-toolkit/pull/232, https://github.com/toss/es-toolkit/pull/223) - Added support for zipObjectDeep in our compatibility layer
es-toolkit/compat. (https://github.com/toss/es-toolkit/pull/150) - Added support for flatMap. (https://github.com/toss/es-toolkit/pull/209)
- Added support for startCase, startsWith, and endsWith. (https://github.com/toss/es-toolkit/pull/224).
- Added support for withTimeout. (https://github.com/toss/es-toolkit/pull/210)
Bug fixes
- Fixed
dropanddropRightincorrectly accepting negative integers. (https://github.com/toss/es-toolkit/pull/218) - Fixed
invertnot to invert inherited properties. (https://github.com/toss/es-toolkit/pull/221)
Performance Improvements
- Improved performance for
dropRightWhile. (https://github.com/toss/es-toolkit/pull/220)
Version v1.10.1
Released on July 15th, 2024.
Version v1.10.0
Released on July 14th, 2024.
Features
- Add support for capitalize, snakeCase, kebabCase, camelCase and lowerCase. (https://github.com/toss/es-toolkit/pull/152, https://github.com/toss/es-toolkit/pull/161, https://github.com/toss/es-toolkit/pull/162, https://github.com/toss/es-toolkit/pull/166, 21d6530).
- Add support for negate. (https://github.com/toss/es-toolkit/pull/177)
- Add support for isEqual. (https://github.com/toss/es-toolkit/pull/174)
- Add support for clone. (https://github.com/toss/es-toolkit/pull/155)
- Add support for toFilled. (https://github.com/toss/es-toolkit/pull/154)
- Add support for initial and last. (https://github.com/toss/es-toolkit/pull/188, https://github.com/toss/es-toolkit/pull/149)
- Add support for flattenDeep. (https://github.com/toss/es-toolkit/pull/160)
Performance Improvements
- Optimize the performance of isNil by simplifying its check. (489ac76)
- Optimize the performance of sum. (https://github.com/toss/es-toolkit/pull/155)
Version v1.9.0
Released on July 10th, 2024.
- Add support for head and tail. (https://github.com/toss/es-toolkit/pull/131, https://github.com/toss/es-toolkit/pull/143).
- Add support for unzip. (https://github.com/toss/es-toolkit/pull/130)
- Add support for flatten, which is six times faster than
Array#flat. (https://github.com/toss/es-toolkit/pull/147)
Version v1.8.0
Released on July 5th, 2024.
- Add support for orderBy. (https://github.com/toss/es-toolkit/pull/123)
- Add support for invert. (https://github.com/toss/es-toolkit/pull/125)
- Add support for inRange. (https://github.com/toss/es-toolkit/pull/124)
Version v1.7.1
Released on July 3rd, 2024.
- Add support for unzipWith. (https://github.com/toss/es-toolkit/pull/113)
- Add support for forEachRight. (https://github.com/toss/es-toolkit/pull/119)
- Add support for countBy. (https://github.com/toss/es-toolkit/pull/117)
- Add support for without. (https://github.com/toss/es-toolkit/pull/115)
- Add support for fill. (https://github.com/toss/es-toolkit/pull/109)
- Add support for sampleSize. (https://github.com/toss/es-toolkit/pull/101)
- Add support for meanBy. (https://github.com/toss/es-toolkit/pull/104)
- Accept number and symbol keys in keyBy and groupBy (https://github.com/toss/es-toolkit/pull/98, https://github.com/toss/es-toolkit/pull/99)
Version v1.6.1
Released on June 30th, 2024.
- Publish package on JSR.
Version v1.6.0
Released on June 30th, 2024.
Features
- Add support for keyBy. (https://github.com/toss/es-toolkit/pull/93).
- Add support for zipObject. (https://github.com/toss/es-toolkit/pull/92).
- Add support for compact. (60ae59b)
- Add support for mean. (715bc60)
Version v1.5.0
Released on June 28th, 2024.
Features
- Add support for range. (https://github.com/toss/es-toolkit/pull/77, 2db11d8).
- Add support for minBy (https://github.com/toss/es-toolkit/pull/71).
- Add support for maxBy (https://github.com/toss/es-toolkit/pull/64).
Bug fixes
- Enforce stricter argument types in
pickByandomitBy. (https://github.com/toss/es-toolkit/pull/60) - Fix a bug in
differencewhere one array parameter was not readonly. (https://github.com/toss/es-toolkit/pull/83) - Fix a bug in
roundwhere it incorrectly accepts floating-point numbers asprecision. (https://github.com/toss/es-toolkit/pull/79)
Version v1.4.0
Released on June 15th, 2024.
Features
- Add support for random. (https://github.com/toss/es-toolkit/pull/53)
- Add support for randomInt. (99a34e4)
- Add support for using AbortSignals to cancel the
Promisereturned bydelay. (https://github.com/toss/es-toolkit/pull/52)
Performance Optimizations
- Optimized
uniqBy. (60e7974)
Version v1.3.1
Released on June 15th, 2024.
- Fixed a bug in
dropWhilewhere it incorrectly returned the entire array when no elements matched the predicate. (https://github.com/toss/es-toolkit/pull/49)
Version v1.3.0
Released on June 14th, 2024.
Features
- Add support for using AbortSignals to cancel
debounced functions. (https://github.com/toss/es-toolkit/pull/45)
Performance Optimizations
- Optimize the time complexity of
intersection. (https://github.com/toss/es-toolkit/pull/47)
Version v1.2.2
Released on June 13th, 2024.
- Add support for
readonlyarrays in array utilities. (https://github.com/toss/es-toolkit/pull/32, e595e5e) - Optimize the time complexity of
uniq. (https://github.com/toss/es-toolkit/pull/40) - Optimize the time complexity of
intersectionBy. (https://github.com/toss/es-toolkit/pull/44)
Version v1.2.1
Released on June 13th, 2024.
- Ensure that the
omitandpickfunctions only accept plain JavaScript objects as arguments. (https://github.com/toss/es-toolkit/pull/35)
Version v1.2.0
Released on June 8th, 2024.
Features
- Added the
noopfunction. (678028dd3d)
Performance Improvements
- Optimized the
differenceanddifferenceByfunctions for better performance with large arrays. (https://github.com/toss/es-toolkit/pull/27, https://github.com/toss/es-toolkit/pull/28)
Bug fixes
- Fixed
shuffleto ensure it does not modify the original array. (https://github.com/toss/es-toolkit/pull/29)
Version v1.1.0
Released on June 5th, 2024.
- Support passing arguments to throttled and debounced functions. (https://github.com/toss/es-toolkit/pull/26)
Version v1.0.4
Released on June 4th, 2024.
- Provide correct type declarations for ECMAScript Modules. (https://github.com/toss/es-toolkit/pull/21)
Version v1.0.3
Released on June 3rd, 2024.
- Provide correct types for
"module": "Node","Node10", and"Node16". (https://github.com/toss/es-toolkit/pull/16)
Version v1.0.2
Initial release. Released on May 31th, 2024.