Hey HN!
After years of wrestling with Lodash's quirks and bundle size issues, I decided to build something better. SuperUtilsPlus is my attempt at creating the utility library I wish existed.
What makes it different?
TypeScript-first approach: Unlike Lodash's retrofitted types, I built this from the ground up with TypeScript. The type inference actually works the way you'd expect it to.
Sensible defaults: Some of Lodash's decisions always bugged me. Like isObject([]) returning true - arrays aren't objects in my mental model. Or isNumber(NaN) being true when NaN literally stands for "Not a Number". I fixed these footguns.
Modern JavaScript: Built for ES2020+ with proper ESM support. No more weird CommonJS/ESM dance. Actually tree-shakable: You can import from specific modules (super-utils/array, super-utils/object) for optimal bundling. Your users will thank you.
The best parts IMO:
compactNil() - removes only null/undefined, leaves falsy values like 0 and false alone
differenceDeep() - array difference with deep equality (surprisingly useful)
Better random utilities with randomUUID() and randomString()
debounce() that actually works how you expect with proper leading/trailing options
Also genuinely curious - what are your biggest pain points with utility libraries? Did I miss any must-have functions?
Comments URL: https://news.ycombinator.com/item?id=44080808
Points: 32
# Comments: 14
Login to add comment
Other posts in this group

Article URL: https://spectrum.ieee.org/diy-cybersickness-remedies

Article URL: https://longform.asmartbear.com/little-company/

Hey HN!
I'm excited to share f2, a command-line tool I built for fast and flexible bulk renaming of files. It's cross-platform (Linux, macOS, Windows), executes a dry-run by default, supports un
Article URL: https://nmn.gl/blog/ai-scam
Comments URL: https://news.ycombinator.com/item?id
