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
}
}