HomeDashboard/.venv/lib/python3.12/site-packages/nicegui/static/utils/json.js
2026-01-03 14:54:18 +01:00

27 lines
696 B
JavaScript

// Remove keysToRemove, functions, and circular references from obj
export function cleanObject(obj, keysToRemove = [], seen = new WeakSet()) {
if (obj === null || typeof obj !== "object") {
return obj;
}
if (typeof value === "function") {
return undefined;
}
if (seen.has(obj)) {
return undefined;
}
seen.add(obj);
if (Array.isArray(obj)) {
return obj.map((item) => cleanObject(item, keysToRemove, seen));
}
return Object.fromEntries(
Object.entries(obj)
.filter(([key, value]) => !keysToRemove.includes(key) && typeof value !== "function" && !seen.has(value))
.map(([key, value]) => [key, cleanObject(value, keysToRemove, seen)])
);
}