new Just()
Extends
Methods
-
staticJust.from(value){Maybe}
-
Creates a new
Justfrom avalue. If thevalueis already aMaybeinstance, thevalueis returned unchanged. Otherwise, a newJustis made with thevalue.Name Type Description value* Value to wrap in a Just.Returns:
Type Description Maybe Maybewhen is thevaluealready wrapped orJustwrappedvalue.Examples
Just from nothing
Just.from(); // => Just()Just from arbitrary value
Just.from(true); // => Just(true)Just from another Just
Just.from(Just.from(value)); // => Just(value)Just from Nothing
Just.from(Nothing.from()); // => Nothing() -
Applies the function contained in the instance of a
Justto the value contained in the providedJust, producing aJustcontaining the result. If the instance is aNothing, the result is theNothinginstance. If the instance is aJustand the providedMaybeisNothing, the result is the providedNothing.Name Type Description otherMaybe Value to apply to the function wrapped in the Just.Returns:
Type Description Maybe Justwrapped applied function orNothing.Example
Just#ap
const findPerson = curryN(3, Person.find); // Person.find(name, birthdate, address) Just.from(findPerson) // => Just(findPerson) .ap(Just.ofNullable(name)) // => Just(name) .ap(Just.ofNullable(birthdate)) // => Just(birthdate) .ap(Just.ofNullable(address)) // => Just(address) .ifJust(console.log); // => Log Person.find() response -
Applies the provided function to the value contained for a
Just. The function should return the value wrapped in aMaybe. If the instance is aNothing, the function is ignored and then instance is returned unchanged.Name Type Description methodChain.<Maybe> The function to invoke with the value. Returns:
Type Description Maybe Maybewrapped value returned by the providedmethod.Example
Just#chain
// Using lodash/fp/curry and get const getConfigOption = curry((path, config) => Maybe.ofNullable(get(path, config)); Maybe.ofNullable(config) .chain(getConfigOption("path.to.option")) -
inherited equals(other){Boolean}
-
Determines whether or not the
otheris equal in value to the current (this). This is not a reference check.Name Type Description other* Other value to check. Returns:
Type Description Boolean trueif the two Maybes are equal;falseif not equal.Examples
Reflexivity
v1.equals(v1) === true; // => trueSymmetry
v1.equals(v2) === v2.equals(v1); // => trueTransitivity
(v1.equals(v2) === v2.equals(v3)) && v1.equals(v3) // => true -
Extends the Maybe. This is used for workflow continuation where the context has shifted.
Type Description Extend.<Maybe> method - The function to invoke with the value. Returns:
Type Description Maybe Example
Workflow continuation
// Workflow from makeRequest.js const makeRequest = requestOptions => requestAsPromise(requestOptions) .then(Just.from) .catch(Nothing.from); // Workflow from savePerson.js const savePerson = curry((requestOptions, optionalPerson) => optionalPerson .map(Person.from) .map(person => set("body", person, requestOptions)) .map(makeRequest) ); // Workflow from processResponse.js const processResponse = optionalResponse => optionalResponse .ifJust(console.log); Maybe.ofNullable(person) .extend(savePerson({ method: "POST" })) .extend(processResponse); -
inherited get(){*}
-
Returns the value if the instance is a
Justotherwise thenull.Returns:
Type Description * Examples
Just#get
Just.from(value).get(); // => valueNothing#get
Nothing.from().get(); // => null -
Applies the provided function to the value contain for a
Just. Any return value from the function is ignored. If the instance is aNothing, the function is ignored and the instance is returned.Name Type Description methodConsumer The function to invoke with the value. Returns:
Type Description Maybe Current instance. Examples
Just#ifJust
Just.from(value).ifJust(doSomething); // doSomething(value) // => Just(value)Nothing#ifJust
Nothing.from().ifJust(doSomething); // void // => Nothing() -
Applies the provided function to the value contain for a
Nothing. Any return value from the function is ignored. If the instance is aJust, the function is ignored and the instance is returned.Name Type Description methodCallable The function to invoke. Returns:
Type Description Maybe Current instance. Examples
Just#ifNothing
Just.from(value).ifNothing(doSomething); // void // => Just(value)Nothing#ifNothing
Nothing.from().ifNothing(doSomething); // doSomething() // => Nothing() -
inherited isJust(){Boolean}
-
Determines whether or not the instance is a
Just.Returns:
Type Description Boolean trueif the instance is aJust;falseis not.Examples
Just
Just.from(value).isNothing(); // => trueNothing#isJust
Nothing.from().isNothing(); // => false -
inherited isNothing(){Boolean}
-
Determines whether or not the instance is a
Nothing.Returns:
Type Description Boolean trueif the instance is aNothing;falseis not.Examples
Just#isNothing
Just.from(value).isNothing(); // => falseNothing#isNothing
Nothing.from().isNothing(); // => true -
Applies the provided function to the value contained for a
Justwhich is, in turn, wrapped in aJust. If the instance is aNothing, the function is ignored and then instance is returned unchanged.Name Type Description methodfunction The function to invoke with the value. Returns:
Type Description Maybe Maybewrapped value mapped with the providedmethod.Example
// Using lodash/fp/flow and sort Just.from([1, 3, 2]).map(flow(sort, join(", "))); // => Just("1, 2, 3") Nothing.from().map(flow(sort, join(", "))); // => Nothing() -
inherited of()
-
- See:
-
inherited abstractorElse(method){*}
-
Returns the value if the instance is a
Justotherwise returns the value supplied if the instance is aNothing.Name Type Description methodConsumer The function to invoke with the value. Returns:
Type Description * Examples
Just#orElse
Just.from(value).orElse(otherValue); // => valueNothing#orElse
Nothing.from().orElse(otherValue); // => otherValue -
inherited abstractorElseGet(method){*}
-
Return the value if the instance is a
Justotherwise returns the value from the function provided.Name Type Description methodSupplier The function supplying the optional value. Returns:
Type Description * Examples
Just#orElseGet
Just.from(value).orElseGet(getOtherValue); // => valueNothing#orElseGet
Nothing.from().orElseGet(getOtherValue); // => otherValue -
inherited abstractorElseThrow(method){*}
-
Returns the value if the instance is a
Justotheriwse throws theErrorsupplied by the function provided.Name Type Description methodSupplier The function to invoke with the value. Throws:
-
returned by the provided function.
- Type
- Error
Returns:
Type Description * Examples
Just#orElseThrow
Just.from(value).orElseThrow(createException); // => valueNothing#orElseThrow
Nothing.from().orElseThrow(createException); // throw createException() -
-
Name Type Description eitherEither Either implementation. Returns:
Type Description Either Eitherwrappedvalue.Examples
Just#toEither
const Either = require("lodash-fantasy/data/Either"); Just.from(value).toEither(Either); // => Either.Right(value);Nothing#toEither
const Either = require("lodash-fantasy/data/Either"); Nothing.from().toEither(Either); // => Either.Left(null); -
inherited abstracttoPromise(promise){Promise}
-
Converts the Maybe to a
Promiseusing the providedPromiseimplementation.Name Type Description promisePromise Promise implementation. Returns:
Type Description Promise Promisewrappedvalue.Examples
Just#toPromise
const Bluebird = require("bluebird"); Just.from(value).toPromise(Bluebird); // => Promise.resolve(value);Nothing#toPromise
const Bluebird = require("bluebird"); Nothing.from().toPromise(Bluebird); // => Promise.reject(null); -
inherited abstracttoString(){String}
-
Returns a
Stringrepresentation of theMaybe.Returns:
Type Description String Stringrepresentation.Examples
Just#toString
Just.from(1).toString(); // => "Maybe.Just(1)"Nothing#toString
Nothing.from().toString(); // => "Maybe.Nothing(null)" -
inherited abstracttoValidation(validation){Validation}
-
Name Type Description validationValidation Validation implementation. Returns:
Type Description Validation Validationwrappedvalue.Examples
Just#toValidation
const Validation = require("lodash-fantasy/data/Validation"); Just.from(value).toValidation(Validation); // => Validation.Success(value);Nothing#toValidation
const Validation = require("lodash-fantasy/data/Validation"); Nothing.from().toValidation(Validation); // => Validation.Failure([null]);