{"version":3,"file":"useReactiveComputed.mjs","sources":["../../../../src/composables/useReactiveComputed.ts"],"sourcesContent":["import { computed, unref, WritableComputedOptions, ComputedGetter, isRef, reactive } from 'vue'\n\nexport const useReactiveComputed = <T extends object>(obj: WritableComputedOptions<T> | ComputedGetter<T>) => {\n  const objectRef = typeof obj === 'function' ? computed(obj as ComputedGetter<T>) : computed(obj as WritableComputedOptions<T>)\n\n  const proxy = new Proxy(objectRef, {\n    get (target, p: string, receiver) {\n      if (typeof objectRef.value !== 'object') {\n        return undefined\n      }\n      return unref(Reflect.get(objectRef.value, p, receiver))\n    },\n    set (target, p, value) {\n      if (isRef((objectRef.value as any)[p]) && !isRef(value)) {\n        (objectRef.value as any)[p].value = value\n      } else {\n        (objectRef.value as any)[p] = value\n      }\n      return true\n    },\n    deleteProperty (target, p) {\n      return Reflect.deleteProperty(objectRef.value, p)\n    },\n    has (target, p) {\n      if (typeof objectRef.value !== 'object') {\n        return false\n      }\n      return Reflect.has(objectRef.value, p)\n    },\n    ownKeys () {\n      if (typeof objectRef.value !== 'object') {\n        return []\n      }\n      return Object.keys(objectRef.value)\n    },\n    getOwnPropertyDescriptor () {\n      return {\n        enumerable: true,\n        configurable: true,\n      }\n    },\n  })\n\n  return reactive(proxy) as T\n}\n"],"names":[],"mappings":";AAEa,MAAA,sBAAsB,CAAmB,QAAwD;AACtG,QAAA,YAAY,OAAO,QAAQ,aAAa,SAAS,GAAwB,IAAI,SAAS,GAAiC;AAEvH,QAAA,QAAQ,IAAI,MAAM,WAAW;AAAA,IACjC,IAAK,QAAQ,GAAW,UAAU;AAC5B,UAAA,OAAO,UAAU,UAAU,UAAU;AAChC,eAAA;AAAA,MACT;AACA,aAAO,MAAM,QAAQ,IAAI,UAAU,OAAO,GAAG,QAAQ,CAAC;AAAA,IACxD;AAAA,IACA,IAAK,QAAQ,GAAG,OAAO;AACjB,UAAA,MAAO,UAAU,MAAc,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;AACtD,kBAAU,MAAc,CAAC,EAAE,QAAQ;AAAA,MAAA,OAC/B;AACJ,kBAAU,MAAc,CAAC,IAAI;AAAA,MAChC;AACO,aAAA;AAAA,IACT;AAAA,IACA,eAAgB,QAAQ,GAAG;AACzB,aAAO,QAAQ,eAAe,UAAU,OAAO,CAAC;AAAA,IAClD;AAAA,IACA,IAAK,QAAQ,GAAG;AACV,UAAA,OAAO,UAAU,UAAU,UAAU;AAChC,eAAA;AAAA,MACT;AACA,aAAO,QAAQ,IAAI,UAAU,OAAO,CAAC;AAAA,IACvC;AAAA,IACA,UAAW;AACL,UAAA,OAAO,UAAU,UAAU,UAAU;AACvC,eAAO;MACT;AACO,aAAA,OAAO,KAAK,UAAU,KAAK;AAAA,IACpC;AAAA,IACA,2BAA4B;AACnB,aAAA;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,MAAA;AAAA,IAElB;AAAA,EAAA,CACD;AAED,SAAO,SAAS,KAAK;AACvB;"}