diff --git a/packages/extension-query/src/QueryClient.ts b/packages/extension-query/src/QueryClient.ts index 4e1b416..692b2b6 100644 --- a/packages/extension-query/src/QueryClient.ts +++ b/packages/extension-query/src/QueryClient.ts @@ -20,7 +20,11 @@ export interface ServiceProps { } export interface ServiceResult extends Context.TagClass> { - readonly Live: Layer.Layer + readonly Live: Layer.Layer< + Self, + never, + EH extends ErrorHandler.DefaultErrorHandler ? never : EH + > } export const Service = () => ( @@ -31,9 +35,17 @@ export const Service = () => ( props?: ServiceProps ): ServiceResult => { const TagClass = Context.Tag(id)() as ServiceResult + (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>) + Effect.bind("errorHandler", () => + (props?.ErrorHandler ?? ErrorHandler.DefaultErrorHandler) as Effect.Effect< + ErrorHandler.ErrorHandler, + never, + EH extends ErrorHandler.DefaultErrorHandler ? never : EH + > + ) )) + return TagClass } )