Gathering detailed insights and metrics for deep-eql
Gathering detailed insights and metrics for deep-eql
Gathering detailed insights and metrics for deep-eql
Gathering detailed insights and metrics for deep-eql
Improved deep equality testing for Node.js and the browser.
npm install deep-eql
Typescript
Module System
Min. Node Version
Node Version
NPM Version
99.6
Supply Chain
97.5
Quality
75.9
Maintenance
100
Vulnerability
100
License
JavaScript (100%)
Total Downloads
2,374,765,659
Last Day
1,212,896
Last Week
20,235,785
Last Month
84,357,718
Last Year
785,582,920
MIT License
111 Stars
117 Commits
41 Forks
5 Watchers
2 Branches
23 Contributors
Updated on May 12, 2025
Minified
Minified + Gzipped
Latest Version
5.0.2
Package Id
deep-eql@5.0.2
Unpacked Size
23.33 kB
Size
6.81 kB
File Count
4
NPM Version
10.7.0
Node Version
18.20.3
Published on
Jun 03, 2024
Cumulative downloads
Total Downloads
Last Day
11.7%
1,212,896
Compared to previous day
Last Week
-4.2%
20,235,785
Compared to previous week
Last Month
4.6%
84,357,718
Compared to previous month
Last Year
78.9%
785,582,920
Compared to previous year
Improved deep equality testing for node and the browser.
Deep Eql is a module which you can use to determine if two objects are "deeply" equal - that is, rather than having referential equality (a === b
), this module checks an object's keys recursively, until it finds primitives to check for referential equality. For more on equality in JavaScript, read the comparison operators article on mdn.
As an example, take the following:
11 === 1 // These are primitives, they hold the same reference - they are strictly equal 21 == '1' // These are two different primitives, through type coercion they hold the same value - they are loosely equal 3{ a: 1 } !== { a: 1 } // These are two different objects, they hold different references and so are not strictly equal - even though they hold the same values inside 4{ a: 1 } != { a: 1 } // They have the same type, meaning loose equality performs the same check as strict equality - they are still not equal. 5 6var deepEql = require("deep-eql"); 7deepEql({ a: 1 }, { a: 1 }) === true // deepEql can determine that they share the same keys and those keys share the same values, therefore they are deeply equal!
deep-eql
is available on npm.
$ npm install deep-eql
The primary export of deep-eql
is function that can be given two objects to compare. It will always return a boolean which can be used to determine if two objects are deeply equal.
Object.is
:
eql(NaN, NaN).should.be.true;
eql(-0, +0).should.be.false;
eql(Object.create({ foo: { a: 1 } }), Object.create({ foo: { a: 1 } })).should.be.true;
eql(Object.create({ foo: { a: 1 } }), Object.create({ foo: { a: 2 } })).should.be.false;
Error
objects, only name
, message
, and code
properties are considered, regardless of enumerability:
eql(Error('foo'), Error('foo')).should.be.true;
eql(Error('foo'), Error('bar')).should.be.false;
eql(Error('foo'), TypeError('foo')).should.be.false;
eql(Object.assign(Error('foo'), { code: 42 }), Object.assign(Error('foo'), { code: 42 })).should.be.true;
eql(Object.assign(Error('foo'), { code: 42 }), Object.assign(Error('foo'), { code: 13 })).should.be.false;
eql(Object.assign(Error('foo'), { otherProp: 42 }), Object.assign(Error('foo'), { otherProp: 13 })).should.be.true;
eql([], arguments).should.be.false;
eql([], Array.prototype.slice.call(arguments)).should.be.true;
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
license file detected
Details
Reason
Found 14/26 approved changesets -- score normalized to 5
Reason
dependency not pinned by hash detected -- score normalized to 1
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
28 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-06-30
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More