From dd8457e06c7c7886b8cfff738d9725648f25cbca Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Thu, 2 Jan 2025 10:12:21 -0500 Subject: [PATCH] validate env with a script --- package.json | 5 +++-- scripts/validate-env.ts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 scripts/validate-env.ts diff --git a/package.json b/package.json index 7714078..307fe62 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "type": "module", "scripts": { - "dev": "bun database:up && bun prisma:push && vite dev", + "dev": "bun validate-env && bun database:up && bun prisma:push && vite dev", "build": "vite build", "build-storybook": "storybook build", "database:up": "docker compose -p hestia -f devops/docker-compose.dev.yml up -d && docker compose -p hestia -f devops/docker-compose.dev.yml -f devops/docker-compose.wait.yml run --rm wait -c hestia-database:5432", @@ -24,7 +24,8 @@ "prisma:reset": "prisma migrate reset --force", "prisma:studio": "prisma studio", "prisma:validate": "prisma validate", - "prepare": "husky" + "prepare": "husky", + "validate-env": "bun ./scripts/validate-env.ts" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.2", diff --git a/scripts/validate-env.ts b/scripts/validate-env.ts new file mode 100644 index 0000000..da28326 --- /dev/null +++ b/scripts/validate-env.ts @@ -0,0 +1,19 @@ +import { PhoneRegex } from '../src/lib/regex/phone'; +import { z } from 'zod'; + +const ValidateEnvironment = () => { + const { success, error } = z + .object({ + TWILIO_ACCOUNT_SID: z.string().min(1), + TWILIO_AUTH_TOKEN: z.string().min(1), + TWILIO_PHONE_NUMBER: z.string().regex(PhoneRegex), + }) + .safeParse(process.env); + + if (!success) { + console.error(error.message); + process.exit(1); + } +}; + +ValidateEnvironment();