import { IsString, IsUrl, validateSync } from 'class-validator'; import { plainToInstance } from 'class-transformer'; export class EnvironmentVariables { @IsString() NODE_ENV: string; @IsUrl({ protocols: ['postgres', 'postgresql'], require_tld: false }) DATABASE_URL: string; } export function validate(config: Record) { const validatedConfig = plainToInstance(EnvironmentVariables, config); const errors = validateSync(validatedConfig); if (errors.length > 0) { throw new Error(errors.toString()); } return validatedConfig; }