Skip to content

Releases: toss/es-toolkit

v1.43.0

12 Dec 07:10

Choose a tag to compare

Released on December 12th, 2025.

  • Enhanced merge to handle arrays and objects consistently, and to match lodash's behavior with date values and array-like objects. ([#1553], [#1542], [#1548])
  • Fixed isMatch and isMatchWith to match lodash's behavior.
  • Fixed intersectionBy implementation and removed duplicates when the mapper produces the same values. ([#1528])
  • Fixed throttle working like debounce.
  • Fixed type inference in toSnakeCaseKeys, toCamelCaseKeys for edge cases and improved type inference for uppercase keys. ([#1538])
  • Fixed casing utilities (camelCase, kebabCase, lowerCase, snakeCase, startCase, upperCase) to match lodash's behavior. ([#1525])
  • Fixed compat/template to disable ES interpolation when custom interpolate is provided. ([#1527])
  • Fixed incorrect example in differenceBy documentation. ([#1543])
  • Performance improvement: updated deburr to use arrays to construct the deburrMap. ([#1526])

We sincerely thank @dayongkr, @raon0211, @wo-o29, @Yeom-JinHo, @Copilot, @oshosh, @vbfox, @sukvvon, @sankeyangshu, @D-Sketon, @seo-rii for their contributions. We appreciate your great efforts!

v1.42.0

17 Nov 03:59

Choose a tag to compare

Released on November 17th, 2025.

  • Added new async utilities: filterAsync, flatMapAsync, forEachAsync, mapAsync, reduceAsync, and limitAsync for handling asynchronous operations.
  • Exported ThrottleOptions and DebounceOptions interfaces for better type support.
  • Fixed isFinite to implement type predicate to narrow type to number.
  • Fixed isSafeInteger to implement type predicate to narrow type to number.
  • Fixed omit to prevent adding index properties to array-like objects.
  • Fixed mergeWith to remove unnecessary nullish coalescing for 100% branch coverage.
  • Fixed compat/updateWith to remove unreachable code and add prototype pollution test.
  • Updated documentation headings for consistency.
  • Improved test coverage for compat/mergeWith, compat/unset, get, toMerged, mergeWith, and compat/intersectionBy with 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!

v1.41.0

24 Oct 08:02

Choose a tag to compare

Released on October 24th, 2025.

  • Enhanced throttle to preserve this context when called as a method.
  • Added type guard support for partition function.
  • Fixed omit to support runtime-determined key arrays with proper overloads.
  • Fixed defaults in compatibility layer to properly handle undefined and null sources.
  • Fixed toSnakeCaseKeys and toCamelCaseKeys to correctly return types for non-plain objects.
  • Fixed toMerged and mergeWith to properly handle shared objects in merge logic.
  • Fixed compat/union to support array-like objects.
  • Fixed compat/updateWith to use get for value retrieval in updater function.
  • Fixed circular import between isMatch and isMatchWith.
  • Fixed find and findLast by simplifying logic and removing unnecessary checks.
  • Fixed takeRight by improving test coverage and removing redundant checks.
  • Fixed curry and curryRight by removing unnecessary type assertions.
  • Fixed isEqualWith and mapKeys by removing unnecessary type assertions.
  • Improved performance for meanBy by 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!

v1.40.0

08 Oct 11:46

Choose a tag to compare

Released on October 8th, 2025.

  • Enhanced sumBy to pass the element index to the getValue callback function.
  • Improved performance for uniq function.
  • Fixed cloneDeepWith to handle runtime errors in environments without Blob support and correctly clone Boolean, Number, and String objects.
  • Fixed omit to avoid unnecessary deep cloning, improving performance.
  • Fixed toCamelCaseKeys to properly handle PascalCase type conversion.
  • Fixed toPath to correctly handle arrays and non-string inputs.
  • Fixed repeat to validate and handle invalid repeat counts.
  • Fixed sortedIndexBy to properly handle default iteratee.
  • Fixed some predicate check to correctly handle null and undefined cases.
  • Fixed compatibility issue in compat/unset with 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!

v1.39.10

17 Aug 08:36

Choose a tag to compare

Released on August 17th, 2025.

  • Fixed defaultsDeep to 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!

v1.39.9

10 Aug 13:39

Choose a tag to compare

Released on August 10th, 2025.

  • Fixed mergeWith to properly handle null values returned from customizer function.
  • Fixed cloneDeepWith to 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!

v1.39.8

25 Jul 01:55

Choose a tag to compare

Released on July 25th, 2025.

  • Aligned the types of fill, pullAll, pullAllBy, pullAllWith, pullAt, remove, and reverse in our compatibility library with the latest Lodash types (@types/lodash v4.17.20).

v1.39.7

08 Jul 15:18

Choose a tag to compare

Released on July 9th, 2025.

  • Fixed a compatibility issue with Lodash's debounce and throttle functions.
  • 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!

v1.39.6

02 Jul 14:12

Choose a tag to compare

Released on July 2th, 2025.

  • Fixed handling of null/undefined values in values function.
  • Fixed type safety in compat/get by adding GetFieldType utility type.

We sincerely thank @raon0211, @dayongkr, @yhb-flydream, @ssi02014, @JeongHwan-dev, and @guesung for their contributions. We appreciate your great efforts!

v1.39.5

24 Jun 10:36

Choose a tag to compare

Released on June 24th, 2025.

  • Fixed type compatibility issues between es-toolkit/compat and @types/lodash.
  • Improved documentation.

We thank @raon0211, @dayongkr, @sukvvon, and @yhb-flydream for their contributions.