pure-aid
Version:
A tiny collection of functions to be used in conjunction with normalizr and redux-undo to bridge the "delete" gap of normalizr.
59 lines (49 loc) • 1.92 kB
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function mergeNestedObject(parentObject, objectKey, object) {
var updated = _extends({}, parentObject);
updated[objectKey] = _extends({}, updated[objectKey], object);
return updated;
}
function deleteNestedObjects(parentObject, objectKeys) {
var updated = _extends({}, parentObject);
objectKeys.forEach(function (key) {
return delete updated[key];
});
return updated;
}
function addToArray(array, index, objectOrPrimitive) {
var updated = [].concat(_toConsumableArray(array));
updated.splice(index, 0, objectOrPrimitive);
return updated;
}
function changePrimitiveInsideArray(array, index, primitive) {
var updated = [].concat(_toConsumableArray(array));
updated[index] = primitive;
return updated;
}
function mergeObjectInsideArray(array, index, object) {
var updated = [].concat(_toConsumableArray(array));
updated[index] = _extends({}, updated[index], object);
return updated;
}
function changePositionInArray(array, oldIndex, newIndex) {
var updated = [].concat(_toConsumableArray(array));
var tmp = updated.splice(oldIndex, 1);
updated.splice(newIndex, 0, tmp[0]);
return updated;
}
var Pure = {
Arr: {
add: addToArray,
changePosition: changePositionInArray,
changePrimitive: changePrimitiveInsideArray,
mergeObject: mergeObjectInsideArray
},
Obj: {
mergeNestedObject: mergeNestedObject,
deleteNestedObjects: deleteNestedObjects
}
};
module.exports = Pure;