This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user