Deep Proxy Polyfill
Acts as a deep or recursive Proxy for getter and setter attributes on an object.
Install
npm install deep-proxy-polyfill --save
oryarn add deep-proxy-polyfill
Getter
import deepProxy from 'deep-proxy-polyfill'; const rootObject = { a: { b: { c: 1 } }}; const getHandler = (obj, key, root, keys) => { assert(root === rootObject); // [ 'a', 'b' ] if (keys.length == 2) { assert(obj === rootObject.a.b); asset(key === 'c'); return obj[key] + 2; } return obj[key];}; const proxy = deepProxy(rootObject, { get: getHandler }); // Getter returns an additional 2.assert(proxy.a.b.c === 3);
Setter
import deepProxy from 'deep-proxy-polyfill'; const rootObject = { a: { b: { c: 1 } }}; // Set values with an additional 2.const setHandler = (obj, key, value, root, keys) => { assert(root === rootObject); obj[key] = value + 2;}; const proxy = deepProxy(rootObject, { set: setHandler });proxy.a.b.c = 3; assert(proxy.a.b.c === 5);