PDPA Features: ✅ Cookie consent banner ✅ Consent logging API ✅ Admin dashboard ✅ Privacy Policy ✅ Terms & Conditions Technical: ✅ Astro 5.x + Tailwind v4 ✅ Docker on port 80 ✅ SQLite database ✅ 15 pages built Ready for Easypanel deployment.
22 lines
467 B
JavaScript
22 lines
467 B
JavaScript
import { List } from './List.js';
|
|
|
|
export function clone(node) {
|
|
const result = {};
|
|
|
|
for (const key of Object.keys(node)) {
|
|
let value = node[key];
|
|
|
|
if (value) {
|
|
if (Array.isArray(value) || value instanceof List) {
|
|
value = value.map(clone);
|
|
} else if (value.constructor === Object) {
|
|
value = clone(value);
|
|
}
|
|
}
|
|
|
|
result[key] = value;
|
|
}
|
|
|
|
return result;
|
|
}
|