Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / chain-able-lego   js

Repository URL to install this package:

Version: 6.0.4 

/ src / wrap / wrapGetterSetter.ts

// https://gist.github.com/dmethvin/1676346#gistcomment-1732477
function debugAccess(obj, prop, debugGet) {
  var origValue = obj[prop]

  Object.defineProperty(obj, prop, {
    get() {
      if (debugGet) debugger
      return origValue
    },
    set(val) {
      return (origValue = val)
    },
  })
}

// can walk prototype too
function allProperties(obj) {
  return Object.getOwnPropertyNames(obj)
    .concat(Object.getOwnPropertySymbols(obj))
    .concat(Object.keys(obj))
}

function wrapEntireObj(obj) {
  allProperties(obj).map(prop => debugAccess(obj, prop))
}