Socket
Socket
Sign inDemoInstall

dequal

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dequal - npm Package Compare versions

Comparing version 0.0.0 to 1.0.0

dequal.d.ts

19

dist/dequal.js

@@ -1,3 +0,18 @@

module.exports = function () {
//
module.exports = function dequal(foo, bar) {
var ctor, 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 && (len=foo.length) === bar.length) {
while (len-- && dequal(foo[len], bar[len]));
return len === -1;
}
if (ctor === Object) {
if (Object.keys(foo).length !== Object.keys(bar).length) return false;
for (len in foo) if (!(len in bar) || !dequal(foo[len], bar[len])) return false;
return true;
}
}
return foo !== foo && bar !== bar;
}

2

dist/dequal.min.js

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

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=function(){}:"function"==typeof define&&define.amd?define(n):e.dequal=function(){}}(this,function(){return function(){}});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.dequal=t()}(this,function(){return function e(t,n){var r,i;if(t===n)return!0;if(t&&n&&(r=t.constructor)===n.constructor){if(r===Date)return t.getTime()===n.getTime();if(r===RegExp)return t.toString()===n.toString();if(r===Array&&(i=t.length)===n.length){for(;i--&&e(t[i],n[i]););return-1===i}if(r===Object){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(i in t)if(!(i in n&&e(t[i],n[i])))return!1;return!0}}return t!=t&&n!=n}});
{
"name": "dequal",
"version": "0.0.0",
"version": "1.0.0",
"repository": "lukeed/dequal",
"description": "WIP",
"description": "A tiny (247B) utility for check for deep equality",
"unpkg": "dist/dequal.min.js",
"module": "dist/dequal.mjs",
"main": "dist/dequal.js",
"types": "dequal.d.ts",
"license": "MIT",

@@ -24,5 +25,10 @@ "author": {

"files": [
"*.d.ts",
"dist"
],
"keywords": [],
"keywords": [
"deep",
"deep-equal",
"equality"
],
"devDependencies": {

@@ -29,0 +35,0 @@ "bundt": "^0.3.0",

# dequal [![Build Status](https://badgen.now.sh/travis/lukeed/dequal)](https://travis-ci.org/lukeed/dequal)
> WIP
> A tiny (247B) utility to check for deep equality
This module supports comparison of all types, including `Function`, `RegExp`, `Date`, `null`, `undefined`, and `NaN` values.<br>
Objects and Arrays are traversed recursively.
> Please note that key order **within Objects** does not matter.<br>
However, the value order **within Arrays** does matter.
This module exposes three module definitions:
* **CommonJS**: `dist/dequal.js`
* **ESModule**: `dist/dequal.mjs`
* **UMD**: `dist/dequal.min.js`
## Install

@@ -18,3 +30,20 @@

//
dequal(1, 1); //=> true
dequal({}, {}); //=> true
dequal('foo', 'foo'); //=> true
dequal([1, 2, 3], [1, 2, 3]); //=> true
dequal(dequal, dequal); //=> true
dequal(/foo/, /foo/); //=> true
dequal(null, null); //=> true
dequal(NaN, NaN); //=> true
dequal([], []); //=> true
dequal(
[{ a:1 }, [{ b:{ c:[1] } }]],
[{ a:1 }, [{ b:{ c:[1] } }]]
); //=> true
dequal(1, '1'); //=> false
dequal(null, undefined); //=> false
dequal({ a:1, b:[2,3] }, { a:1, b:[2,5] }); //=> false
dequal(/foo/i, /bar/g); //=> false
```

@@ -24,8 +53,22 @@

### dequal(a, b)
### dequal(foo, bar)
Returns: `Boolean`
Both `foo` and `bar` can be of any type.<br>
A `Boolean` is returned indicating if the two were deeply equal.
## Benchmarks
> Running Node v10.13.0
```
fast-deep-equal x 214,365 ops/sec ±0.30% (93 runs sampled)
dequal x 160,116 ops/sec ±0.29% (93 runs sampled)
lodash.isEqual x 45,257 ops/sec ±0.26% (95 runs sampled)
```
<sup>_Candidates operate identically to one another_</sup>
## License
MIT © [Luke Edwards](https://lukeed.com)

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc