This commit is contained in:
24
src/Layers/trpc/middlewares.ts
Normal file
24
src/Layers/trpc/middlewares.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { Effect, Match } from "effect"
|
||||
import type { TRPCContextTransaction } from "./TRPCContext"
|
||||
import { importTRPCServer } from "./importTRPCServer"
|
||||
|
||||
|
||||
export const ExpressOnly = importTRPCServer.pipe(Effect.map(({
|
||||
experimental_standaloneMiddleware,
|
||||
TRPCError,
|
||||
}) => experimental_standaloneMiddleware<{
|
||||
ctx: { readonly transaction: TRPCContextTransaction }
|
||||
}>().create(opts =>
|
||||
Match.value(opts.ctx.transaction).pipe(
|
||||
Match.tag("Express", transaction =>
|
||||
opts.next({ ctx: { transaction } })
|
||||
),
|
||||
|
||||
Match.orElse(() => {
|
||||
throw new TRPCError({
|
||||
code: "BAD_REQUEST",
|
||||
message: "Only Express backend is supported by this procedure",
|
||||
})
|
||||
}),
|
||||
)
|
||||
)))
|
||||
Reference in New Issue
Block a user