Error tests

This commit is contained in:
Julien Valverdé
2024-07-15 02:43:39 +02:00
parent d2734fa71b
commit 19f852fba5

View File

@@ -1,4 +1,5 @@
import { Context, Effect, Layer } from "effect"
import { TRPCError } from "@trpc/server"
import { Context, Data, Effect, Layer } from "effect"
import { TRPCBuilder } from "../trpc/TRPCBuilder"
import { RPCProcedureBuilder } from "./procedures/RPCProcedureBuilder"
import { todoRouter } from "./routers/todo"
@@ -9,14 +10,26 @@ export const router = Effect.gen(function*() {
const procedure = yield* RPCProcedureBuilder
return t.router({
ping: procedure.query(({ ctx }) =>
ctx.run(Effect.succeed("pong"))
),
ping: procedure.query(({ ctx }) => ctx.run(
Effect.succeed("pong")
)),
fail1: procedure.query(({ ctx }) => ctx.run(
Effect.fail(new AnError({ aValue: "A value" }))
)),
fail2: procedure.query(({ ctx }) => ctx.run(
Effect.fail(new TRPCError({ code: "NOT_IMPLEMENTED" }))
)),
todo: yield* todoRouter,
})
})
class AnError extends Data.TaggedError("AnError")<{
aValue: string
}> {}
export class RPCRouter extends Context.Tag("RPCRouter")<RPCRouter,
Effect.Effect.Success<typeof router>
>() {}