From ad14fccba8b2b18ec6ad7c9f0dfacf49bec73729 Mon Sep 17 00:00:00 2001 From: Yadunand Prem Date: Thu, 10 Jul 2025 18:08:37 -0400 Subject: [PATCH] feat: add env --- api/.env | 1 + api/.env.example | 2 ++ api/bun.lock | 21 ++++++++++++++++++++- api/package.json | 1 + api/src/env.ts | 10 ++++++++++ api/tsconfig.json | 6 ++++-- 6 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 api/.env create mode 100644 api/.env.example create mode 100644 api/src/env.ts diff --git a/api/.env b/api/.env new file mode 100644 index 0000000..5664616 --- /dev/null +++ b/api/.env @@ -0,0 +1 @@ +# This file is committed, no secrets here! diff --git a/api/.env.example b/api/.env.example new file mode 100644 index 0000000..9f121ae --- /dev/null +++ b/api/.env.example @@ -0,0 +1,2 @@ +DATABASE_URL="postgresql://{username}:{password}@{host}:{port}/{db}" +BETTER_AUTH_SECRET=$(openssl) diff --git a/api/bun.lock b/api/bun.lock index 238396d..6ea1bb1 100644 --- a/api/bun.lock +++ b/api/bun.lock @@ -8,9 +8,10 @@ "better-auth": "^1.2.12", "drizzle-orm": "^0.44.2", "hono": "^4.8.4", - "zod": "^4.0.0", + "zod": "^4.0.1", }, "devDependencies": { + "@biomejs/biome": "2.1.1", "@types/bun": "latest", "drizzle-kit": "^0.31.4", }, @@ -21,6 +22,24 @@ "@better-fetch/fetch": ["@better-fetch/fetch@1.1.18", "", {}, "sha512-rEFOE1MYIsBmoMJtQbl32PGHHXuG2hDxvEd7rUHE0vCBoFQVSDqaVs9hkZEtHCxRoY+CljXKFCOuJ8uxqw1LcA=="], + "@biomejs/biome": ["@biomejs/biome@2.1.1", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.1.1", "@biomejs/cli-darwin-x64": "2.1.1", "@biomejs/cli-linux-arm64": "2.1.1", "@biomejs/cli-linux-arm64-musl": "2.1.1", "@biomejs/cli-linux-x64": "2.1.1", "@biomejs/cli-linux-x64-musl": "2.1.1", "@biomejs/cli-win32-arm64": "2.1.1", "@biomejs/cli-win32-x64": "2.1.1" }, "bin": { "biome": "bin/biome" } }, "sha512-HFGYkxG714KzG+8tvtXCJ1t1qXQMzgWzfvQaUjxN6UeKv+KvMEuliInnbZLJm6DXFXwqVi6446EGI0sGBLIYng=="], + + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.1.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2Muinu5ok4tWxq4nu5l19el48cwCY/vzvI7Vjbkf3CYIQkjxZLyj0Ad37Jv2OtlXYaLvv+Sfu1hFeXt/JwRRXQ=="], + + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.1.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-cC8HM5lrgKQXLAK+6Iz2FrYW5A62pAAX6KAnRlEyLb+Q3+Kr6ur/sSuoIacqlp1yvmjHJqjYfZjPvHWnqxoEIA=="], + + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-tw4BEbhAUkWPe4WBr6IX04DJo+2jz5qpPzpW/SWvqMjb9QuHY8+J0M23V8EPY/zWU4IG8Ui0XESapR1CB49Q7g=="], + + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.1.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-/7FBLnTswu4jgV9ttI3AMIdDGqVEPIZd8I5u2D4tfCoj8rl9dnjrEQbAIDlWhUXdyWlFSz8JypH3swU9h9P+2A=="], + + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-3WJ1GKjU7NzZb6RTbwLB59v9cTIlzjbiFLDB0z4376TkDqoNYilJaC37IomCr/aXwuU8QKkrYoHrgpSq5ffJ4Q=="], + + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.1.1", "", { "os": "linux", "cpu": "x64" }, "sha512-kUu+loNI3OCD2c12cUt7M5yaaSjDnGIksZwKnueubX6c/HWUyi/0mPbTBHR49Me3F0KKjWiKM+ZOjsmC+lUt9g=="], + + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.1.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-vEHK0v0oW+E6RUWLoxb2isI3rZo57OX9ZNyyGH701fZPj6Il0Rn1f5DMNyCmyflMwTnIQstEbs7n2BxYSqQx4Q=="], + + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.1.1", "", { "os": "win32", "cpu": "x64" }, "sha512-i2PKdn70kY++KEF/zkQFvQfX1e8SkA8hq4BgC+yE9dZqyLzB/XStY2MvwI3qswlRgnGpgncgqe0QYKVS1blksg=="], + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], diff --git a/api/package.json b/api/package.json index f546853..6a5abd6 100644 --- a/api/package.json +++ b/api/package.json @@ -11,6 +11,7 @@ "zod": "^4.0.1" }, "devDependencies": { + "@biomejs/biome": "2.1.1", "@types/bun": "latest", "drizzle-kit": "^0.31.4" } diff --git a/api/src/env.ts b/api/src/env.ts new file mode 100644 index 0000000..cc9829d --- /dev/null +++ b/api/src/env.ts @@ -0,0 +1,10 @@ +import { createEnv } from "@t3-oss/env-core"; +import * as z from "zod"; + +export const env = createEnv({ + server: { + DATABASE_URL: z.url(), + BETTER_AUTH_SECRET: z.string(), + }, + runtimeEnv: process.env, +}); diff --git a/api/tsconfig.json b/api/tsconfig.json index c442b33..8bd68c9 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -2,6 +2,8 @@ "compilerOptions": { "strict": true, "jsx": "react-jsx", - "jsxImportSource": "hono/jsx" + "jsxImportSource": "hono/jsx", + "module": "NodeNext", + "moduleResolution": "nodenext" } -} \ No newline at end of file +}