diff --git a/packages/effect-fc/src/ErrorObserver.ts b/packages/effect-fc/src/ErrorObserver.ts index d18748c..921d6f9 100644 --- a/packages/effect-fc/src/ErrorObserver.ts +++ b/packages/effect-fc/src/ErrorObserver.ts @@ -1,15 +1,13 @@ -import { type Cause, Context, Effect, Layer, type Queue, type Scope } from "effect" +import { type Cause, Context, type Effect, Layer, type Queue, type Scope } from "effect" -export interface ErrorObserver { - readonly "~In": EIn - readonly "~Out": EOut - readonly "~Caught": Exclude - - handle(effect: Effect.Effect): Effect.Effect>, R> - readonly subscribe: Effect.Effect>, never, Scope.Scope> +export interface ErrorObserver { + handle>(effect: Eff): Eff + readonly subscribe: Effect.Effect>, never, Scope.Scope> } +export const ErrorObserver = (): Context.Tag, ErrorObserver> => Context.GenericTag("@effect-fc/ErrorObserver/ErrorObserver") + export namespace make { export type Handler = ( @@ -24,34 +22,3 @@ export namespace make { export const make = () => ( f: make.Handler, EOut> ): Effect.Effect> => - - -export const ErrorObserver: Context.Tag< - ErrorObserver, - ErrorObserver -> = Context.GenericTag("@effect-fc/ErrorObserver/ErrorObserver") - -export namespace Service { - export interface Result - extends Context.TagClass> { - readonly Default: Layer.Layer - } -} - -export const Service = () => ( - ( - id: Id, - f: ( - self: Effect.Effect>, - actions: { - failure(failure: NoInfer): Effect.Effect - defect(defect: unknown): Effect.Effect - }, - ) => Effect.Effect, - ): Service.Result => Layer.effect( - ErrorObserver as Context.Tag, ErrorObserver>, - Effect.gen(function*() { - - }, - )) -)