Socket
Socket
Sign inDemoInstall

fast-equals

Package Overview
Dependencies
0
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.3 to 1.0.4

6

CHANGELOG.md
# fast-equals CHANGELOG
## 1.0.4
* Only check values when comparing `Set` objects (improves performance of `Set` check by ~12%)
## 1.0.3
* Make `Map` and `Set` comparisons more explicit
## 1.0.2

@@ -4,0 +10,0 @@ * Fix symmetrical comparison of iterables

19

dist/fast-equals.js

@@ -107,10 +107,9 @@ (function webpackUniversalModuleDefinition(root, factory) {

var toPairs = exports.toPairs = function toPairs(iterable) {
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) },
index = 0;
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) };
var index = 0;
iterable.forEach(function (value, key) {
pairs.keys[index] = key;
pairs.values[index] = value;
index++;
pairs.values[index++] = value;
});

@@ -130,12 +129,14 @@

* @param {function} comparator the comparator to determine deep equality
* @param {boolean} shouldCompareKeys should the keys be tested in the equality comparison
* @returns {boolean} are the objects equal in value
*/
var areIterablesEqual = exports.areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator) {
var areIterablesEqual = exports.areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator, shouldCompareKeys) {
if (objectA.size !== objectB.size) {
return false;
}
var pairsA = toPairs(objectA);
var pairsB = toPairs(objectB);
return comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values);
return shouldCompareKeys ? comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values) : comparator(pairsA.values, pairsB.values);
};

@@ -259,3 +260,3 @@

if (mapA || mapB) {
return mapA === mapB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator);
return mapA === mapB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator, true);
}

@@ -269,3 +270,3 @@ }

if (setA || setB) {
return setA === setB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator);
return setA === setB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator, false);
}

@@ -272,0 +273,0 @@ }

@@ -1,1 +0,1 @@

!(function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("fe",[],t):"object"==typeof exports?exports.fe=t():e.fe=t()})(this,(function(){return (function(e){function t(n){if(r[n])return r[n].exports;var u=r[n]={i:n,l:!1,exports:{}};return e[n].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)})([(function(e,t,r){"use strict";t.__esModule=!0;var n=(t.createIsStrictlyEqual=function(){return function(e,t){return e===t}},t.toPairs=function(e){var t={keys:new Array(e.size),values:new Array(e.size)},r=0;return e.forEach((function(e,n){t.keys[r]=n,t.values[r]=e,r++})),t});t.areIterablesEqual=function(e,t,r){if(e.size!==t.size)return!1;var u=n(e),o=n(t);return r(u.keys,o.keys)&&r(u.values,o.values)}}),(function(e,t,r){e.exports=r(2)}),(function(e,t,r){"use strict";t.__esModule=!0,t.shallowEqual=t.deepEqual=t.createCustomEqual=void 0;var n=r(3),u=(function(e){return e&&e.__esModule?e:{default:e}})(n),o=r(0),a=t.createCustomEqual=u.default,i=t.deepEqual=(0,u.default)(),f=t.shallowEqual=(0,u.default)(o.createIsStrictlyEqual);t.default={createCustom:a,deep:i,shallow:f}}),(function(e,t,r){"use strict";t.__esModule=!0;var n=r(0),u="function"==typeof Map,o="function"==typeof Set,a=function(e){function t(e,a){if(e===a)return!0;var i=typeof e;if(i!==typeof a)return!1;if("object"===i&&e&&a){var f=Array.isArray(e),s=Array.isArray(a),l=void 0;if(f||s){if(f!==s||e.length!==a.length)return!1;for(l=0;l<e.length;l++)if(!r(e[l],a[l]))return!1;return!0}var c=e instanceof Date,p=a instanceof Date;if(c||p)return c===p&&e.getTime()===a.getTime();var y=e instanceof RegExp,d=a instanceof RegExp;if(y||d)return y===d&&e.source===a.source&&e.global===a.global&&e.ignoreCase===a.ignoreCase&&e.multiline===a.multiline;if(u){var v=e instanceof Map,b=a instanceof Map;if(v||b)return v===b&&(0,n.areIterablesEqual)(e,a,t)}if(o){var g=e instanceof Set,E=a instanceof Set;if(g||E)return g===E&&(0,n.areIterablesEqual)(e,a,t)}var h=Object.keys(e);if(h.length!==Object.keys(a).length)return!1;var m=void 0;for(l=0;l<h.length;l++)if(m=h[l],!Object.prototype.hasOwnProperty.call(a,m)||!r(e[m],a[m]))return!1;return!0}return e!==e&&a!==a}var r="function"==typeof e?e(t):t;return t};t.default=a})])}));
!(function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("fe",[],t):"object"==typeof exports?exports.fe=t():e.fe=t()})(this,(function(){return (function(e){function t(n){if(r[n])return r[n].exports;var u=r[n]={i:n,l:!1,exports:{}};return e[n].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)})([(function(e,t,r){"use strict";t.__esModule=!0;var n=(t.createIsStrictlyEqual=function(){return function(e,t){return e===t}},t.toPairs=function(e){var t={keys:new Array(e.size),values:new Array(e.size)},r=0;return e.forEach((function(e,n){t.keys[r]=n,t.values[r++]=e})),t});t.areIterablesEqual=function(e,t,r,u){if(e.size!==t.size)return!1;var o=n(e),a=n(t);return u?r(o.keys,a.keys)&&r(o.values,a.values):r(o.values,a.values)}}),(function(e,t,r){e.exports=r(2)}),(function(e,t,r){"use strict";t.__esModule=!0,t.shallowEqual=t.deepEqual=t.createCustomEqual=void 0;var n=r(3),u=(function(e){return e&&e.__esModule?e:{default:e}})(n),o=r(0),a=t.createCustomEqual=u.default,i=t.deepEqual=(0,u.default)(),f=t.shallowEqual=(0,u.default)(o.createIsStrictlyEqual);t.default={createCustom:a,deep:i,shallow:f}}),(function(e,t,r){"use strict";t.__esModule=!0;var n=r(0),u="function"==typeof Map,o="function"==typeof Set,a=function(e){function t(e,a){if(e===a)return!0;var i=typeof e;if(i!==typeof a)return!1;if("object"===i&&e&&a){var f=Array.isArray(e),s=Array.isArray(a),l=void 0;if(f||s){if(f!==s||e.length!==a.length)return!1;for(l=0;l<e.length;l++)if(!r(e[l],a[l]))return!1;return!0}var c=e instanceof Date,p=a instanceof Date;if(c||p)return c===p&&e.getTime()===a.getTime();var y=e instanceof RegExp,d=a instanceof RegExp;if(y||d)return y===d&&e.source===a.source&&e.global===a.global&&e.ignoreCase===a.ignoreCase&&e.multiline===a.multiline;if(u){var v=e instanceof Map,b=a instanceof Map;if(v||b)return v===b&&(0,n.areIterablesEqual)(e,a,t,!0)}if(o){var g=e instanceof Set,E=a instanceof Set;if(g||E)return g===E&&(0,n.areIterablesEqual)(e,a,t,!1)}var h=Object.keys(e);if(h.length!==Object.keys(a).length)return!1;var m=void 0;for(l=0;l<h.length;l++)if(m=h[l],!Object.prototype.hasOwnProperty.call(a,m)||!r(e[m],a[m]))return!1;return!0}return e!==e&&a!==a}var r="function"==typeof e?e(t):t;return t};t.default=a})])}));

@@ -70,3 +70,3 @@ // utils

if (mapA || mapB) {
return mapA === mapB && areIterablesEqual(objectA, objectB, comparator);
return mapA === mapB && areIterablesEqual(objectA, objectB, comparator, true);
}

@@ -80,3 +80,3 @@ }

if (setA || setB) {
return setA === setB && areIterablesEqual(objectA, objectB, comparator);
return setA === setB && areIterablesEqual(objectA, objectB, comparator, false);
}

@@ -83,0 +83,0 @@ }

@@ -24,10 +24,9 @@ export var createIsStrictlyEqual = function createIsStrictlyEqual() {

export var toPairs = function toPairs(iterable) {
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) },
index = 0;
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) };
var index = 0;
iterable.forEach(function (value, key) {
pairs.keys[index] = key;
pairs.values[index] = value;
index++;
pairs.values[index++] = value;
});

@@ -47,12 +46,14 @@

* @param {function} comparator the comparator to determine deep equality
* @param {boolean} shouldCompareKeys should the keys be tested in the equality comparison
* @returns {boolean} are the objects equal in value
*/
export var areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator) {
export var areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator, shouldCompareKeys) {
if (objectA.size !== objectB.size) {
return false;
}
var pairsA = toPairs(objectA);
var pairsB = toPairs(objectB);
return comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values);
return shouldCompareKeys ? comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values) : comparator(pairsA.values, pairsB.values);
};

@@ -74,3 +74,3 @@ 'use strict';

if (mapA || mapB) {
return mapA === mapB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator);
return mapA === mapB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator, true);
}

@@ -84,3 +84,3 @@ }

if (setA || setB) {
return setA === setB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator);
return setA === setB && (0, _utils.areIterablesEqual)(objectA, objectB, comparator, false);
}

@@ -87,0 +87,0 @@ }

@@ -27,10 +27,9 @@ "use strict";

var toPairs = exports.toPairs = function toPairs(iterable) {
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) },
index = 0;
var pairs = { keys: new Array(iterable.size), values: new Array(iterable.size) };
var index = 0;
iterable.forEach(function (value, key) {
pairs.keys[index] = key;
pairs.values[index] = value;
index++;
pairs.values[index++] = value;
});

@@ -50,12 +49,14 @@

* @param {function} comparator the comparator to determine deep equality
* @param {boolean} shouldCompareKeys should the keys be tested in the equality comparison
* @returns {boolean} are the objects equal in value
*/
var areIterablesEqual = exports.areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator) {
var areIterablesEqual = exports.areIterablesEqual = function areIterablesEqual(objectA, objectB, comparator, shouldCompareKeys) {
if (objectA.size !== objectB.size) {
return false;
}
var pairsA = toPairs(objectA);
var pairsB = toPairs(objectB);
return comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values);
return shouldCompareKeys ? comparator(pairsA.keys, pairsB.keys) && comparator(pairsA.values, pairsB.values) : comparator(pairsA.values, pairsB.values);
};

@@ -90,3 +90,3 @@ {

},
"version": "1.0.3"
"version": "1.0.4"
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc