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