react-application-core
Version:
A react-based application core for the business applications.
26 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildEntityByMergeStrategy = exports.getActualMergeStrategy = void 0;
var R = require("ramda");
var definition_1 = require("../definition");
var clone_1 = require("./clone");
/**
* @stable [19.10.2019]
* @param {EntityMergeStrategiesEnum} mergeStrategy
* @returns {EntityMergeStrategiesEnum}
*/
exports.getActualMergeStrategy = function (mergeStrategy) {
return (R.isNil(mergeStrategy) || mergeStrategy === definition_1.EntityMergeStrategiesEnum.MERGE)
? definition_1.EntityMergeStrategiesEnum.MERGE
: definition_1.EntityMergeStrategiesEnum.OVERRIDE;
};
/**
* @stable [19.10.2019]
* @param {IModifyEntity<TEntity extends IEntity>} payload
* @param {TEntity} entity
* @returns {TEntity}
*/
exports.buildEntityByMergeStrategy = function (payload, entity) { return (exports.getActualMergeStrategy(payload.mergeStrategy) === definition_1.EntityMergeStrategiesEnum.OVERRIDE
? clone_1.CloneUtils.shallowClone(payload.changes)
: Object.assign({}, entity || {}, payload.changes)); };
//# sourceMappingURL=merge-strategy.js.map