UNPKG

vuestic-ui

Version:
1 lines 2.43 kB
{"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;"}