UNPKG

pragma-views2

Version:

31 lines (23 loc) 856 B
import {removeObserverFromCache} from "./binding/observers.js"; export function cloneObject(model) { return JSON.parse(JSON.stringify(model)); } export function cleanModel(model) { if (model == undefined || typeof model != "object" || model.__disposed == true) return; removeObserverFromCache(model); model.__disposed = true; if (typeof model.dispose == "function") { model.dispose.call(model); model.dispose = null; delete model.dispose; } const keys = Reflect.ownKeys(model); for (let key of keys) { const target = Reflect.get(model, key); if (target != undefined && typeof target == "object") { cleanModel(target); } Reflect.set(model, key, null); Reflect.deleteProperty(model, key); } }