diff --git a/frontend/src/lib/db/index.ts b/frontend/src/lib/db/index.ts index f57bbb4..693a1e6 100644 --- a/frontend/src/lib/db/index.ts +++ b/frontend/src/lib/db/index.ts @@ -1,9 +1,7 @@ import { drizzle } from 'drizzle-orm/postgres-js' import postgres from 'postgres' import * as schema from './schema' +import { env } from '$lib/env' -const client = postgres( - process.env.DATABASE_URL ?? - 'postgres://postgres:password@127.0.0.1:5432/link-shortener', -) +const client = postgres(env.DATABASE_URL) export const db = drizzle(client, { schema }) diff --git a/frontend/src/lib/db/migrate.ts b/frontend/src/lib/db/migrate.ts index 1c9ea4c..4745ecf 100644 --- a/frontend/src/lib/db/migrate.ts +++ b/frontend/src/lib/db/migrate.ts @@ -1,8 +1,9 @@ +import { env } from '$lib/env' import { drizzle } from 'drizzle-orm/postgres-js' import { migrate } from 'drizzle-orm/postgres-js/migrator' import postgres from 'postgres' -const sql = postgres(Bun.env.DATABASE_URL ?? '', { max: 1 }) +const sql = postgres(env.DATABASE_URL, { max: 1 }) const db = drizzle(sql) await migrate(db, { migrationsFolder: 'drizzle' }) diff --git a/frontend/src/lib/env.ts b/frontend/src/lib/env.ts new file mode 100644 index 0000000..11f0226 --- /dev/null +++ b/frontend/src/lib/env.ts @@ -0,0 +1,8 @@ +import { z } from 'zod' + +const envSchema = z.object({ + DATABASE_URL: z.string().url(), + PUBLIC_SHORTENER_URL: z.string(), +}) + +export const env = envSchema.parse(process.env) diff --git a/frontend/src/routes/api/shortener/[id]/qr/+server.ts b/frontend/src/routes/api/shortener/[id]/qr/+server.ts index 60ee78e..e6b8ca4 100644 --- a/frontend/src/routes/api/shortener/[id]/qr/+server.ts +++ b/frontend/src/routes/api/shortener/[id]/qr/+server.ts @@ -4,8 +4,9 @@ import { eq } from 'drizzle-orm' import type { RequestHandler } from './$types' import QRCode from 'qrcode' import { redirect } from '@sveltejs/kit' +import { env } from '$lib/env' -const shortenerUrl = Bun.env.PUBLIC_SHORTENER_URL ?? 'shortener.url' +const shortenerUrl = env.PUBLIC_SHORTENER_URL export const GET: RequestHandler = async (event) => { const shortenerId = event.params.id