UNPKG

q-proxyable

Version:
62 lines (61 loc) 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyableByDefineProperty = exports.ProxyableSinglePropertyByDefineProperty = void 0; var utils_1 = require("./utils"); var utils_2 = require("./utils"); var common_1 = require("./common"); var proxy_1 = require("./proxy"); function ProxyableSinglePropertyByDefineProperty(value, i, option) { if (value && typeof value === 'object') { var handlers_1 = utils_2.addProxyableFlagToTarget(value, option).handlers; var tempV_1 = value[i]; Object.defineProperty(value, i, { configurable: true, get: function () { var res = proxy_1.ProxyableByProxy(tempV_1); common_1.GLOBAL_PROXY_HANDLERS.get.forEach(function (handler) { return handler(value, i, res); }); handlers_1 === null || handlers_1 === void 0 ? void 0 : handlers_1.get.forEach(function (handler) { return handler(value, i, res); }); return res; }, set: function (v) { var oldV = tempV_1; tempV_1 = proxy_1.ProxyableByProxy(v); common_1.GLOBAL_PROXY_HANDLERS.set.forEach(function (handler) { return handler(value, i, tempV_1, oldV); }); handlers_1 === null || handlers_1 === void 0 ? void 0 : handlers_1.set.forEach(function (handler) { return handler(value, i, tempV_1, oldV); }); }, }); } } exports.ProxyableSinglePropertyByDefineProperty = ProxyableSinglePropertyByDefineProperty; function ProxyableByDefineProperty(value, option) { if (typeof value === 'object') { if (utils_2.isProxyable(value)) { option && utils_2.addHandlersToTarget(value, option); return utils_2.getProxyableTarget(value); } var handlers_2 = utils_2.addProxyableFlagToTarget(value, option).handlers; var _loop_1 = function (i) { var tempV = value[i]; Object.defineProperty(value, i, { configurable: true, get: function () { var res = (utils_1.suportProxy() ? proxy_1.ProxyableByProxy : ProxyableByDefineProperty)(tempV); common_1.GLOBAL_PROXY_HANDLERS.get.forEach(function (handler) { return handler(value, i, res); }); handlers_2 === null || handlers_2 === void 0 ? void 0 : handlers_2.get.forEach(function (handler) { return handler(value, i, res); }); return res; }, set: function (v) { var oldV = tempV; tempV = (utils_1.suportProxy() ? proxy_1.ProxyableByProxy : ProxyableByDefineProperty)(v); common_1.GLOBAL_PROXY_HANDLERS.set.forEach(function (handler) { return handler(value, i, tempV, oldV); }); handlers_2 === null || handlers_2 === void 0 ? void 0 : handlers_2.set.forEach(function (handler) { return handler(value, i, tempV, oldV); }); }, }); }; for (var i in value) { _loop_1(i); } } return value; } exports.ProxyableByDefineProperty = ProxyableByDefineProperty;