0.1.13 #18

Merged
Thilawyn merged 359 commits from next into master 2025-06-18 00:12:19 +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 } 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>> 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> props: LayerProps<EH, HandledE>
): Layer.Layer<QueryClient<EH, HandledE>> => ): Layer.Layer<
Layer.effect(Context.GenericTag<QueryClient<EH, HandledE>>("@reffuse/extension-query/QueryClient"), Effect.succeed({ QueryClient<EH, HandledE>,
ErrorHandler: props.ErrorHandler 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
),
)