export default function getDifferences(initialData = {}, formData = {}) { const diff = {}; delete initialData?.$index; delete formData?.$index; // Añadimos los valores que están en initialData for (const key in initialData) { if (!Object.prototype.hasOwnProperty.call(formData, key)) { // Caso 1: initialData tiene una clave que no tiene formData diff[key] = initialData[key]; } else if (JSON.stringify(initialData[key]) !== JSON.stringify(formData[key])) { // Caso 2 y 3: valores diferentes o null en formData diff[key] = formData[key]; } } // Añadimos las claves nuevas de formData for (const key in formData) { if (!Object.prototype.hasOwnProperty.call(initialData, key)) { diff[key] = formData[key]; } } return diff; }