UNPKG

react-stripe-elements

Version:

React components for Stripe.js and Stripe Elements

56 lines (40 loc) 1.71 kB
'use strict'; 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;