Files
thilalib/src/TRPC/TRPCBuilder.ts
Julien Valverdé 0299796d13
All checks were successful
Lint / lint (push) Successful in 12s
Dreadful fix
2024-09-07 04:12:54 +02:00

27 lines
997 B
TypeScript

import { Context, Effect, Layer } from "effect"
import type { ImportError } from "../ImportError"
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>(): {
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>>>
>() {}
const TRPCBuilderLive = Layer.effect(TRPCBuilder, createTRPC())
return { TRPCBuilder, TRPCBuilderLive }
}