react-stripe-elements
Version:
React components for Stripe.js and Stripe Elements
56 lines (40 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var PLAIN_OBJECT_STR = '[object Object]';
var isEqual = function isEqual(left, right) {
if ((typeof left === 'undefined' ? 'undefined' : _typeof(left)) !== 'object' || (typeof right === 'undefined' ? 'undefined' : _typeof(right)) !== 'object') {
return left === right;
}
if (left === null || right === null) return left === right;
var leftArray = Array.isArray(left);
var rightArray = Array.isArray(right);
if (leftArray !== rightArray) return false;
var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;
var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;
if (leftPlainObject !== rightPlainObject) return false;
if (!leftPlainObject && !leftArray) return false;
var leftKeys = Object.keys(left);
var rightKeys = Object.keys(right);
if (leftKeys.length !== rightKeys.length) return false;
var keySet = {};
for (var i = 0; i < leftKeys.length; i += 1) {
keySet[leftKeys[i]] = true;
}
for (var _i = 0; _i < rightKeys.length; _i += 1) {
keySet[rightKeys[_i]] = true;
}
var allKeys = Object.keys(keySet);
if (allKeys.length !== leftKeys.length) {
return false;
}
var l = left;
var r = right;
var pred = function pred(key) {
return isEqual(l[key], r[key]);
};
return allKeys.every(pred);
};
exports.default = isEqual;