31 lines
783 B
TypeScript
31 lines
783 B
TypeScript
import { PhoneRegex } from '$lib/regex';
|
|
import { logger } from '$lib/server/logger';
|
|
import { z } from 'zod';
|
|
|
|
export interface TwilioConfiguration {
|
|
twilio_account_sid: string;
|
|
twilio_auth_token: string;
|
|
twilio_phone_number: string;
|
|
}
|
|
|
|
const LoadConfig = (): TwilioConfiguration => {
|
|
const { success, data, error } = z
|
|
.object({
|
|
VITE_TWILIO_ACCOUNT_SID: z.string(),
|
|
VITE_TWILIO_AUTH_TOKEN: z.string(),
|
|
VITE_TWILIO_PHONE_NUMBER: z.string().regex(PhoneRegex),
|
|
})
|
|
.safeParse(import.meta.env);
|
|
|
|
if (!success) {
|
|
logger.error(error.message);
|
|
}
|
|
|
|
return {
|
|
twilio_account_sid: data!.VITE_TWILIO_ACCOUNT_SID,
|
|
twilio_auth_token: data!.VITE_TWILIO_AUTH_TOKEN,
|
|
twilio_phone_number: data!.VITE_TWILIO_PHONE_NUMBER,
|
|
};
|
|
};
|
|
|
|
export const TwilioConfig = LoadConfig();
|