es-toolkit
es-toolkit copied to clipboard
A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash.
Currently, `groupBy` returns a type of `Record`, but I believe a more accurate (and useful) type would be `Record` - this is what https://remedajs.com/docs/#groupBy does.
Currently, `isPlainObject` asserts `value is Record`, but I think it would be safer to assert `value is Record` (like https://remedajs.com/docs/#isPlainObject) does?
I was looking for utilities for working with built in data structures, namely `Map`. There don't seem to be any? I need a map function, but lots of others could...
It seems that function delay() should be export as "e.delay=e.delay$1", whlie it's assigned to a function directed to setTimeout().
Checks if a value is a valid URL string. Uses JavaScript's built-in URL constructor to validate the URL. Valid URL format must include a protocol (http, https, etc.).
```TypeScript export const cartesianProduct = (...args: T[][]): T[][] => args.reduce((acc, cur) => acc.flatMap((x) => cur.map((y) => x.concat([y]))), [[]] as T[][]); export function* cartesianProductGenerator( ...args: T[][] ): Generator { if (args.length...
## Description We have to add `truncate` to `compat/string` package. If there are no assignees, feel free to assign yourself and contribute. Thank you! 😊 ## References - [Lodash Document](https://lodash.com/docs/4.17.15#truncate)...
I was looking for `deepMap` and couldn't find one, but after a bit realized that `cloneDeepWith` is essentially what I need. It would help discoverability/adoption of the tool if documentation...
What if we added a `throttleAsync` function to throttle asynchronous functions? ### Suggesting I suggest implementing a promise-based throttling function that only allows a new invocation when the previous one...
Need to keep the array value rather than flatten it. Make flatten array value an option in the second param.