import { ZodObject } from 'zod'; import ConsoleLogManager from '../base/ConsoleLogManager'; const logger = new ConsoleLogManager({ name: 'ZodUtil' }); function convertKebabCaseToTitleCase(input: string): string { const words = input.split('-'); const capitalizedWords = words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)); return capitalizedWords.join(' '); } interface ParseSchemaResponse { success: boolean; error?: string; } const parseSchema = (schema: ZodObject, object: any): ParseSchemaResponse => { const result = schema.safeParse(object); if (result.success === false) { let message = ''; logger.error('Schema parse error', result.error.message); result.error.issues.forEach((issue) => { const key = issue.path[issue.path.length - 1] as string; message += `${convertKebabCaseToTitleCase(key)}: ${issue.message},`; }); return { success: false, error: message, }; } return { success: true, }; }; const ZodUtil = { parseSchema, }; export default ZodUtil;