<A>(value: A): Effect<NonNullable<A>, Cause.NoSuchElementError>Converts a nullable value to an Effect, failing with a NoSuchElementError
when the value is null or undefined.
Example (Failing on nullish values)
import { Console, Effect } from "effect"
const program = Effect.fn(function*(input: string | null) {
const value = yield* Effect.fromNullishOr(input)
yield* Console.log(value)
},
Effect.catch(() => Console.log("missing"))
)
Effect.runPromise(program(null))
// Output: missing
Effect.runPromise(program("hello"))
// Output: helloexport const const fromNullishOr: <A>(
value: A
) => Effect<
NonNullable<A>,
Cause.NoSuchElementError
>
Converts a nullable value to an Effect, failing with a NoSuchElementError
when the value is null or undefined.
Example (Failing on nullish values)
import { Console, Effect } from "effect"
const program = Effect.fn(function*(input: string | null) {
const value = yield* Effect.fromNullishOr(input)
yield* Console.log(value)
},
Effect.catch(() => Console.log("missing"))
)
Effect.runPromise(program(null))
// Output: missing
Effect.runPromise(program("hello"))
// Output: hello
fromNullishOr: <function (type parameter) A in <A>(value: A): Effect<NonNullable<A>, Cause.NoSuchElementError>A>(value: Avalue: function (type parameter) A in <A>(value: A): Effect<NonNullable<A>, Cause.NoSuchElementError>A) => interface Effect<out A, out E = never, out R = never>The Effect interface defines a value that lazily describes a workflow or
job. The workflow requires some context R, and may fail with an error of
type E, or succeed with a value of type A.
When to use
Use when you need to represent a lazy, composable workflow that can require
services, fail with a typed error, or succeed with a typed value.
Details
Effect values model resourceful interaction with the outside world,
including synchronous, asynchronous, concurrent, and parallel interaction.
They use a fiber-based concurrency model, with built-in support for
scheduling, fine-grained interruption, structured concurrency, and high
scalability.
To run an Effect value, you need a Runtime, which is a type that is
capable of executing Effect values.
Effect<type NonNullable<T> = T & {}Exclude null and undefined from T
NonNullable<function (type parameter) A in <A>(value: A): Effect<NonNullable<A>, Cause.NoSuchElementError>A>, import CauseCause.type Cause.NoSuchElementError = /*unresolved*/ anyNoSuchElementError> = import internalinternal.const fromNullishOr: <A>(
value: A
) => Effect.Effect<
NonNullable<A>,
Cause.NoSuchElementError
>
fromNullishOr