Cause<never>Represents a Cause with an empty reasons array.
When to use
Use to represent the absence of failure when constructing or combining causes.
Details
Represents the absence of failure. Combining any cause with empty via
combine returns the original cause unchanged.
Example (Combining with the empty cause)
import { Cause } from "effect"
const cause = Cause.combine(Cause.empty, Cause.fail("boom"))
console.log(cause.reasons.length) // 1
console.log(Cause.hasFails(cause)) // trueexport const const empty: Cause<never>const empty: {
reasons: ReadonlyArray<Reason<E>>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
Represents a Cause with an empty reasons array.
When to use
Use to represent the absence of failure when constructing or combining
causes.
Details
Represents the absence of failure. Combining any cause with empty via
combine
returns the original cause unchanged.
Example (Combining with the empty cause)
import { Cause } from "effect"
const cause = Cause.combine(Cause.empty, Cause.fail("boom"))
console.log(cause.reasons.length) // 1
console.log(Cause.hasFails(cause)) // true
empty: interface Cause<out E>A structured representation of how an Effect failed.
When to use
Use to preserve the full structured failure information for an effect instead
of collapsing it to a single error value.
Details
Access the individual failure entries through the reasons array, then
narrow each entry with
isFailReason
,
isDieReason
, or
- Use
hasFails
/
hasDies
/
hasInterrupts
to test
for the presence of specific reason kinds without iterating.
- Use
findError
/
findDefect
to extract the first value
of a given kind.
- Use
combine
to merge two causes.
Cause implements Equal — two causes with the same reasons (by value)
compare as equal.
Example (Creating and inspecting a cause)
import { Cause } from "effect"
const cause = Cause.fail("Something went wrong")
console.log(cause.reasons.length) // 1
console.log(Cause.isFailReason(cause.reasons[0])) // true
Companion namespace for the Cause interface.
Cause<never> = import corecore.const causeEmpty: Cause.Cause<never>const causeEmpty: {
reasons: ReadonlyArray<Reason<E>>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
causeEmpty