UNPKG

@ozen-ui/kit

Version:

React component library

57 lines (56 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shallowEqual = void 0; var array_1 = require("../array"); var shallowEqualArrays = function (arrayA, arrayB) { if (arrayA === arrayB) { return true; } if (!arrayA || !arrayB) { return false; } var length = arrayA.length; if (arrayB.length !== length) { return false; } for (var i = 0; i < length; i++) { if (arrayA[i] !== arrayB[i]) { return false; } } return true; }; var shallowEqualObjects = function (objectA, objectB) { if (objectA === objectB) { return true; } if (!objectA || !objectB) { return false; } var aKeys = Object.keys(objectA); var bKeys = Object.keys(objectB); var len = aKeys.length; if (bKeys.length !== len) { return false; } for (var i = 0; i < len; i++) { var key = aKeys[i]; if (objectA[key] !== objectB[key] || !Object.prototype.hasOwnProperty.call(objectB, key)) { return false; } } return true; }; var shallowEqual = function (a, b) { var aIsArray = (0, array_1.isArray)(a); var bIsArray = (0, array_1.isArray)(b); if (aIsArray !== bIsArray) { return false; } if (aIsArray && bIsArray) { return shallowEqualArrays(a, b); } return shallowEqualObjects(a, b); }; exports.shallowEqual = shallowEqual;