QueryClient work
Some checks failed
Lint / lint (push) Failing after 17s

This commit is contained in:
Julien Valverdé
2025-03-31 18:22:18 +02:00
parent 3da4b2a318
commit c75bb10e6b

View File

@@ -20,7 +20,11 @@ export interface ServiceProps<EH, HandledE> {
} }
export interface ServiceResult<Self, EH, HandledE> extends Context.TagClass<Self, typeof id, QueryClient<HandledE>> { export interface ServiceResult<Self, EH, HandledE> extends Context.TagClass<Self, typeof id, QueryClient<HandledE>> {
readonly Live: Layer.Layer<Self, never, EH> readonly Live: Layer.Layer<
Self,
never,
EH extends ErrorHandler.DefaultErrorHandler ? never : EH
>
} }
export const Service = <Self>() => ( export const Service = <Self>() => (
@@ -31,9 +35,17 @@ export const Service = <Self>() => (
props?: ServiceProps<EH, HandledE> props?: ServiceProps<EH, HandledE>
): ServiceResult<Self, EH, HandledE> => { ): ServiceResult<Self, EH, HandledE> => {
const TagClass = Context.Tag(id)() as ServiceResult<Self, EH, HandledE> const TagClass = Context.Tag(id)() as ServiceResult<Self, EH, HandledE>
(TagClass as Mutable<typeof TagClass>).Live = Layer.effect(TagClass, Effect.Do.pipe( (TagClass as Mutable<typeof TagClass>).Live = Layer.effect(TagClass, Effect.Do.pipe(
Effect.bind("errorHandler", () => (props?.ErrorHandler as Effect.Effect<ErrorHandler.ErrorHandler<HandledE>, never, EH>) ?? ErrorHandler.DefaultErrorHandler as Effect.Effect<ErrorHandler.ErrorHandler<HandledE>, never, EH>) Effect.bind("errorHandler", () =>
(props?.ErrorHandler ?? ErrorHandler.DefaultErrorHandler) as Effect.Effect<
ErrorHandler.ErrorHandler<HandledE>,
never,
EH extends ErrorHandler.DefaultErrorHandler ? never : EH
>
)
)) ))
return TagClass return TagClass
} }
) )