xero-mcp
Version:
A Model Context Protocol server allows Clients to interact with Xero
26 lines (25 loc) • 824 B
JavaScript
export const parseArrayValues = (obj) => {
if (obj === null || obj === undefined)
return obj;
if (typeof obj === "string") {
// Try to parse string that looks like an array
if (obj.startsWith("[") && obj.endsWith("]")) {
try {
const parsed = JSON.parse(obj);
// Recursively parse any array strings within the parsed result
return parseArrayValues(parsed);
}
catch {
return obj;
}
}
return obj;
}
if (Array.isArray(obj)) {
return obj.map((item) => parseArrayValues(item));
}
if (typeof obj === "object") {
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, parseArrayValues(value)]));
}
return obj;
};