29 lines
732 B
TypeScript
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()
|
|
})
|