Functional framework for JavaScript conditionals

I was recently introduced to the subject of functional programming and monads. The maybe monad was quite interesting as it allows us to replace things such as:

if (typeof myVariable !== 'undefined') {
doSomething(myVariable);
}

with:

maybe(myVariable)
.then(doSomething);

This allows us to keep the code that actually does the check for undefined in one place in our system, so, if for some reason the definition of “undefinedness” changes, we can make that change once.

This got me thinking, could we abstract many of our various checks into this type of interface, such as:

notEmptyString(myVariable)
.then(doSomething);

I am now trying to decide how I can then combine these conditions, maybe something like:

condition(myVariable)
.isDefined()
.notEmptyString()
.then(doSomething)
.otherwise(doSomethingElse);

or

var conditions = {isDefined:true, isEmptyString:false};
condition(myVariable, conditions)
.then(doSomething)
.otherwise(doSomethingElse);

What do you think this API should look like?