notification-service/src/config/validation.schema.ts

29 lines
732 B
TypeScript

import { z } from 'zod'
export enum Enviroment {
Development = 'development',
Production = 'production',
Test = 'test'
}
export default z.object({
// Node
NODE_ENV: z.enum(Enviroment).default(Enviroment.Development),
// RabbitMQ
RMQ_URL: z.string().nonempty(),
RMQ_QUEUE: z.string().nonempty(),
// SMTP
SMTP_HOST: z.string().nonempty(),
SMTP_PORT: z.coerce.number().nonnegative(),
SMTP_USERNAME: z.string().nonempty(),
SMTP_PASSWORD: z.string().nonempty(),
SMTP_FROM_ADDRESS: z.string().email().nonempty(),
SMTP_SECURE: z
.string()
.default('false')
.transform(value => value === 'true'),
// MTS Exolve
EXOLVE_API_KEY: z.string().nonempty(),
EXOLVE_SENDER: z.string().nonempty()
})