MCPcopy Create free account
hub / github.com/Effect-TS/effect / orElse

Function orElse

packages/effect/src/internal/matcher.ts:525–540  ·  view source on GitHub ↗
(f: F)

Source from the content-addressed store, hash-verified

523/** @internal */
524export const orElse =
525 <RA, Ret, F extends (_: RA) => Ret>(f: F) =>
526 <I, R, A, Pr>(self: Matcher<I, R, RA, A, Pr, Ret>): [Pr] extends [never] ? (input: I) => Unify<ReturnType<F> | A>
527 : Unify<ReturnType<F> | A> =>
528 {
529 const toResult = result(self)
530
531 if (Result.isResult(toResult)) {
532 return toResult._tag === "Success" ? toResult.success as any : f(toResult.failure) as any
533 }
534
535 // @ts-expect-error
536 return (input: I) => {
537 const a = toResult(input)
538 return Result.isSuccess(a) ? a.success : f(a.failure)
539 }
540 }
541
542/** @internal */
543export const orElseAbsurd = <I, R, RA, A, Pr, Ret>(

Callers 7

Channel.tsFile · 0.85
Context.tsFile · 0.85
Stream.tsFile · 0.85
layerAddFunction · 0.85
effect.tsFile · 0.85
schedule.tsFile · 0.85
orElseAbsurdFunction · 0.85

Calls 2

resultFunction · 0.50
fFunction · 0.50

Tested by

no test coverage detected