toReactive.js 949 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.toReactive = toReactive;
  6. var _vue = require("vue");
  7. /**
  8. * Converts ref to reactive.
  9. *
  10. * @see https://vueuse.org/toReactive
  11. * @param objectRef A ref of object
  12. */
  13. function toReactive(objectRef) {
  14. if (!(0, _vue.isRef)(objectRef)) return (0, _vue.reactive)(objectRef);
  15. const proxy = new Proxy({}, {
  16. get(_, p, receiver) {
  17. return Reflect.get(objectRef.value, p, receiver);
  18. },
  19. set(_, p, value) {
  20. objectRef.value[p] = value;
  21. return true;
  22. },
  23. deleteProperty(_, p) {
  24. return Reflect.deleteProperty(objectRef.value, p);
  25. },
  26. has(_, p) {
  27. return Reflect.has(objectRef.value, p);
  28. },
  29. ownKeys() {
  30. return Object.keys(objectRef.value);
  31. },
  32. getOwnPropertyDescriptor() {
  33. return {
  34. enumerable: true,
  35. configurable: true
  36. };
  37. }
  38. });
  39. return (0, _vue.reactive)(proxy);
  40. }