Hyperlinkv0.8.0-beta.28

Result

Result.fromNullishOrconsteffect/Result.ts:415
<A, E>(onNullish: (a: A) => E): (self: A) => Result<NonNullable<A>, E>
<A, E>(self: A, onNullish: (a: A) => E): Result<NonNullable<A>, E>

Converts a possibly null or undefined value into a Result.

When to use

Use when you need null or undefined input to become a Failure while present values remain available as Success.

Details

  • Non-nullish values become Success<NonNullable<A>>
  • null or undefined becomes Failure<E> using the provided function
  • Supports both data-first and data-last (piped) usage
  • The onNullish callback receives the original value

Example (Handling nullable values)

import { Result } from "effect"

console.log(Result.fromNullishOr(1, () => "fallback"))
// Output: { _tag: "Success", success: 1, ... }

console.log(Result.fromNullishOr(null, () => "fallback"))
// Output: { _tag: "Failure", failure: "fallback", ... }
Source effect/Result.ts:4158 lines
export const fromNullishOr: {
  <A, E>(onNullish: (a: A) => E): (self: A) => Result<NonNullable<A>, E>
  <A, E>(self: A, onNullish: (a: A) => E): Result<NonNullable<A>, E>
} = dual(
  2,
  <A, E>(self: A, onNullish: (a: A) => E): Result<NonNullable<A>, E> =>
    self == null ? fail(onNullish(self)) : succeed(self)
)