feat: add drizzle

This commit is contained in:
Max Koon
2025-10-14 19:06:52 -04:00
parent 032f38b711
commit e27a48edb5
20 changed files with 920 additions and 77 deletions

View File

@@ -1,11 +1,15 @@
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { genericOAuth } from "better-auth/plugins";
import { expo } from "@better-auth/expo";
import { Pool } from "pg";
import { drizzleSchema } from "@money/shared/db";
import { db } from "./db";
export const auth = betterAuth({
database: new Pool({
connectionString: process.env.DATABASE_URL,
database: drizzleAdapter(db, {
schema: drizzleSchema,
provider: "pg",
usePlural: true,
}),
trustedOrigins: ["money://", "http://localhost:8081"],
plugins: [

9
api/src/db.ts Normal file
View File

@@ -0,0 +1,9 @@
import { getDb } from "@money/shared/db";
if (!process.env.ZERO_UPSTREAM_DB) {
throw new Error("ZERO_UPSTREAM_DB is not set");
}
export const db = getDb({
connectionString: process.env.ZERO_UPSTREAM_DB,
});

View File

@@ -13,6 +13,7 @@ import {
createMutators as createMutatorsShared,
queries,
schema,
type Mutators,
} from "@money/shared";
import type { AuthData } from "@money/shared/auth";
import { getHono } from "./hono";
@@ -25,11 +26,18 @@ const processor = new PushProcessor(
),
);
const createMutators = (authData: AuthData | null) => {
const mutators = createMutatorsShared(authData);
return {
...mutators,
} as const satisfies Mutators;
}
const zero = getHono()
.post("/mutate", async (c) => {
const authData = c.get("auth");
const result = await processor.process(createMutatorsShared(authData), c.req.raw);
const result = await processor.process(createMutators(authData), c.req.raw);
return c.json(result);
})