Lazy Functional Javascript library (with callbacks)
JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
release
test
.gitignore
.travis.yml
package.json
pkg.js
readme.md

readme.md

BoneIdle

build status

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);
Right
 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");
	}
})