options for node.js
An implementation of the option type, sometimes known as the maybe type.
An instance of an option type is an optional value. Either it's none
, or an
instance of Some
:
var option = require("option");
var some = option.some("Bob");
var none = option.none;
A function that returns an optional string isn't that different from a function
that returns a string or null
. The advantage over null is that options
provide a number of functions that help with manipulating optional values.
function greet(user) {
return "Hello " + user.name().valueOrElse("Anonymous");
}
Methods
isNone() and isSome()
some(value).isNone()
returnsfalse
some(value).isSome()
returnstrue
none.isNone()
returnstrue
none.isSome()
returnsfalse
value()
some(value).value()
returnsvalue
none.value()
throws an error
map(func)
some(value).map(func)
returnssome(func(value))
none.map(func)
returnsnone
flatMap(func)
Conventionally used when func
returns another option.
some(value).flatMap(func)
returnsfunc(value)
none.flatMap(func)
returnsnone
filter(predicate)
some(value).filter(predicate)
returns:some(value)
ifpredicate(value) === true
none
ifpredicate(value) === false
none.filter(predicate)
returnsnone
toArray()
some(value).toArray()
returns[some]
none.toArray()
returns[]
orElse(other)
If other
is a function (other
conventionally returning another option):
some(value).orElse(other)
returnssome(value)
none.orElse(other)
returnsother()
If other
is not a function (other
conventionally being another option):
some(value).orElse(other)
returnssome(value)
none.orElse(other)
returnsother
valueOrElse(other)
If other
is a function:
some(value).valueOrElse(other)
returnsvalue
none.valueOrElse(other)
returnsother()
If other
is not a function:
some(value).valueOrElse(other)
returnsvalue
none.valueOrElse(other)
returnsother
Functions
option.isOption(value)
option.isOption(value)
returnstrue
ifvalue
isoption.none
oroption.some(x)
.
option.fromNullable(value)
- If
value
isnull
orundefined
,option.fromNullable(value)
returnsoption.none
. - Otherwise, returns
option.some(value)
. For instance,option.fromNullable(5)
returnsoption.some(5)
.
Installation
npm install option