@udia/deep-proxy
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@udia/deep-proxy

udia-deep-proxy-npmjs-badge udia-deep-proxy-build-test-badge

Function for creating deep object proxy.

See also JavaScript Proxy object

Example

npm i @udia/deep-proxy
# or
yarn add @udia/deep-proxy
import deepProxy from '@udia/deep-proxy'

const stub = { attr: { foo: 'bar' } }

const stubProxy = deepProxy(stub, {
  set(root, target, path, value, receiver) {
    setStub(root, target, path, value, receiver)
    console.log('==== property set called!')
    return true
  },
  deleteProperty(root, target, path) {
    delPropStub(root, target, path)
    return true
  },
})

stubProxy.attr.foo = 'barrio'
// ==== property set called!

License

AGPL-3.0

Copyright (C) 2021-2022 Alexander Wong <alex@udia.ca>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Readme

Keywords

none

Package Sidebar

Install

npm i @udia/deep-proxy

Weekly Downloads

1

Version

1.0.2

License

AGPL-3.0

Unpacked Size

5.92 kB

Total Files

4

Last publish

Collaborators

  • awwong1