Hyperlinkv0.8.0-beta.28

Effect

Effect.orDieconsteffect/Effect.ts:3622
<A, E, R>(self: Effect<A, E, R>): Effect<A, never, R>

Converts typed failures from the error channel into defects, removing the error type from the returned effect.

When to use

Use when you need to turn an Effect typed failure that represents an unrecoverable bug or invalid state into a defect.

Example (Converting typed failures into defects)

import { Data, Effect } from "effect"

class DivideByZeroError extends Data.TaggedError("DivideByZeroError")<{}> {}

const divide = (a: number, b: number) =>
  b === 0
    ? Effect.fail(new DivideByZeroError())
    : Effect.succeed(a / b)

//      ┌─── Effect<number, never, never>
//      ▼
const program = Effect.orDie(divide(1, 0))

Effect.runPromise(program).catch(console.error)
// Output:
// (FiberFailure) DivideByZeroError
//   ...stack trace...
converting failures to defects
Source effect/Effect.ts:36221 lines
export const orDie: <A, E, R>(self: Effect<A, E, R>) => Effect<A, never, R> = internal.orDie