validate env with a script

This commit is contained in:
Benjamin Palko 2025-01-02 10:12:21 -05:00
parent b62bc0ca46
commit dd8457e06c
2 changed files with 22 additions and 2 deletions

View file

@ -3,7 +3,7 @@
"version": "0.0.1", "version": "0.0.1",
"type": "module", "type": "module",
"scripts": { "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": "vite build",
"build-storybook": "storybook 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", "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:reset": "prisma migrate reset --force",
"prisma:studio": "prisma studio", "prisma:studio": "prisma studio",
"prisma:validate": "prisma validate", "prisma:validate": "prisma validate",
"prepare": "husky" "prepare": "husky",
"validate-env": "bun ./scripts/validate-env.ts"
}, },
"devDependencies": { "devDependencies": {
"@chromatic-com/storybook": "^3.2.2", "@chromatic-com/storybook": "^3.2.2",

19
scripts/validate-env.ts Normal file
View file

@ -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();