diff options
| author | Maze <167211895+mazeincoding@users.noreply.github.com> | 2025-07-15 12:20:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-15 12:20:55 +0200 |
| commit | 0e83b6c15eb0318cf5c53373492a6740e521eb24 (patch) | |
| tree | 0ece838aaaf4071a8ed32804d04edfef0076fec3 /packages/db/src | |
| parent | d7c764f96884284ae6424c3a39f87688faf9af5d (diff) | |
| parent | 9d5fb821c75dd2f0c0d3da6fb427db966d3c7358 (diff) | |
| download | opencut-0e83b6c15eb0318cf5c53373492a6740e521eb24.tar.gz | |
Merge pull request #272 from vietnamesekid/main
feat: integrate @t3-oss/env for environment variable management across the application
Diffstat (limited to 'packages/db/src')
| -rw-r--r-- | packages/db/src/index.ts | 8 | ||||
| -rw-r--r-- | packages/db/src/keys.ts | 19 |
2 files changed, 22 insertions, 5 deletions
diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index b480f566..9b395ab6 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -1,17 +1,15 @@ import { drizzle } from "drizzle-orm/postgres-js"; import postgres from "postgres"; import * as schema from "./schema"; +import { keys } from "./keys"; +const { DATABASE_URL } = keys(); // Create a lazy database instance that only initializes when accessed let _db: ReturnType<typeof drizzle> | null = null; function getDb() { - if (!process.env.DATABASE_URL) { - throw new Error("DATABASE_URL is not set"); - } - if (!_db) { - const client = postgres(process.env.DATABASE_URL); + const client = postgres(DATABASE_URL); _db = drizzle(client, { schema }); } diff --git a/packages/db/src/keys.ts b/packages/db/src/keys.ts new file mode 100644 index 00000000..65983416 --- /dev/null +++ b/packages/db/src/keys.ts @@ -0,0 +1,19 @@ +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; + +export const keys = () => + createEnv({ + server: { + NODE_ENV: z + .enum(["development", "production", "test"]) + .default("development"), + DATABASE_URL: z + .string() + .startsWith("postgres://") + .or(z.string().startsWith("postgresql://")), + }, + runtimeEnv: { + NODE_ENV: process.env.NODE_ENV, + DATABASE_URL: process.env.DATABASE_URL, + }, + }); |
