@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 702 B
JavaScript
export function createSwappableProxy(s,c){const t=()=>{const r=c();if(!r)throw new Error(`${s} accessed after destroy`);return r};return new Proxy({},{get:(r,e)=>{const n=t();return Reflect.get(n,e,n)},set:(r,e,n)=>{const o=t();return Reflect.set(o,e,n,o)},has:(r,e)=>Reflect.has(t(),e),deleteProperty:(r,e)=>Reflect.deleteProperty(t(),e),ownKeys:()=>Reflect.ownKeys(t()),getOwnPropertyDescriptor:(r,e)=>{const n=Reflect.getOwnPropertyDescriptor(t(),e);return n&&{...n,configurable:!0}},defineProperty:(r,e,n)=>Reflect.defineProperty(t(),e,n),getPrototypeOf:()=>Reflect.getPrototypeOf(t()),setPrototypeOf:(r,e)=>Reflect.setPrototypeOf(t(),e),isExtensible:()=>(t(),!0),preventExtensions:()=>(t(),!1)})}