/**
* Flattens nested date structures for dry-run scenarios.
*
* @param {any} data The data to flatten.
* @returns {any} The flattened data. Returns original data if not an object or null.
*/
function flattenDates(data) {
if (!data || typeof data !== 'object') {
return data; // Return original value if not an object.
}
let flattened = {};
for (const key in data) {
if (data.hasOwnProperty(key)) {
const value = data[key];
if (value instanceof Date) {
flattened[key] = value.toISOString(); // Convert Date to ISO string
} else if (typeof value === 'object' && value !== null) {
const nestedFlattened = flattenDates(value);
for (const nestedKey in nestedFlattened) {
if (nestedFlattened.hasOwnProperty(nestedKey)) {
flattened[key + '.' + nestedKey] = nestedFlattened[nestedKey]; // Flatten nested objects
}
}
} else {
flattened[key] = value; // Keep primitive values as is
}
}
}
return flattened;
}
Add your comment