UNPKG

vuestic-ui

Version:
47 lines (46 loc) 1.24 kB
import { computed, unref, isRef, reactive } from "vue"; const useReactiveComputed = (obj) => { const objectRef = typeof obj === "function" ? computed(obj) : computed(obj); const proxy = new Proxy(objectRef, { get(target, p, receiver) { if (typeof objectRef.value !== "object") { return void 0; } return unref(Reflect.get(objectRef.value, p, receiver)); }, set(target, p, value) { if (isRef(objectRef.value[p]) && !isRef(value)) { objectRef.value[p].value = value; } else { objectRef.value[p] = value; } return true; }, deleteProperty(target, p) { return Reflect.deleteProperty(objectRef.value, p); }, has(target, p) { if (typeof objectRef.value !== "object") { return false; } return Reflect.has(objectRef.value, p); }, ownKeys() { if (typeof objectRef.value !== "object") { return []; } return Object.keys(objectRef.value); }, getOwnPropertyDescriptor() { return { enumerable: true, configurable: true }; } }); return reactive(proxy); }; export { useReactiveComputed as u }; //# sourceMappingURL=useReactiveComputed.mjs.map