aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/api/index.ts2
-rw-r--r--packages/api/package.json1
-rw-r--r--packages/api/routes/trpc.ts28
3 files changed, 31 insertions, 0 deletions
diff --git a/packages/api/index.ts b/packages/api/index.ts
index 5147ea37..ab7cdbe2 100644
--- a/packages/api/index.ts
+++ b/packages/api/index.ts
@@ -12,6 +12,7 @@ import lists from "./routes/lists";
import publicRoute from "./routes/public";
import rss from "./routes/rss";
import tags from "./routes/tags";
+import trpc from "./routes/trpc";
import users from "./routes/users";
const v1 = new Hono<{
@@ -43,6 +44,7 @@ const app = new Hono<{
await next();
})
.use(trpcAdapter)
+ .route("/trpc", trpc)
.route("/v1", v1)
.route("/assets", assets)
.route("/public", publicRoute);
diff --git a/packages/api/package.json b/packages/api/package.json
index d51b108b..54656e64 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -13,6 +13,7 @@
"test": "vitest"
},
"dependencies": {
+ "@hono/trpc-server": "^0.4.0",
"@hono/zod-validator": "^0.5.0",
"@karakeep/db": "workspace:*",
"@karakeep/shared": "workspace:*",
diff --git a/packages/api/routes/trpc.ts b/packages/api/routes/trpc.ts
new file mode 100644
index 00000000..3d83f64a
--- /dev/null
+++ b/packages/api/routes/trpc.ts
@@ -0,0 +1,28 @@
+import { trpcServer } from "@hono/trpc-server";
+import { Hono } from "hono";
+
+import { Context } from "@karakeep/trpc";
+import { appRouter } from "@karakeep/trpc/routers/_app";
+
+const trpc = new Hono<{
+ Variables: {
+ ctx: Context;
+ };
+}>().use(
+ "/*",
+ trpcServer({
+ endpoint: "/api/trpc",
+ router: appRouter,
+ createContext: (_, c) => {
+ return c.var.ctx;
+ },
+ onError: ({ path, error }) => {
+ if (process.env.NODE_ENV === "development") {
+ console.error(`❌ tRPC failed on ${path}`);
+ }
+ console.error(error);
+ },
+ }),
+);
+
+export default trpc;