export function runify(obj) { if(Array.isArray(obj)) { return obj.map(runify); } else if(typeof obj === 'object') { let rune = $state(obj); let output = {}; for(let key in rune) { if(typeof obj[key] === 'object') { obj[key] = runify(obj[key]); } Object.defineProperty(output, key, { get() { return rune[key]; }, set(val) { console.log('setting', key, val); rune[key] = val; }, enumerable: true, }); } return output; } else { return obj; } }