UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

63 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deepEqual = deepEqual; exports.shallowEqual = shallowEqual; /** * Performs deep equality check for nested objects and arrays */ function deepEqual(obj1, obj2) { if (obj1 === obj2) { return true; } if (obj1 == null || obj2 == null) { return obj1 === obj2; } if (typeof obj1 !== typeof obj2) { return false; } if (typeof obj1 !== "object") { return obj1 === obj2; } if (Array.isArray(obj1) !== Array.isArray(obj2)) { return false; } var keys1 = Object.keys(obj1); var keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (var _i = 0, keys1_1 = keys1; _i < keys1_1.length; _i++) { var key = keys1_1[_i]; if (!(key in obj2)) { return false; } if (!deepEqual(obj1[key], obj2[key])) { return false; } } return true; } /** * Performs shallow equality check for objects */ function shallowEqual(obj1, obj2) { if (obj1 === obj2) { return true; } if (!obj1 || !obj2 || typeof obj1 !== "object" || typeof obj2 !== "object") { return false; } var keys1 = Object.keys(obj1); var keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (var _i = 0, keys1_2 = keys1; _i < keys1_2.length; _i++) { var key = keys1_2[_i]; if (!(key in obj2) || obj1[key] !== obj2[key]) { return false; } } return true; } //# sourceMappingURL=objectComparison.js.map