effect-io-ai

Package: effect
Module: Effect

Effect.option

Converts success to Option.some and failure to Option.none.

When to use

Use when you only care whether an effect succeeds and want recoverable failures represented as Option.none.

Details

Success values become Option.some, recoverable failures become Option.none, and defects still fail the effect.

Gotchas

option only captures typed, recoverable failures as Option.none. Defects and interruptions are not captured inside the Option and still fail the effect.

option also discards typed failure values. Use result if the failure value matters.

Example (Capturing success or failure as Option)

import { Console, Effect, Option } from "effect"

const program = Effect.gen(function*() {
  const someValue = yield* Effect.option(Effect.succeed(1))
  const noneValue = yield* Effect.option(Effect.fail("missing"))

  yield* Console.log(Option.isSome(someValue))
  yield* Console.log(Option.isNone(noneValue))
})

Effect.runPromise(program)
// true
// true

See

Signature

declare const option: <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, never, R>

Source

Since v2.0.0