function formatMetadata(metadata) {
if (!metadata || typeof metadata !== 'object') {
return "Invalid metadata format."; // Handle null/undefined/non-object input
}
let formattedOutput = "";
for (const key in metadata) {
if (metadata.hasOwnProperty(key)) {
const value = metadata[key];
let formattedValue = String(value); // Convert to string for consistent formatting
if (typeof value === 'string') {
formattedValue = `"${value.replace(/ /g, "_")}"`; // Escape spaces in strings, quote them
} else if (typeof value === 'number') {
formattedValue = value.toFixed(2); //Format numbers to 2 decimal places
} else if (Array.isArray(value)) {
formattedValue = `[${value.map(item => String(item)).join(', ')}]`; //Format arrays nicely
} else if (typeof value === 'object' && value !== null) {
formattedValue = formatMetadata(value); // Recursive call for nested objects
} else if (value === null) {
formattedValue = "null"; // Handle null values explicitly
} else if (value === undefined) {
formattedValue = "undefined"; //Handle undefined values explicitly
}
formattedOutput += `${key}: ${formattedValue}\n`;
}
}
return formattedOutput;
}
Add your comment