RPC work
This commit is contained in:
@@ -2,7 +2,16 @@ import { Effect, Layer } from "effect"
|
|||||||
import { TRPCBuilder, TRPCBuilderLive } from "../trpc/TRPCBuilder"
|
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
|
const t = yield* TRPCBuilder
|
||||||
|
|
||||||
t.router({
|
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 { initTRPC } from "@trpc/server"
|
||||||
import { Context, Layer } from "effect"
|
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