2025-02-22 09:37:11 -05:00
|
|
|
//const person = van.state({name:"seth", age:41});
|
|
|
|
//console.log(Object.hasOwn(person, "rawVal"));
|
2025-02-19 17:01:11 -05:00
|
|
|
|
|
|
|
/** @type {<T>(obj:T, key:string)=>T} */
|
|
|
|
const Deep =(obj, key)=>
|
|
|
|
{
|
|
|
|
const proxInner =(context, key)=> new Proxy({}, {
|
|
|
|
get(_, prop)
|
|
|
|
{
|
|
|
|
const path = key+" . "+prop;
|
|
|
|
console.log(path, "accessed!");
|
|
|
|
const value = context[key];
|
|
|
|
|
|
|
|
return proxInner(value, path);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const proxOuter = new Proxy({}, {
|
|
|
|
get(_, prop)
|
|
|
|
{
|
|
|
|
return proxInner(obj, prop);
|
|
|
|
},
|
|
|
|
set(_, prop, val)
|
|
|
|
{
|
|
|
|
obj[prop] = val;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return proxOuter;
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Deep;
|