Replaces the lodash library with es-toolkit #2977
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces lodash dependencies with es-toolkit to improve performance and fix some potential security risks as lodash no longer being maintained.
Description
es-toolkit is a modern alternative to lodash that's significantly faster and lighter, which could potentially boost concurrently's overall performance (#). It's been tested using lodash's actual test suite and we are guarantee 100% compatiable with lodash (#).
It's already being adopted by major projects like Storybook, Recharts, Ink, and CKEditor with 2.8M downloads a week on NPM, and supports compatible layer with lodash.
You can learn more at https://es-toolkit.dev/intro.html.
IMPORTANT: This PR uses es-toolkit/compat which is compatible layer with lodash, and we are not expecting for any side-effects.
Motivation and Context
lodash is no longer be maintained, and it has some potential security risks. Also, es-toolkit improved the overall performance (#), while it 100% compatible from lodash (#). This migration will also reduces the bulid size (#).
How Has This Been Tested?
This PR simply replaces all 'lodash' imports to 'es-toolkit/compat'. I ran the
npm run test
and it worked well. You are still welcomed to cross-check this by running CI test pipeline.