A modular JavaScript utility library designed to complement ES5+ with functional programming paradigms and avoid overlap.
101 is a modular JavaScript utility library that provides functional programming helpers and complementary utilities for ES5+ environments. It solves the problem of bloated utility libraries by avoiding duplication with native methods and offering individually importable modules for optimal bundling.
JavaScript developers working in Node.js or browser environments who need lightweight, functional utilities without the overhead of larger libraries like Lodash.
Developers choose 101 for its minimal overlap with ES5+, modular architecture that enables tree-shaking, and focus on functional programming paradigms—all without requiring custom builds.
A modern JS utility library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Deliberately avoids duplicating ES5+ methods like map and filter, reducing bloat and keeping bundles lean, as stated in its philosophy.
Each utility is a separate module (e.g., require('101/curry')), enabling natural imports and efficient tree-shaking with bundlers like Webpack.
Includes essential FP helpers such as curry, compose, and converge, making it easy to adopt functional patterns in vanilla JS.
Supports dot-notation keypaths for nested objects in utilities like pluck and del, and provides immutable functions like omit and put.
Currently only supports CommonJS out of the box, with other module systems like ES modules added only on request, complicating setup for modern projects.
The README notes that hasProperties might be deprecated due to similarity with hasKeypaths, indicating potential breaking changes.
As a minimalist library, it lacks the extensive utility set and community support of larger alternatives like Lodash, which may limit adoption in complex projects.