@reaqtive/q
Version:
A react library to connect React to the QIX engine and to Qlik Capability APIs
32 lines (21 loc) • 1.03 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPatchedObject = getPatchedObject;
exports.replaceObjectProp = replaceObjectProp;
var _lodash = _interopRequireDefault(require("lodash"));
function getPatchedObject(objectToBePatched, path, patch) {
const pointSeparatedPath = path.split('/').join('.');
const reducedPath = pointSeparatedPath.indexOf('qLayout') === 0 ? pointSeparatedPath.replace('qLayout.', '') : pointSeparatedPath;
const patchedObject = _lodash.default.clone(objectToBePatched, true);
_lodash.default.set(patchedObject, reducedPath, patch);
return patchedObject;
} //safely replace object properties by path
function replaceObjectProp(object, oldProp, newPropName, newPropValue) {
// console.log(object)
const objectToMutate = _lodash.default.omit(object, [oldProp]); //_.clone(object, true)
objectToMutate[newPropName] = newPropValue;
return objectToMutate;
}