react-instantsearch-core
7.25.07.26.0
dist/cjs/lib/dequal.js~
dist/cjs/lib/dequal.jsModified+33−40
Index: package/dist/cjs/lib/dequal.js
===================================================================
--- package/dist/cjs/lib/dequal.js
+++ package/dist/cjs/lib/dequal.js
@@ -1,53 +1,46 @@
-"use strict";
+'use strict';
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.dequal = dequal;
-function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
-/* eslint-disable complexity */
+var _type_of = require('@swc/helpers/_/_type_of');
-/*
+/* eslint-disable complexity */ /*
* Code taken from dequal/lite v2.0.0
* https://github.com/lukeed/dequal/blob/9aa73181ac7e081cd330cac67d313632ac04bb02/src/lite.js
*
* It adds a 3rd argument `compare(a, b)` that lets execute custom logic to
* compare values.
* We use it to skip comparing function references.
- */
-
-// eslint-disable-next-line @typescript-eslint/unbound-method
+ */ // eslint-disable-next-line @typescript-eslint/unbound-method
var has = Object.prototype.hasOwnProperty;
function dequal(foo, bar, compare) {
- // start of custom implementation
- if (compare !== null && compare !== void 0 && compare(foo, bar)) {
- return true;
- }
- // end of custom implementation
-
- var ctor;
- var len;
- if (foo === bar) return true;
- if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
- if (ctor === Date) return foo.getTime() === bar.getTime();
- if (ctor === RegExp) return foo.toString() === bar.toString();
- if (ctor === Array) {
- if ((len = foo.length) === bar.length) {
- while (len-- && dequal(foo[len], bar[len], compare));
- }
- return len === -1;
+ // start of custom implementation
+ if (compare === null || compare === void 0 ? void 0 : compare(foo, bar)) {
+ return true;
}
- if (!ctor || _typeof(foo) === 'object') {
- len = 0;
- // eslint-disable-next-line guard-for-in, no-restricted-syntax
- for (ctor in foo) {
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
- if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor], compare)) return false;
- }
- return Object.keys(bar).length === len;
+ // end of custom implementation
+ var ctor;
+ var len;
+ if (foo === bar) return true;
+ if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
+ if (ctor === Date) return foo.getTime() === bar.getTime();
+ if (ctor === RegExp) return foo.toString() === bar.toString();
+ if (ctor === Array) {
+ if ((len = foo.length) === bar.length) {
+ while(len-- && dequal(foo[len], bar[len], compare));
+ }
+ return len === -1;
+ }
+ if (!ctor || (typeof foo === "undefined" ? "undefined" : _type_of._(foo)) === 'object') {
+ len = 0;
+ // eslint-disable-next-line guard-for-in, no-restricted-syntax
+ for(ctor in foo){
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
+ if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor], compare)) return false;
+ }
+ return Object.keys(bar).length === len;
+ }
}
- }
+ // eslint-disable-next-line no-self-compare
+ return foo !== foo && bar !== bar;
+}
- // eslint-disable-next-line no-self-compare
- return foo !== foo && bar !== bar;
-}
\ No newline at end of file
+exports.dequal = dequal;