grpc-node icon indicating copy to clipboard operation
grpc-node copied to clipboard

Replaces the lodash library with es-toolkit

Open kms0219kms opened this issue 6 months ago • 4 comments

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.

kms0219kms avatar Jul 11 '25 08:07 kms0219kms

CLA Signed

The committers listed above are authorized under a signed CLA.

  • :white_check_mark: login: kms0219kms (77dc1b2fa826ac296be974e64b40ef741b758243, 4d06fe8df5de1663491b2866fd6c7a7535feae57, 58df7b81a76fc29af929b81c1dbeb54e7a112086)

This repository uses lodash in example code and test code, and in the code generator in @grpc/proto-loader. Overall, the reasons you provide for switching don't really seem applicable, so I would prefer not to change this unless there's a specific reason to do so for the usage in this repository.

murgatroid99 avatar Jul 11 '25 18:07 murgatroid99

@murgatroid99 I have updated the original post to provide more information and a reason. If you need more information, please wait until the weekdays and our team will provide you with the appropriate information.

kms0219kms avatar Jul 12 '25 06:07 kms0219kms

These AI spambots are so annoying.

robcresswell avatar Dec 01 '25 12:12 robcresswell