TRPCBuilder refactoring
All checks were successful
Lint / lint (push) Successful in 12s

This commit is contained in:
Julien Valverdé
2024-09-07 04:50:10 +02:00
parent 0299796d13
commit 9a4d62c89a

View File

@@ -1,5 +1,4 @@
import { Context, Effect, Layer } from "effect"
import type { ImportError } from "../ImportError"
import { type TRPCContext } from "./TRPCContext"
import { importTRPCServer } from "./importTRPCServer"
@@ -8,19 +7,14 @@ const createTRPC = <R>() => importTRPCServer.pipe(Effect.map(({ initTRPC }) =>
initTRPC.context<TRPCContext<R>>().create()
))
export const make = <R>(): {
readonly TRPCBuilder: Context.TagClass<any, "@thilalib/TRPC/TRPCBuilder", Effect.Effect.Success<ReturnType<typeof createTRPC<R>>>>
readonly TRPCBuilderLive: Layer.Layer<
InstanceType<Context.TagClass<any, "@thilalib/TRPC/TRPCBuilder", Effect.Effect.Success<ReturnType<typeof createTRPC<R>>>>>,
ImportError,
never
>
} => {
class TRPCBuilder extends Context.Tag("@thilalib/TRPC/TRPCBuilder")<TRPCBuilder,
Effect.Effect.Success<ReturnType<typeof createTRPC<R>>>
>() {}
export const Identifier = "@thilalib/TRPC/TRPCBuilder"
export interface TRPCBuilder<R> extends Context.Tag<typeof Identifier, TRPCBuilderService<R>> {}
export interface TRPCBuilderService<R> extends Effect.Effect.Success<ReturnType<typeof createTRPC<R>>> {}
export const make = <R>() => {
const TRPCBuilder = Context.GenericTag<typeof Identifier, TRPCBuilderService<R>>(Identifier)
const TRPCBuilderLive = Layer.effect(TRPCBuilder, createTRPC())
return { TRPCBuilder, TRPCBuilderLive }
return { TRPCBuilder, TRPCBuilderLive } as const
}