From 19f852fba5b5a80c9efb20956bb7d2b5ef21fd03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 15 Jul 2024 02:43:39 +0200 Subject: [PATCH] Error tests --- packages/server/src/rpc/RPCRouter.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/server/src/rpc/RPCRouter.ts b/packages/server/src/rpc/RPCRouter.ts index b78ff5a..ad6ad4a 100644 --- a/packages/server/src/rpc/RPCRouter.ts +++ b/packages/server/src/rpc/RPCRouter.ts @@ -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") >() {}