Utilities for objects. Simple, tasteful and plentiful. Supports inherited properties.

  • oolong

Downloads in past


811.15.18 years ago9 years agoMinified + gzip package size for oolong in KB


!NPM versionnpm-badge !Build statustravis-badge
Oolong.js is a library for JavaScript full of object-related utilities. It's similar to Underscore.jsunderscore, but it focuses strictly on functions dealing with objects. It's implementation emphasizes simplicity and good taste. For example, it always takes inherited properties into account leading to less surprises for users of your code.
Oolong.js grew out of my frustration with Underscore.jsunderscore and Lodash.jslodash and their inconsistent and sometimes outright ignorance of inherited properties. This leads to unnecessary complexity, arbitrary constraints and a leaky-implementation in your code or public APIs. This behavior is cancer propelled around by ignorance and misunderstandings between dictionaries and interfaces. Oolong.js is my first step at killing it.


npm install oolong

Oolong.js follows semantic versioning, so feel free to depend on its major version with something like >= 1.0.0 < 2 (a.k.a ^1.0.0).


For extended documentation on all functions, please see the Oolong.js API Documentationapi.



Oolong.js is released under a Lesser GNU Affero General Public License, which in summary means:
  • You can use this program for no cost.
  • You can use this program for both personal and commercial reasons.
  • You do not have to share your own program's code which uses this program.
  • You have to share modifications (e.g. bug-fixes) you've made to this
For more convoluted language, see the LICENSE file.


Andri Möllmoll typed this and the code.
Monday Calendar
monday supported the engineering work.
If you find Oolong.js needs improving, please don't hesitate to type to me now at andri@dot.eeemail or create an issue onlineissues.