effect-io-ai

Package: effect
Module: Result

Result.transposeMapOption

Maps an Option value with a Result-producing function, then transposes the structure from Option<Result<B, E>> to Result<Option<B>, E>.

When to use

Use when an optional value should be validated only when present, preserving absence as a successful None.

Details

Example (Mapping and transposing in one step)

import { Option, Result } from "effect"

const parse = (s: string) =>
  isNaN(Number(s))
    ? Result.fail("not a number" as const)
    : Result.succeed(Number(s))

console.log(Result.transposeMapOption(Option.some("42"), parse))
// Output: { _tag: "Success", success: { _tag: "Some", value: 42 }, ... }

console.log(Result.transposeMapOption(Option.none(), parse))
// Output: { _tag: "Success", success: { _tag: "None" }, ... }

See

Signature

declare const transposeMapOption: (<A, B, E = never>(f: (self: A) => Result<B, E>) => (self: Option<A>) => Result<Option<B>, E>) & (<A, B, E = never>(self: Option<A>, f: (self: A) => Result<B, E>) => Result<Option<B>, E>)

Source

Since v3.15.0