From 82d154ac545437223310827125391c3118865e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 1 Jun 2025 05:03:41 +0200 Subject: [PATCH] Fix --- packages/example/src/VQueryErrorHandler.tsx | 6 +++--- packages/example/src/main.tsx | 6 +++--- packages/example/src/query.ts | 17 ----------------- packages/example/src/reffuse.ts | 5 +++-- packages/example/src/services/AppQueryClient.ts | 7 +++++++ .../src/services/AppQueryErrorHandler.ts | 13 +++++++++++++ packages/example/src/services/index.ts | 3 ++- 7 files changed, 31 insertions(+), 26 deletions(-) delete mode 100644 packages/example/src/query.ts create mode 100644 packages/example/src/services/AppQueryClient.ts create mode 100644 packages/example/src/services/AppQueryErrorHandler.ts diff --git a/packages/example/src/VQueryErrorHandler.tsx b/packages/example/src/VQueryErrorHandler.tsx index 1c4ca27..05b396d 100644 --- a/packages/example/src/VQueryErrorHandler.tsx +++ b/packages/example/src/VQueryErrorHandler.tsx @@ -1,16 +1,16 @@ import { AlertDialog, Button, Flex, Text } from "@radix-ui/themes" import { Cause, Console, Effect, Either, flow, Match, Option, Stream } from "effect" import { useState } from "react" -import { AppQueryClient } from "./query" import { R } from "./reffuse" +import { AppQueryErrorHandler } from "./services" export function VQueryErrorHandler() { const [open, setOpen] = useState(false) const error = R.useSubscribeStream( - R.useMemo(() => AppQueryClient.pipe( - Effect.map(client => client.errorHandler.errors.pipe( + R.useMemo(() => AppQueryErrorHandler.AppQueryErrorHandler.pipe( + Effect.map(handler => handler.errors.pipe( Stream.changes, Stream.tap(Console.error), Stream.tap(() => Effect.sync(() => setOpen(true))), diff --git a/packages/example/src/main.tsx b/packages/example/src/main.tsx index 44742b5..32a603d 100644 --- a/packages/example/src/main.tsx +++ b/packages/example/src/main.tsx @@ -5,14 +5,14 @@ import { Layer } from "effect" import { StrictMode } from "react" import { createRoot } from "react-dom/client" import { ReffuseRuntime } from "reffuse" -import { AppQueryClient, AppQueryErrorHandler } from "./query" import { RootContext } from "./reffuse" import { routeTree } from "./routeTree.gen" +import { AppQueryClient, AppQueryErrorHandler } from "./services" const layer = Layer.empty.pipe( - Layer.provideMerge(AppQueryClient.Default), - Layer.provideMerge(AppQueryErrorHandler.Default), + Layer.provideMerge(AppQueryClient.AppQueryClient.Default), + Layer.provideMerge(AppQueryErrorHandler.AppQueryErrorHandler.Default), Layer.provideMerge(Clipboard.layer), Layer.provideMerge(Geolocation.layer), Layer.provideMerge(Permissions.layer), diff --git a/packages/example/src/query.ts b/packages/example/src/query.ts deleted file mode 100644 index 853f6b0..0000000 --- a/packages/example/src/query.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { HttpClientError } from "@effect/platform" -import { QueryClient, QueryErrorHandler } from "@reffuse/extension-query" -import { Effect } from "effect" - - -export class AppQueryErrorHandler extends QueryErrorHandler.Service()( - "AppQueryErrorHandler", - - (self, failure, defect) => self.pipe( - Effect.catchTag("RequestError", "ResponseError", failure), - Effect.catchAllDefect(defect), - ), -) {} - -export class AppQueryClient extends QueryClient.Service()({ ErrorHandler: AppQueryErrorHandler }) {} diff --git a/packages/example/src/reffuse.ts b/packages/example/src/reffuse.ts index 3a08e53..00abc14 100644 --- a/packages/example/src/reffuse.ts +++ b/packages/example/src/reffuse.ts @@ -3,11 +3,12 @@ import { Clipboard, Geolocation, Permissions } from "@effect/platform-browser" import { LazyRefExtension } from "@reffuse/extension-lazyref" import { QueryExtension } from "@reffuse/extension-query" import { Reffuse, ReffuseContext } from "reffuse" -import { AppQueryClient } from "./query" +import { AppQueryClient, AppQueryErrorHandler } from "./services" export const RootContext = ReffuseContext.make< - | AppQueryClient + | AppQueryClient.AppQueryClient + | AppQueryErrorHandler.AppQueryErrorHandler | Clipboard.Clipboard | Geolocation.Geolocation | Permissions.Permissions diff --git a/packages/example/src/services/AppQueryClient.ts b/packages/example/src/services/AppQueryClient.ts new file mode 100644 index 0000000..bee5014 --- /dev/null +++ b/packages/example/src/services/AppQueryClient.ts @@ -0,0 +1,7 @@ +import { QueryClient } from "@reffuse/extension-query" +import * as AppQueryErrorHandler from "./AppQueryErrorHandler" + + +export class AppQueryClient extends QueryClient.Service()({ + errorHandler: AppQueryErrorHandler.AppQueryErrorHandler +}) {} diff --git a/packages/example/src/services/AppQueryErrorHandler.ts b/packages/example/src/services/AppQueryErrorHandler.ts new file mode 100644 index 0000000..efff7ec --- /dev/null +++ b/packages/example/src/services/AppQueryErrorHandler.ts @@ -0,0 +1,13 @@ +import { HttpClientError } from "@effect/platform" +import { QueryErrorHandler } from "@reffuse/extension-query" +import { Effect } from "effect" + + +export class AppQueryErrorHandler extends Effect.Service()("AppQueryErrorHandler", { + effect: QueryErrorHandler.make()( + (self, failure, defect) => self.pipe( + Effect.catchTag("RequestError", "ResponseError", failure), + Effect.catchAllDefect(defect), + ) + ) +}) {} diff --git a/packages/example/src/services/index.ts b/packages/example/src/services/index.ts index 336ce12..691ab08 100644 --- a/packages/example/src/services/index.ts +++ b/packages/example/src/services/index.ts @@ -1 +1,2 @@ -export {} +export * as AppQueryClient from "./AppQueryClient" +export * as AppQueryErrorHandler from "./AppQueryErrorHandler"