boneidle

Functional library with callbacks

npm install boneidle
13 downloads in the last week
52 downloads in the last month

Bone Idle

Lazy Functional Library For Node.js

Option

None
var none = b_.option.none();
assertEquals(none.isEmpty(), true);
assertEquals(none.getOrNull(), null);
assertEquals(none.getOr(anotherValue), anotherValue);
Some
var some = b_.option.some(value);
assertEquals(b.isEmpty(), false);
assertEquals(some.get(), value);
assertEquals(some.getOrNull(), value);
assertEquals(none.getOr(anotherValue), value);
Either
Left
 var left = b_.either.left(value);
 assertEquals(left.isLeft(), true);
 assertEquals(left.isRight(), false);
 assertEquals(left.value()), value);
 var right = b_.either.right(value);
 assertEquals(right.isLeft(), false);
 assertEquals(right.isRight(), true);
 assertEquals(right.value()), value)

Callback Chaining

isNotNull(str, function(ok) {
    if (ok) {
        hasLengthGreaterThan2(str, function(ok) {
            if (ok) {
                res.send("All good")
            } else {
                res.send("Bad Input");
            }
        })
    } else {
        res.send("Bad Input");
    }
});

Becomes

b_.chain(isNotNull).and(hasLengthGreaterThan2).call("some param", function(either) {
    if (either.isRight) {
        res.send("All Good");
    } else {
        res.send("Bad Input");
    }
})
npm loves you