diff --git a/packages/extension-query/src/QueryClient.ts b/packages/extension-query/src/QueryClient.ts index daacc0c..4e1b416 100644 --- a/packages/extension-query/src/QueryClient.ts +++ b/packages/extension-query/src/QueryClient.ts @@ -1,4 +1,4 @@ -import { Context, Layer } from "effect" +import { Context, Effect, Layer } from "effect" import type { Mutable } from "effect/Types" import * as ErrorHandler from "./ErrorHandler.js" @@ -12,15 +12,15 @@ const id = "@reffuse/extension-query/QueryClient" export type TagClassShape = Context.TagClassShape> export type GenericTagClass = Context.TagClass, typeof id, QueryClient> -export const makeGenericTagClass = (): GenericTagClass => Context.Tag(id)() +export const makeGenericTagClass = (): GenericTagClass => Context.Tag(id)() export interface ServiceProps { readonly ErrorHandler?: Context.Tag> } -export interface ServiceResult extends Context.TagClass> { - readonly Live: Layer.Layer +export interface ServiceResult extends Context.TagClass> { + readonly Live: Layer.Layer } export const Service = () => ( @@ -31,9 +31,9 @@ export const Service = () => ( props?: ServiceProps ): ServiceResult => { const TagClass = Context.Tag(id)() as ServiceResult - (TagClass as Mutable).Live = Layer.succeed(TagClass, { - ErrorHandler: (props?.ErrorHandler ?? ErrorHandler.DefaultErrorHandler) as Context.Tag> - }) + (TagClass as Mutable).Live = Layer.effect(TagClass, Effect.Do.pipe( + Effect.bind("errorHandler", () => (props?.ErrorHandler as Effect.Effect, never, EH>) ?? ErrorHandler.DefaultErrorHandler as Effect.Effect, never, EH>) + )) return TagClass } )