MCPcopy Create free account
hub / github.com/effect-app/libs / flatMapOption

Function flatMapOption

packages/effect-app/src/Effect.ts:19–28  ·  view source on GitHub ↗
(
  self: Effect.Effect<Option.Option<A>, E, R>,
  fm: (a: A) => Effect.Effect<A2, E2, R2>
)

Source from the content-addressed store, hash-verified

17export type { Effect } from "effect/Effect"
18
19export function flatMapOption<R, E, A, R2, E2, A2>(
20 self: Effect.Effect<Option.Option<A>, E, R>,
21 fm: (a: A) => Effect.Effect<A2, E2, R2>
22): Effect.Effect<Option.Option<A2>, E | E2, R | R2> {
23 return Effect.flatMap(self, (d) =>
24 Option.match(d, {
25 onNone: () => Effect.sync(() => Option.none()),
26 onSome: (_) => Effect.map(fm(_), Option.some)
27 }))
28}
29
30export function tapOption<R, E, A, R2, E2, A2>(
31 self: Effect.Effect<Option.Option<A>, E, R>,

Callers 2

makeFunction · 0.90
saveAllEFunction · 0.90

Calls 2

syncMethod · 0.80
mapMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…