UNPKG

q-proxyable

Version:
86 lines (85 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyEmitter = exports.addProxyHandler = void 0; var common_1 = require("./common"); function addProxyHandler(handlers) { for (var i in handlers) { common_1.GLOBAL_PROXY_HANDLERS[i].push(handlers[i]); } } exports.addProxyHandler = addProxyHandler; var ProxyEmitter = (function () { function ProxyEmitter() { } Object.defineProperty(ProxyEmitter.prototype, "getHandlers", { get: function () { return common_1.GLOBAL_PROXY_HANDLERS.get || []; }, enumerable: false, configurable: true }); Object.defineProperty(ProxyEmitter.prototype, "setHandlers", { get: function () { return common_1.GLOBAL_PROXY_HANDLERS.set || []; }, enumerable: false, configurable: true }); Object.defineProperty(ProxyEmitter.prototype, "deleteHandlers", { get: function () { return common_1.GLOBAL_PROXY_HANDLERS.delete || []; }, enumerable: false, configurable: true }); ProxyEmitter.prototype.removeGetHandle = function (handler) { common_1.GLOBAL_PROXY_HANDLERS.get = this.getHandlers.filter(function (h) { return h !== handler; }); }; ProxyEmitter.prototype.removeSetHandle = function (handler) { common_1.GLOBAL_PROXY_HANDLERS.set = this.setHandlers.filter(function (h) { return h !== handler; }); }; ProxyEmitter.prototype.removeDeletetHandle = function (handler) { common_1.GLOBAL_PROXY_HANDLERS.delete = this.deleteHandlers.filter(function (h) { return h !== handler; }); }; ProxyEmitter.prototype.onGet = function (handler) { var _this = this; this.getHandlers.push(handler); return function () { return _this.removeGetHandle(handler); }; }; ProxyEmitter.prototype.onceGet = function (handler) { var me = this; var temp = function () { handler.apply(this, arguments); me.removeGetHandle(temp); }; this.getHandlers.push(temp); }; ProxyEmitter.prototype.onSet = function (handler) { var _this = this; this.setHandlers.push(handler); return function () { return _this.removeSetHandle(handler); }; }; ProxyEmitter.prototype.onceSet = function (handler) { var me = this; var temp = function () { handler.apply(this, arguments); me.removeSetHandle(temp); }; this.setHandlers.push(temp); }; ProxyEmitter.prototype.onDelete = function (handler) { var _this = this; this.deleteHandlers.push(handler); return function () { return _this.removeDeletetHandle(handler); }; }; ProxyEmitter.prototype.onceDelete = function (handler) { var me = this; var temp = function () { handler.apply(this, arguments); me.removeDeletetHandle(temp); }; this.deleteHandlers.push(temp); }; return ProxyEmitter; }()); exports.ProxyEmitter = ProxyEmitter;