From a05732763b13721ecd0f2381b95bf93e95b440b4 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 30 May 2024 11:13:48 +1200 Subject: [PATCH] add Result.getOrElse --- .changeset/cuddly-actors-tie.md | 5 +++++ packages/rx/src/Result.ts | 10 ++++++++++ 2 files changed, 15 insertions(+) create mode 100644 .changeset/cuddly-actors-tie.md diff --git a/.changeset/cuddly-actors-tie.md b/.changeset/cuddly-actors-tie.md new file mode 100644 index 0000000..042e8dc --- /dev/null +++ b/.changeset/cuddly-actors-tie.md @@ -0,0 +1,5 @@ +--- +"@effect-rx/rx": patch +--- + +add Result.getOrElse diff --git a/packages/rx/src/Result.ts b/packages/rx/src/Result.ts index fca5c74..7c17b6c 100644 --- a/packages/rx/src/Result.ts +++ b/packages/rx/src/Result.ts @@ -4,6 +4,7 @@ import * as Cause from "effect/Cause" import * as Data from "effect/Data" import * as Exit from "effect/Exit" +import type { LazyArg, LazyArg } from "effect/Function" import { dual, identity } from "effect/Function" import * as Option from "effect/Option" import { type Pipeable, pipeArguments } from "effect/Pipeable" @@ -266,6 +267,15 @@ export const value = (self: Result): Option.Option => { return Option.none() } +/** + * @since 1.0.0 + * @category accessors + */ +export const getOrElse: { + (orElse: LazyArg): (self: Result) => A | B + (self: Result, orElse: LazyArg): A | B +} = dual(2, (self: Result, orElse: LazyArg): A | B => self._tag === "Success" ? self.value : orElse()) + /** * @since 1.0.0 * @category accessors