Methods
(static) of(val) → {Maybe}
Public constructor. Creates an instance of Maybe.
Parameters:
Name | Type | Description |
---|---|---|
val |
*
|
Object, string, number, or function (direct object access) |
Example
const exampleObj = {
foo: 'bar',
baz: [1,2,3]
};
const maybe1 = Maybe.of(exampleObj);
const maybe2 = Maybe.of(() => exampleObj.baz.1);
chain(chain) → {Maybe}
Chain together functions that return Maybe monads
Parameters:
Name | Type | Description |
---|---|---|
chain |
function
|
Function that is passed the value of the calling monad, and returns a monad. |
Example
function addOne (val) {
return Maybe.of(val + 1);
}
const three = Maybe.of(1)
.chain(addOne)
.chain(addOne)
.join();
isJust() → {boolean}
Determine whether the monad's value exists
Returns:
- Type:
-
boolean
true
if the value is defined,
false
if the monad is null or undefined.
Example
const maybe1 = Maybe.of(123);
const maybe2 = Maybe.of(undefined);
maybe1.isJust(); // true
maybe2.isJust(); // false
isNothing() → {boolean}
Determine whether the monad's value is null or undefined
Returns:
- Type:
-
boolean
true
if the value is null or
undefined, false
if the value is defined.
Example
const maybe1 = Maybe.of(null);
const maybe2 = Maybe.of(123);
maybe1.isNothing(); // true
maybe2.isNothing() // false
join() → {*}
Get the monad's value
Returns:
- Type:
-
*
Returns the value of the monad
Example
const maybe1 = Maybe.of(123);
const maybe2 = Maybe.of(null);
maybe1.join(); // 123
maybe2.join(); // null
map(transform) → {Maybe}
Apply a transformation to the monad
Parameters:
Name | Type | Description |
---|---|---|
transform |
function
|
The transformation function to apply to the monad |
Example
Maybe.of(1).map(val => val + 1);
orElse(defaultValue) → {Maybe}
Chain to the end of a monad as the default value to return if the isNothing()
is true
Parameters:
Name | Type | Description |
---|---|---|
defaultValue |
string
|
Return this value when
|
Example
const maybe1 = Maybe.of(null);
maybe1.orElse('N/A');
maybe1.join(); // 'N/A'