crud-object-diff
Version:
Helper utilities to compare objects or arrays for obtaining created, updated, & deleted values.
37 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleCompareObjectInputValidation = void 0;
/**
* Runtime validation for the compareObjectVals function.
*/
function handleCompareObjectInputValidation(toCompareVals, key) {
if (!Array.isArray(toCompareVals)) {
throw new TypeError(`toCompareVals must be an array of the originalArray and stateUpdatedArray you want to compare!`);
}
if ((typeof key !== 'string' && typeof key !== 'symbol') && typeof key !== 'undefined' && !Array.isArray(key)) {
throw new TypeError(`The given compare key must be of type "string" or "symbol" if one is provided!`);
}
if (Array.isArray(key) && typeof key[0] == 'object') {
throw new TypeError('The key values must be primatives!');
}
if (toCompareVals.length !== 2) {
throw new Error('Compare arguments are of the wrong length!');
}
if (!Array.isArray(toCompareVals[0]) || !Array.isArray(toCompareVals[1])) {
throw new TypeError(`The originalArray and stateUpdatedArray must both be arrays!`);
}
var firstElementExists = toCompareVals[0] && toCompareVals[0][0];
var secondElementExits = toCompareVals[1] && toCompareVals[1][0];
var firstElementIsNotArrayOfObjects = (firstElementExists && toCompareVals[0][0] !== Object(toCompareVals[0][0]) ||
firstElementExists && Array.isArray(toCompareVals[0][0]));
var secondElementIsNotArrayOfObjects = (secondElementExits && toCompareVals[1][0] !== Object(toCompareVals[1][0]) ||
secondElementExits && Array.isArray(toCompareVals[1][0]));
if (firstElementIsNotArrayOfObjects) {
throw new TypeError('The provided originalArray, is not an array of objects!');
}
if (secondElementIsNotArrayOfObjects) {
throw new TypeError('The provided stateUpdatedArray, is not an array of objects!');
}
}
exports.handleCompareObjectInputValidation = handleCompareObjectInputValidation;
//# sourceMappingURL=validation.js.map