knex
Version:
A batteries-included SQL query & schema builder for PostgresSQL, MySQL, CockroachDB, MSSQL and SQLite3
33 lines (29 loc) • 878 B
JavaScript
/**
* Sets a hidden (non-enumerable) property on the `target` object, copying it
* from `source`.
*
* This is useful when we want to protect certain data from being accidentally
* leaked through logs, also when the property is non-enumerable on the `source`
* object and we want to ensure that it is properly copied.
*
* @param {object} target
* @param {object} source - default: target
* @param {string} propertyName - default: 'password'
*/
function setHiddenProperty(target, source, propertyName = 'password') {
if (!source) {
source = target;
}
Object.defineProperty(target, propertyName, {
enumerable: false,
value: source[propertyName],
});
}
const hasOwn = (() => {
const hasOwnProperty = Object.prototype.hasOwnProperty;
return (obj, key) => hasOwnProperty.call(obj, key);
})();
module.exports = {
setHiddenProperty,
hasOwn,
};