An issue with these micro-packages is they introduce new semantics to your code, like throwing exceptions when vanilla JS would return NaN, etc. Once your code base grows, refactoring away from such packages is actually a lot more risky than it appears, and they tend to be sprinkled everywhere.
I've found it better to write my own "utils.js" functions, with clearly-defined semantics, that become part of the project strategy. This also has the benefit of reducing dependency churn and maintenance of package.json.