Add URL management schema, route, and related updates for URLs feature

This commit is contained in:
Nikita
2025-12-24 15:10:38 -08:00
parent 7f6f7d2f37
commit 26fa0b0ec9
10 changed files with 1236 additions and 27 deletions

34
packages/worker/src/db.ts Normal file
View File

@@ -0,0 +1,34 @@
import postgres from "postgres"
import { drizzle } from "drizzle-orm/postgres-js"
import * as schema from "../../web/src/db/schema"
export type Hyperdrive = {
connectionString: string
}
export type WorkerEnv = {
DATABASE_URL?: string
HYPERDRIVE?: Hyperdrive
}
const getConnectionString = (env?: WorkerEnv): string => {
if (env?.DATABASE_URL) {
return env.DATABASE_URL
}
if (env?.HYPERDRIVE?.connectionString) {
return env.HYPERDRIVE.connectionString
}
if (process.env.DATABASE_URL) {
return process.env.DATABASE_URL
}
throw new Error("No database connection available. Set DATABASE_URL or HYPERDRIVE.")
}
export const getDb = (env?: WorkerEnv) => {
const connectionString = getConnectionString(env)
const sql = postgres(connectionString, { prepare: false })
return drizzle(sql, { schema, casing: "snake_case" })
}