Replace remaining lodash/lodash-es usage with es-toolkit

Author: kojesungCreated Aug 23, 2026Updated Aug 23, 2026

Hi! Building on the work already done in #1718 and #1734 (removing unnecessary lodash usage and switching to lodash-es for smaller bundles), I wanted to check whether there'd be interest in going one step further and replacing the remaining lodash usage with es-toolkit, a modern, tree-shakeable utility library that offers a drop-in compatible layer (es-toolkit/compat) for the lodash API. Current lodash footprint

lodash-es: used in extension (throttle), packages/redux-devtools-cli (pick), packages/map2tree (isArray, isPlainObject, mapValues), packages/react-base16-styling (curry), and packages/react-dock (debounce) lodash.debounce: used in packages/redux-devtools-log-monitor, packages/redux-devtools-rtk-query-monitor, and packages/redux-devtools-inspector-monitor A few import type { DebouncedFunc, CurriedFunction1, CurriedFunction3 } from 'lodash' type-only imports In total this touches about 9 source files and 7 distinct functions — a fairly narrow, contained scope. Why this might be worth doing

I checked and every function currently used (throttle, pick, isArray, isPlainObject, mapValues, curry, debounce) has a direct equivalent in es-toolkit/es-toolkit/compat. isArray in particular could just become the native Array.isArray(), so it wouldn't need any library at all. es-toolkit ships its own TypeScript types, so @types/lodash, @types/lodash-es, and @types/lodash.debounce could be dropped from several packages' dependencies. It would consolidate the current mix of lodash-es and separate single-function packages (lodash.debounce) into one consistent utility source across the monorepo. es-toolkit's core module (as opposed to the /compat entry point) is designed to be more tree-shaking friendly than lodash-es, which is a continuation of the bundle-size goal from #1718.