RPC work
This commit is contained in:
@@ -2,7 +2,16 @@ import { Effect, Layer } from "effect"
|
||||
import { TRPCBuilder, TRPCBuilderLive } from "../trpc/TRPCBuilder"
|
||||
|
||||
|
||||
export const RPCRouter = Layer.effectDiscard(Effect.gen(function*() {
|
||||
const rpcRouter = Effect.gen(function*() {
|
||||
const t = yield* TRPCBuilder
|
||||
|
||||
return t.router({
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
export const RPCRouterLive = Layer.effectDiscard(Effect.gen(function*() {
|
||||
const t = yield* TRPCBuilder
|
||||
|
||||
t.router({
|
||||
13
packages/server/src/rpc/routers/index.ts
Normal file
13
packages/server/src/rpc/routers/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Effect } from "effect"
|
||||
import { TRPCBuilder } from "../../trpc/TRPCBuilder"
|
||||
import { procedure } from "../procedures"
|
||||
|
||||
|
||||
export const router = Effect.gen(function*() {
|
||||
const t = yield* TRPCBuilder
|
||||
const proc = yield* procedure
|
||||
|
||||
return t.router({
|
||||
ping: proc.query(() => "pong")
|
||||
})
|
||||
})
|
||||
@@ -1,7 +1,9 @@
|
||||
import { initTRPC } from "@trpc/server"
|
||||
import { Context, Layer } from "effect"
|
||||
import type { TRPCContext } from "./context"
|
||||
|
||||
|
||||
export class TRPCBuilder extends Context.Tag("TRPCBuilder")<TRPCBuilder, ReturnType<typeof initTRPC.create>>() {}
|
||||
const createTRPC = () => initTRPC.context<TRPCContext>().create()
|
||||
|
||||
export const TRPCBuilderLive = Layer.sync(TRPCBuilder, () => initTRPC.create())
|
||||
export class TRPCBuilder extends Context.Tag("TRPCBuilder")<TRPCBuilder, ReturnType<typeof createTRPC>>() {}
|
||||
export const TRPCBuilderLive = Layer.sync(TRPCBuilder, createTRPC)
|
||||
|
||||
5
packages/server/src/trpc/context.ts
Normal file
5
packages/server/src/trpc/context.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import type { CreateExpressContextOptions } from "@trpc/server/adapters/express"
|
||||
|
||||
|
||||
export const createTRPCContext = ({ req }: CreateExpressContextOptions) => ({ req })
|
||||
export type TRPCContext = Awaited<ReturnType<typeof createTRPCContext>>
|
||||
Reference in New Issue
Block a user