@reffuse/extension-query 0.1.4 #15

Merged
Thilawyn merged 340 commits from next into master 2025-05-26 04:15:01 +02:00
4 changed files with 35 additions and 7 deletions
Showing only changes of commit 0437fa5dcc - Show all commits

View File

@@ -0,0 +1,26 @@
import { HttpClientError } from "@effect/platform"
import { ErrorHandler } from "@reffuse/extension-query"
import { Cause, Chunk, Effect, flow, Match, Stream } from "effect"
import { R } from "./reffuse"
export class QueryErrorHandler extends ErrorHandler.Tag("QueryErrorHandler")<QueryErrorHandler,
HttpClientError.HttpClientError
>() {}
export const QueryErrorHandlerLive = ErrorHandler.layer(QueryErrorHandler)
export function VQueryErrorHandler() {
R.useFork(() => QueryErrorHandler.pipe(Effect.flatMap(handler =>
Stream.runForEach(handler.errors, flow(
Cause.failures,
Chunk.map(flow(Match.value,
Match.tag("RequestError", () => Effect.sync(() => {})),
Match.tag("ResponseError", () => Effect.sync(() => {})),
Match.exhaustive,
)),
Effect.all,
))
)), [])
}

View File

@@ -6,6 +6,7 @@ import { Layer } from "effect"
import { StrictMode } from "react" import { StrictMode } from "react"
import { createRoot } from "react-dom/client" import { createRoot } from "react-dom/client"
import { ReffuseRuntime } from "reffuse" import { ReffuseRuntime } from "reffuse"
import { QueryErrorHandler, QueryErrorHandlerLive } from "./QueryErrorHandler"
import { GlobalContext } from "./reffuse" import { GlobalContext } from "./reffuse"
import { routeTree } from "./routeTree.gen" import { routeTree } from "./routeTree.gen"
@@ -15,7 +16,8 @@ const layer = Layer.empty.pipe(
Layer.provideMerge(Geolocation.layer), Layer.provideMerge(Geolocation.layer),
Layer.provideMerge(Permissions.layer), Layer.provideMerge(Permissions.layer),
Layer.provideMerge(FetchHttpClient.layer), Layer.provideMerge(FetchHttpClient.layer),
Layer.provideMerge(QueryClient.layer()), Layer.provideMerge(QueryClient.layer({ ErrorHandler: QueryErrorHandler })),
Layer.provideMerge(QueryErrorHandlerLive),
) )
const router = createRouter({ routeTree }) const router = createRouter({ routeTree })

View File

@@ -1,4 +1,3 @@
import { HttpClientError } from "@effect/platform"
import { QueryService } from "@reffuse/extension-query" import { QueryService } from "@reffuse/extension-query"
import { ParseResult, Schema } from "effect" import { ParseResult, Schema } from "effect"
@@ -8,5 +7,5 @@ export const Result = Schema.Array(Schema.String)
export class Uuid4Query extends QueryService.Tag("Uuid4Query")<Uuid4Query, export class Uuid4Query extends QueryService.Tag("Uuid4Query")<Uuid4Query,
readonly ["uuid4", number], readonly ["uuid4", number],
typeof Result.Type, typeof Result.Type,
HttpClientError.HttpClientError | ParseResult.ParseError ParseResult.ParseError
>() {} >() {}

View File

@@ -1,8 +1,9 @@
import { HttpClient } from "@effect/platform" import { HttpClient, HttpClientError } from "@effect/platform"
import { Clipboard, Geolocation, Permissions } from "@effect/platform-browser" import { Clipboard, Geolocation, Permissions } from "@effect/platform-browser"
import { LazyRefExtension } from "@reffuse/extension-lazyref" import { LazyRefExtension } from "@reffuse/extension-lazyref"
import { ErrorHandler, QueryClient, QueryExtension } from "@reffuse/extension-query" import { QueryClient, QueryExtension } from "@reffuse/extension-query"
import { Reffuse, ReffuseContext } from "reffuse" import { Reffuse, ReffuseContext } from "reffuse"
import { QueryErrorHandler } from "./QueryErrorHandler"
export const GlobalContext = ReffuseContext.make< export const GlobalContext = ReffuseContext.make<
@@ -10,8 +11,8 @@ export const GlobalContext = ReffuseContext.make<
| Geolocation.Geolocation | Geolocation.Geolocation
| Permissions.Permissions | Permissions.Permissions
| HttpClient.HttpClient | HttpClient.HttpClient
| QueryClient.QueryClient<ErrorHandler.DefaultErrorHandler, never> | QueryClient.QueryClient<QueryErrorHandler, HttpClientError.HttpClientError>
| ErrorHandler.DefaultErrorHandler | QueryErrorHandler
>() >()
export class GlobalReffuse extends Reffuse.Reffuse.pipe( export class GlobalReffuse extends Reffuse.Reffuse.pipe(