diff --git a/apps/web/drizzle.config.ts b/apps/web/drizzle.config.ts index 615eea57..87547bd0 100644 --- a/apps/web/drizzle.config.ts +++ b/apps/web/drizzle.config.ts @@ -1,23 +1,20 @@ import type { Config } from "drizzle-kit"; import * as dotenv from "dotenv"; +import { env } from "@/env"; // Load the right env file based on environment -if (process.env.NODE_ENV === "production") { +if (env.NODE_ENV === "production") { dotenv.config({ path: ".env.production" }); } else { dotenv.config({ path: ".env.local" }); } -if (!process.env.DATABASE_URL) { - throw new Error("DATABASE_URL is not set"); -} - export default { schema: "../../packages/db/src/schema.ts", dialect: "postgresql", dbCredentials: { - url: process.env.DATABASE_URL, + url: env.DATABASE_URL, }, out: "./migrations", - strict: process.env.NODE_ENV === "production", + strict: env.NODE_ENV === "production", } satisfies Config; diff --git a/apps/web/package.json b/apps/web/package.json index 9e1393b7..b7bbc499 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -21,6 +21,8 @@ "@hookform/resolvers": "^3.9.1", "@opencut/auth": "workspace:*", "@opencut/db": "workspace:*", + "@t3-oss/env-core": "^0.13.8", + "@t3-oss/env-nextjs": "^0.13.8", "@upstash/ratelimit": "^2.0.5", "@upstash/redis": "^1.35.0", "@vercel/analytics": "^1.4.1", diff --git a/apps/web/src/components/development-debug.tsx b/apps/web/src/components/development-debug.tsx index 3b891e38..62e606ff 100644 --- a/apps/web/src/components/development-debug.tsx +++ b/apps/web/src/components/development-debug.tsx @@ -7,9 +7,10 @@ import { usePlaybackStore } from "@/stores/playback-store"; import { Button } from "@/components/ui/button"; import { useState } from "react"; import type { TimelineElement } from "@/types/timeline"; +import { env } from "@/env"; // Only show in development -const SHOW_DEBUG_INFO = process.env.NODE_ENV === "development"; +const SHOW_DEBUG_INFO = env.NODE_ENV === "development"; interface ActiveElement { element: TimelineElement; diff --git a/apps/web/src/components/header.tsx b/apps/web/src/components/header.tsx index bfe314d6..455e0140 100644 --- a/apps/web/src/components/header.tsx +++ b/apps/web/src/components/header.tsx @@ -8,6 +8,7 @@ import { useSession } from "@opencut/auth/client"; import { getStars } from "@/lib/fetch-github-stars"; import { useEffect, useState } from "react"; import Image from "next/image"; +import { env } from "@/env"; export function Header() { const { data: session } = useSession(); @@ -40,7 +41,7 @@ export function Header() { Contributors - {process.env.NODE_ENV === "development" ? ( + {env.NODE_ENV === "development" ? (