An open API service indexing awesome lists of open source software.

https://github.com/slikts/deepproxy

Recursive ES2015 Proxy
https://github.com/slikts/deepproxy

es2015 es2015-proxy library proxy recursion

Last synced: 4 months ago
JSON representation

Recursive ES2015 Proxy

Awesome Lists containing this project

README

          

# Deep `Proxy`

[![Travis](https://img.shields.io/travis/slikts/deepproxy.svg)](https://travis-ci.org/slikts/deepproxy)
[![Coveralls](https://img.shields.io/coveralls/slikts/deepproxy.svg)](https://coveralls.io/github/slikts/deepproxy)

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

## Installation

```
npm install --save @slikts/deepproxy
```

## Usage

```js
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

[Proxy]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy