@sekwiatkowski/js-fp
Version:
A pragmatic functional programming library for JavaScript/TypeScript
98 lines • 2.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const Success_1 = require("./Success");
const __1 = require("..");
class Failure {
constructor(error) {
this.error = error;
}
//region Access
getErrorOrElse(alternative) {
return this.error;
}
getOrElse(alternative) {
return alternative instanceof Function ? alternative(this.error) : alternative;
}
//endregion
//region Application
apply(argumentOrFunctionOrResult) {
return new Failure(this.error);
}
//endregion
//region Chaining
chain(f) {
return new Failure(this.error);
}
//endregion
//region Comprehension
assign(key, memberResultOrValueOrFunction) {
return new Failure(this.error);
}
//endregion
//region Conversion
toFuture() {
return __1.reject(this.error);
}
toOption() {
return __1.none;
}
toValidated() {
return __1.invalid([this.error]);
}
//endregion
//region Fallback
orElse(alternative) {
return Success_1.success(alternative instanceof Function ? alternative(this.error) : alternative);
}
orAttempt(alternative) {
return alternative(this.error);
}
//endregion
//region Mapping
map(f) {
return new Failure(this.error);
}
mapError(f) {
return new Failure(f(this.error));
}
//endregion
//region Matching
match(onSuccess, onFailure) {
return onFailure(this.error);
}
//endregion
//region Side-effects
performOnBoth(sideEffect) {
sideEffect();
return this;
}
perform(sideEffect) {
return this;
}
performOnFailure(sideEffect) {
sideEffect(this.error);
return this;
}
//endregion
//region Status
isFailure() {
return true;
}
isSuccess() {
return false;
}
//endregion
//region Testing
equals(otherResult, equality) {
return equality.test(this, otherResult);
}
test(predicate) {
return false;
}
}
exports.Failure = Failure;
function failure(error) {
return new Failure(error);
}
exports.failure = failure;
//# sourceMappingURL=Failure.js.map
;