0.1.13 #18

Merged
Thilawyn merged 359 commits from next into master 2025-06-18 00:12:19 +02:00
Showing only changes of commit f4e380ddcb - Show all commits

View File

@@ -8,6 +8,17 @@ export interface QueryClient<FallbackA, HandledE> {
} }
export interface MakeProps<FallbackA, HandledE, E, R> {
readonly errorHandler: Effect.Effect<QueryErrorHandler.QueryErrorHandler<FallbackA, HandledE>, E, R>
}
export const make = <FallbackA, HandledE, E, R>(
{ errorHandler }: MakeProps<FallbackA, HandledE, E, R>
): Effect.Effect<QueryClient<FallbackA, HandledE>, E, R> => Effect.Do.pipe(
Effect.bind("errorHandler", () => errorHandler)
)
const id = "@reffuse/extension-query/QueryClient" const id = "@reffuse/extension-query/QueryClient"
export type TagClassShape<FallbackA, HandledE> = Context.TagClassShape<typeof id, QueryClient<FallbackA, HandledE>> export type TagClassShape<FallbackA, HandledE> = Context.TagClassShape<typeof id, QueryClient<FallbackA, HandledE>>
@@ -19,29 +30,26 @@ export type GenericTagClass<FallbackA, HandledE> = Context.TagClass<
export const makeGenericTagClass = <FallbackA = never, HandledE = never>(): GenericTagClass<FallbackA, HandledE> => Context.Tag(id)() export const makeGenericTagClass = <FallbackA = never, HandledE = never>(): GenericTagClass<FallbackA, HandledE> => Context.Tag(id)()
export interface ServiceProps<EH, FallbackA, HandledE> { export interface ServiceProps<FallbackA = never, HandledE = never, E = never, R = never> {
readonly ErrorHandler?: Context.Tag<EH, QueryErrorHandler.QueryErrorHandler<FallbackA, HandledE>> readonly errorHandler?: Effect.Effect<QueryErrorHandler.QueryErrorHandler<FallbackA, HandledE>, E, R>
} }
export interface ServiceResult<Self, EH, FallbackA, HandledE> extends Context.TagClass< export interface ServiceResult<Self, FallbackA, HandledE, E, R> extends Context.TagClass<
Self, Self,
typeof id, typeof id,
QueryClient<FallbackA, HandledE> QueryClient<FallbackA, HandledE>
> { > {
readonly Default: Layer.Layer< readonly Default: Layer.Layer<QueryErrorHandler.QueryErrorHandler<FallbackA, HandledE>, E, R>
Self | (EH extends QueryErrorHandler.DefaultQueryErrorHandler ? EH : never),
never,
EH extends QueryErrorHandler.DefaultQueryErrorHandler ? never : EH
>
} }
export const Service = <Self>() => ( export const Service = <Self>() => (
< <
EH = QueryErrorHandler.DefaultQueryErrorHandler,
FallbackA = QueryErrorHandler.Fallback<Context.Tag.Service<typeof QueryErrorHandler.DefaultQueryErrorHandler>>, FallbackA = QueryErrorHandler.Fallback<Context.Tag.Service<typeof QueryErrorHandler.DefaultQueryErrorHandler>>,
HandledE = QueryErrorHandler.Error<Context.Tag.Service<typeof QueryErrorHandler.DefaultQueryErrorHandler>>, HandledE = QueryErrorHandler.Error<Context.Tag.Service<typeof QueryErrorHandler.DefaultQueryErrorHandler>>,
E = never,
R = never,
>( >(
props?: ServiceProps<EH, FallbackA, HandledE> props?: ServiceProps<FallbackA, HandledE, E, R>
): ServiceResult<Self, EH, FallbackA, HandledE> => { ): ServiceResult<Self, EH, FallbackA, HandledE> => {
const TagClass = Context.Tag(id)() as ServiceResult<Self, EH, FallbackA, HandledE> const TagClass = Context.Tag(id)() as ServiceResult<Self, EH, FallbackA, HandledE>