UNPKG

proxify-method

Version:

Project for flexible extension of the existing functionality

46 lines 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.proxifySync = void 0; function proxifySync(result, chainMehod, fromResult = false) { let proxifiedResult = result; const proxed = new Proxy(result, { get(_t, p) { if (p === 'toJSON') { return function () { return proxifiedResult; }; } if (proxifiedResult[p] && (typeof proxifiedResult[p]).includes('function')) { return function (...args) { return proxifiedResult[p].call(proxifiedResult, ...args); }; } else if (chainMehod[p]) { return function (...args) { args.push(proxifiedResult); const result = chainMehod[p](...args); if (fromResult) { proxifiedResult = result; } return proxed; }; } else if (proxifiedResult[p]) { // proxy cnain end return proxifiedResult[p]; } }, getPrototypeOf(_t) { return Object.getPrototypeOf(proxifiedResult); }, ownKeys(_t) { return Object.getOwnPropertyNames(proxifiedResult); }, getOwnPropertyDescriptor(_t, p) { return Object.getOwnPropertyDescriptor(proxifiedResult, p); } }); return proxed; } exports.proxifySync = proxifySync; //# sourceMappingURL=sync.proxify.js.map