diff --git a/packages/server/src/trpc/TRPCContextCreator.ts b/packages/server/src/trpc/TRPCContextCreator.ts
index 5aaa1fe..bb8f3bd 100644
--- a/packages/server/src/trpc/TRPCContextCreator.ts
+++ b/packages/server/src/trpc/TRPCContextCreator.ts
@@ -1,3 +1,4 @@
+import { TRPCError } from "@trpc/server"
import type { CreateExpressContextOptions } from "@trpc/server/adapters/express"
import { Context, Effect, Layer, Runtime } from "effect"
import type { Services } from "../Services"
@@ -23,3 +24,21 @@ export module TRPCContextCreator {
})
}))
}
+
+
+const mapEffectErrorsToTRPC = (effect: Effect.Effect) =>
+ Effect.sandbox(effect).pipe(
+ Effect.catchTags({
+ Die: cause => Effect.fail(
+ new TRPCError({ code: "INTERNAL_SERVER_ERROR" })
+ ),
+
+ Interrupt: cause => Effect.fail(
+ new TRPCError({ code: "INTERNAL_SERVER_ERROR" })
+ ),
+
+ Fail: cause => Effect.fail(
+ new TRPCError({ code: "INTERNAL_SERVER_ERROR" })
+ ),
+ })
+ )