@reffuse/extension-query 0.1.5 #16

Merged
Thilawyn merged 347 commits from next into master 2025-06-01 05:28:47 +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 { createRoot } from "react-dom/client"
import { ReffuseRuntime } from "reffuse"
import { QueryErrorHandler, QueryErrorHandlerLive } from "./QueryErrorHandler"
import { GlobalContext } from "./reffuse"
import { routeTree } from "./routeTree.gen"
@@ -15,7 +16,8 @@ const layer = Layer.empty.pipe(
Layer.provideMerge(Geolocation.layer),
Layer.provideMerge(Permissions.layer),
Layer.provideMerge(FetchHttpClient.layer),
Layer.provideMerge(QueryClient.layer()),
Layer.provideMerge(QueryClient.layer({ ErrorHandler: QueryErrorHandler })),
Layer.provideMerge(QueryErrorHandlerLive),
)
const router = createRouter({ routeTree })

View File

@@ -1,4 +1,3 @@
import { HttpClientError } from "@effect/platform"
import { QueryService } from "@reffuse/extension-query"
import { ParseResult, Schema } from "effect"
@@ -8,5 +7,5 @@ export const Result = Schema.Array(Schema.String)
export class Uuid4Query extends QueryService.Tag("Uuid4Query")<Uuid4Query,
readonly ["uuid4", number],
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 { 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 { QueryErrorHandler } from "./QueryErrorHandler"
export const GlobalContext = ReffuseContext.make<
@@ -10,8 +11,8 @@ export const GlobalContext = ReffuseContext.make<
| Geolocation.Geolocation
| Permissions.Permissions
| HttpClient.HttpClient
| QueryClient.QueryClient<ErrorHandler.DefaultErrorHandler, never>
| ErrorHandler.DefaultErrorHandler
| QueryClient.QueryClient<QueryErrorHandler, HttpClientError.HttpClientError>
| QueryErrorHandler
>()
export class GlobalReffuse extends Reffuse.Reffuse.pipe(