This commit is contained in:
18
src/TRPC/TRPCBuilder.ts
Normal file
18
src/TRPC/TRPCBuilder.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Context, Effect, Layer } from "effect"
|
||||
import { type TRPCContext } from "./TRPCContext"
|
||||
import { importTRPCServer } from "./importTRPCServer"
|
||||
|
||||
|
||||
const createTRPC = <R>() => importTRPCServer.pipe(Effect.map(({ initTRPC }) =>
|
||||
initTRPC.context<TRPCContext<R>>().create()
|
||||
))
|
||||
|
||||
export const make = <R>() => {
|
||||
class TRPCBuilder extends Context.Tag("@thilalib/TRPC/TRPCBuilder")<TRPCBuilder,
|
||||
Effect.Effect.Success<ReturnType<typeof createTRPC<R>>>
|
||||
>() {}
|
||||
|
||||
const TRPCBuilderLive = Layer.effect(TRPCBuilder, createTRPC())
|
||||
|
||||
return { TRPCBuilder, TRPCBuilderLive }
|
||||
}
|
||||
Reference in New Issue
Block a user