import type { z } from 'zod'; import { Msg } from '@/utils'; export function parseMsg( msg: Msg, schema: T, context: string, ): Msg> { if (!msg.success || msg.obj == null) { return msg as Msg>; } const result = schema.safeParse(msg.obj); if (!result.success) { console.warn(`[zod] ${context} response failed validation`, result.error.issues); return msg as Msg>; } return new Msg>(msg.success, msg.msg, result.data); }