This commit is contained in:
@@ -3,7 +3,7 @@ import { type Cause, type Context, Effect, Layer, Queue, Stream } from "effect"
|
||||
|
||||
export interface ErrorHandler<E> {
|
||||
readonly errors: Stream.Stream<Cause.Cause<E>>
|
||||
readonly handle: <A, SelfE, R>(self: Effect.Effect<A, SelfE | E, R>) => Effect.Effect<A, SelfE, R>
|
||||
readonly handle: <A, SelfE, R>(self: Effect.Effect<A, SelfE, R>) => Effect.Effect<A, Exclude<SelfE, E>, R>
|
||||
}
|
||||
|
||||
export const Tag = <const Id extends string>(id: Id) => <
|
||||
@@ -17,10 +17,10 @@ export const layer = <Self, Id extends string, E>(
|
||||
const errors = Stream.fromQueue(queue)
|
||||
|
||||
const handle = <A, SelfE, R>(
|
||||
self: Effect.Effect<A, SelfE | E, R>
|
||||
self: Effect.Effect<A, SelfE, R>
|
||||
) => Effect.tapErrorCause(self, cause =>
|
||||
Queue.offer(queue, cause as Cause.Cause<E>)
|
||||
) as Effect.Effect<A, SelfE, R>
|
||||
) as Effect.Effect<A, Exclude<SelfE, E>, R>
|
||||
|
||||
return { errors, handle }
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user