0.1.11 #14

Merged
Thilawyn merged 318 commits from next into master 2025-05-19 14:01:41 +02:00
2 changed files with 27 additions and 5 deletions
Showing only changes of commit 68c68417d8 - Show all commits

View File

@@ -24,3 +24,7 @@ export const layer = <Self, Id extends string, E>(
return { errors, handle }
}))
export class DefaultErrorHandler extends Tag("@reffuse/extension-query/DefaultErrorHandler")<DefaultErrorHandler>() {}
export const DefaultErrorHandlerLive = layer(DefaultErrorHandler)

View File

@@ -11,9 +11,27 @@ export interface LayerProps<EH, HandledE> {
readonly ErrorHandler?: Context.Tag<EH, ErrorHandler.ErrorHandler<HandledE>>
}
export const layer = <EH = never, HandledE = never>(
export const layer = <
EH = ErrorHandler.DefaultErrorHandler,
HandledE = never,
>(
props: LayerProps<EH, HandledE>
): Layer.Layer<QueryClient<EH, HandledE>> =>
Layer.effect(Context.GenericTag<QueryClient<EH, HandledE>>("@reffuse/extension-query/QueryClient"), Effect.succeed({
ErrorHandler: props.ErrorHandler
}))
): Layer.Layer<
QueryClient<EH, HandledE>,
never,
typeof props.ErrorHandler extends undefined
? ErrorHandler.DefaultErrorHandler
: never
> => Layer.empty.pipe(
Layer.provideMerge(Layer.effect(
Context.GenericTag<QueryClient<EH, HandledE>>("@reffuse/extension-query/QueryClient"),
Effect.succeed({
ErrorHandler: (props.ErrorHandler ?? ErrorHandler.DefaultErrorHandler) as Context.Tag<EH, ErrorHandler.ErrorHandler<HandledE>>
})),
),
Layer.provideMerge(props.ErrorHandler
? Layer.empty
: ErrorHandler.DefaultErrorHandlerLive
),
)