UNPKG

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
"use strict"; 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;