Home Reference Source

src/util.js

const { defineProperty } = Object

export function propertyHider (target, configurable = true) {
  return (property, value, getter = false) => {
    const type = (typeof value === 'function' && getter)
      ? 'get'
      : 'value'

    defineProperty(target, property, {
      configurable,
      enumerable: false,
      [type]: (
        (getter && typeof value !== 'function')
          ? () => value
          : value
      )
    })

    return target
  }
}