hestia/scripts/validate-env.ts
2025-01-26 23:10:12 -05:00

37 lines
957 B
TypeScript

import { z } from 'zod';
import { PhoneRegex } from '../src/lib/regex/phone';
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),
SECRETS_PASSWORD: z.string().length(32),
SECRETS_SALT: z.string().min(16),
SECRETS_IV_POSITION: z.string().transform((val, ctx) => {
const parsed = parseInt(val);
if (isNaN(parsed)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: 'Not a number',
});
// This is a special symbol you can use to
// return early from the transform function.
// It has type `never` so it does not affect the
// inferred return type.
return z.NEVER;
}
return parsed;
}),
})
.safeParse(process.env);
if (!success) {
console.error(error.message);
process.exit(1);
}
};
ValidateEnvironment();