<E>(self: Reason<E>): self is DieNarrows a Reason to Die.
When to use
Use as a predicate for Array.filter to pick out Die (defect) reasons when
iterating over cause.reasons.
Example (Filtering die reasons)
import { Cause } from "effect"
const cause = Cause.die("defect")
const dies = cause.reasons.filter(Cause.isDieReason)
console.log(dies[0].defect) // "defect"Source effect/Cause.ts:1981 lines
export const const isDieReason: <E>(
self: Reason<E>
) => self is Die
Narrows a Reason to Die.
When to use
Use as a predicate for Array.filter to pick out Die (defect) reasons when
iterating over cause.reasons.
Example (Filtering die reasons)
import { Cause } from "effect"
const cause = Cause.die("defect")
const dies = cause.reasons.filter(Cause.isDieReason)
console.log(dies[0].defect) // "defect"
isDieReason: <function (type parameter) E in <E>(self: Reason<E>): self is DieE>(self: Reason<E>self: type Reason<E> = Fail<E> | Die | InterruptA single entry inside a Cause's reasons array.
Details
Narrow to a concrete type with
isFailReason
,
isDieReason
,
or
isInterruptReason
.
Fail<E> — typed error, access via .error
Die — untyped defect, access via .defect
Interrupt — fiber interruption, access via .fiberId
Every reason carries an annotations map and an annotate method for
attaching tracing metadata.
Example (Narrowing a reason)
import { Cause } from "effect"
const reason = Cause.fail("error").reasons[0]
if (Cause.isFailReason(reason)) {
console.log(reason.error) // "error"
}
Companion namespace for the Reason type.
Reason<function (type parameter) E in <E>(self: Reason<E>): self is DieE>) => self: Reason<E>self is Die = import corecore.const isDieReason: <E>(
self: Cause.Reason<E>
) => self is Cause.Die
isDieReasonReferenced by 2 symbols