import { plainToClass } from 'class-transformer'; import { validateSync } from 'class-validator'; import { ClassConstructor } from 'class-transformer/types/interfaces'; function validateConfig( config: Record, envVariablesClass: ClassConstructor, ) { const validatedConfig = plainToClass(envVariablesClass, config, { enableImplicitConversion: true, }); const errors = validateSync(validatedConfig, { skipMissingProperties: false, }); if (errors.length > 0) { throw new Error(errors.toString()); } return validatedConfig; } export default validateConfig;