@slikts/deepproxy

Recursive ES2015 Proxy

Usage no npm install needed!

<script type="module">
  import sliktsDeepproxy from 'https://cdn.skypack.dev/@slikts/deepproxy';
</script>

README

Deep Proxy

Travis Coveralls

A tiny library to recursively wrap an object and all its sub-objects with ES2015 Proxy.

Installation

npm install --save @slikts/deepproxy

Usage

import { deepProxy } from "@slikts/deepproxy"

const a = deepProxy({ b: { c: 1 } }, {
  get(target, key) {
    return target[key] ? target[key] : 123;
  }
});

a.b; // -> { c: 1 }
a.foo; // -> 123
a.b.c; // -> 1
a.b.foo; // -> 123

How it Works

The target object is wrapped with an additional Proxy that traps property access and also wraps any values of object type. The created proxies are memoized to avoid re-creating them for the same target and handler.

License

MIT

Author

slikts dabas@untu.ms