Skip to content

node4good/lodash-contrib

Repository files navigation

The brass buckles on lodash's utility belt

Basically a lodash compatible fork of underscore-contrib

lodash-contrib

Build Status

Links

Why lodash-contrib?

While lodash provides a bevy of useful tools to support functional programming in JavaScript, it can't (and shouldn't) be everything to everyone. lodash-contrib is intended as a home for functions that, for various reasons, don't belong in lodash proper. In particular, it aims to be:

  • a home for functions that are limited in scope, but solve certain point problems, and
  • a proving ground for features that belong in lodash proper, but need some advocacy and/or evolution (or devolution) to get them there.

Use

####Web

First, you’ll need lodash. Then you can grab the relevant lodash-contrib libraries and simply add something like the following to your pages:

<script src="lodash.js"></script>
<script src="lodash.object.builders.js"></script>

You could also use browserify to bundle your code into a JavaScript file that you can include in a web page. Require lodash-contrib in your main script file (e.g. test.js) like so:

var _ = require('lodash-contrib');

// YOUR CODE COMES HERE
console.log(_.truthyAll(0, 1, 2, 'lodash-contrib!'));

then you could run browserify test.js -o browserified.js to get lodash, lodash-contrib and your code into browserified.js.

####Node

Just run npm install lodash-contrib, you don't need to have lodash as it will be grabbed as a dependency.

Contributing

We need some docs sync since rebasing to version 3 (some methods renamed xxxContrib)

There is still a lot of work to do around perf, documentation, examples, testing and distribution so any help in those areas is welcomed. Pull requests are accepted, but please search the issues before proposing a new sub-contrib or addition. Additionally, all patches and proposals should have strong documentation, motivating cases and tests. It would be nice if we could not only provide useful tools built on lodash, but also provide an educational experience for why and how one might use them.

Other (potentially) useful sub-contribs include the following:

  • String utilities
  • Date/time utilities
  • Validators
  • Iterators
  • Generators
  • Promises
  • Monads
  • Currying
  • Laziness
  • Multimethods

What do these mean? Well, that’s up for discussion. :-)