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/auth | |
| 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/auth')
| -rw-r--r-- | packages/auth/package.json | 9 | ||||
| -rw-r--r-- | packages/auth/src/client.ts | 7 | ||||
| -rw-r--r-- | packages/auth/src/index.ts | 5 | ||||
| -rw-r--r-- | packages/auth/src/keys.ts | 20 | ||||
| -rw-r--r-- | packages/auth/src/server.ts | 11 |
5 files changed, 42 insertions, 10 deletions
diff --git a/packages/auth/package.json b/packages/auth/package.json index 3ee43643..bfca9cf7 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -7,13 +7,16 @@ "exports": { ".": "./src/index.ts", "./client": "./src/client.ts", - "./server": "./src/server.ts" + "./server": "./src/server.ts", + "./keys": "./src/keys.ts" }, "dependencies": { + "@opencut/db": "workspace:*", + "@t3-oss/env-nextjs": "^0.13.8", "better-auth": "^1.1.1", - "@opencut/db": "workspace:*" + "zod": "^4.0.5" }, "devDependencies": { "@types/node": "^22.10.2" } -}
\ No newline at end of file +}
\ No newline at end of file diff --git a/packages/auth/src/client.ts b/packages/auth/src/client.ts index deda3928..2676fb0d 100644 --- a/packages/auth/src/client.ts +++ b/packages/auth/src/client.ts @@ -1,5 +1,8 @@ import { createAuthClient } from "better-auth/react"; +import { keys } from "./keys"; + +const { NEXT_PUBLIC_BETTER_AUTH_URL } = keys(); export const { signIn, signUp, useSession } = createAuthClient({ - baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL!, -});
\ No newline at end of file + baseURL: NEXT_PUBLIC_BETTER_AUTH_URL, +}); diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts index f0676f1f..a4f5fd44 100644 --- a/packages/auth/src/index.ts +++ b/packages/auth/src/index.ts @@ -2,4 +2,7 @@ export * from "./server"; // Re-export client auth -export * from "./client";
\ No newline at end of file +export * from "./client"; + +// Re-export keys +export * from "./keys";
\ No newline at end of file diff --git a/packages/auth/src/keys.ts b/packages/auth/src/keys.ts new file mode 100644 index 00000000..919eaccb --- /dev/null +++ b/packages/auth/src/keys.ts @@ -0,0 +1,20 @@ +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; + +export const keys = () => + createEnv({ + server: { + BETTER_AUTH_SECRET: z.string(), + GOOGLE_CLIENT_ID: z.string(), + GOOGLE_CLIENT_SECRET: z.string(), + }, + client: { + NEXT_PUBLIC_BETTER_AUTH_URL: z.string().url(), + }, + runtimeEnv: { + NEXT_PUBLIC_BETTER_AUTH_URL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL, + BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET, + GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, + GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET, + }, + }); diff --git a/packages/auth/src/server.ts b/packages/auth/src/server.ts index 668d27de..5872962c 100644 --- a/packages/auth/src/server.ts +++ b/packages/auth/src/server.ts @@ -1,13 +1,16 @@ import { betterAuth } from "better-auth"; import { drizzleAdapter } from "better-auth/adapters/drizzle"; import { db } from "@opencut/db"; +import { keys } from "./keys"; + +const { NEXT_PUBLIC_BETTER_AUTH_URL, BETTER_AUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET } = keys() export const auth = betterAuth({ database: drizzleAdapter(db, { provider: "pg", usePlural: true, }), - secret: process.env.BETTER_AUTH_SECRET, + secret: BETTER_AUTH_SECRET, user: { deleteUser: { enabled: true, @@ -18,11 +21,11 @@ export const auth = betterAuth({ }, socialProviders: { google: { - clientId: process.env.GOOGLE_CLIENT_ID as string, - clientSecret: process.env.GOOGLE_CLIENT_SECRET as string, + clientId: GOOGLE_CLIENT_ID, + clientSecret: GOOGLE_CLIENT_SECRET, }, }, - baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL, + baseURL: NEXT_PUBLIC_BETTER_AUTH_URL, appName: "OpenCut", trustedOrigins: ["http://localhost:3000"], }); |
