From 6cf917afbac707b4a21fab8d38d5a93478802729 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Mon, 30 Sep 2024 20:56:56 +0200 Subject: [PATCH] feat(api): env vars check on startup --- apps/api/src/index.ts | 2 ++ apps/api/src/utils/startup.ts | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 apps/api/src/utils/startup.ts diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index e50de21..45b7fb4 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -6,6 +6,7 @@ import { cors } from 'hono/cors' import user from './user' import { authentication } from './utils/authentication' +import { startup } from './utils/startup' type User = z.infer @@ -39,6 +40,7 @@ app.get( }), ) +startup() export default { port: 3000, fetch: app.fetch, diff --git a/apps/api/src/utils/startup.ts b/apps/api/src/utils/startup.ts new file mode 100644 index 0000000..509abed --- /dev/null +++ b/apps/api/src/utils/startup.ts @@ -0,0 +1,23 @@ +declare module 'bun' { + interface Env { + POSTGRES_URL: string + CLERK_WEBHOOK_SECRET: string + CLERK_SECRET_KEY: string + CLERK_PUBLISHABLE_KEY: string + } +} + +export const startup = () => { + const keys = [ + 'POSTGRES_URL', + 'CLERK_WEBHOOK_SECRET', + 'CLERK_SECRET_KEY', + 'CLERK_PUBLISHABLE_KEY', + ] + keys.map((key) => { + if (!import.meta.env[key]) { + console.error(`Env Var ${key} is missing!`) + process.exit(0) + } + }) +}