ts_temp/function/updatePropertyValue.js
import curryN from './curryN';
/**
* A function to change value by property name in object.
*
* @deprecated use propSet instead
* @param {String} propertyName property name of target object
* @param {Any} propertyValue new value
* @param {Object} obj a target object
* @return {Object} changed object with new value
* @example
* var fn = () => {};
* var updateName = updatePropertyValue('name', 'newFn');
*
* fn.name //=> 'fn'
*
* var newFn = updateName(fn);
*
* newFn.name //=> 'newFn'
* fn.name //=> 'newFn'
*/
export default curryN(2, (propertyName, propertyValue, obj) => {
const descriptor = Object.getOwnPropertyDescriptor(obj, propertyName);
descriptor.value = propertyValue;
Object.defineProperty(obj, propertyName, descriptor);
return obj;
});