Deep equality without recursive exhaustion
@stackline/deep-is
Keep the familiar loose equality contract while safely traversing cyclic and deeply nested JavaScript object graphs.
npm install @stackline/deep-isv1.0.1Node 12+TypeScript 3.9-7.0Zero runtime dependencies
Runs the production browser bundle
Value comparator
Actual value
JSONExpected value
JSONReadyChoose values and compare.
Lowest-change migration
Keep every existing import
Install through an npm alias when the application already requires deep-is.
npm install deep-is@npm:@stackline/deep-isconst deepIs = require('deep-is')Public contract
One synchronous function
| Call | Behavior | Return |
|---|---|---|
deepIs(actual, expected) | Compares values without mutation | boolean |
deepIs(NaN, NaN) | Preserves historical NaN equality | true |
deepIs(+0, -0) | Preserves signed-zero distinction | false |
deepIs(1, '1') | Preserves loose primitive comparison | true |
Release evidence
Compatibility is measured
- 5,625
- differential pairs against 0.1.4
- 100,000
- tested nesting levels
- 100%
- core coverage
- 0
- runtime dependencies
Portable reference
Human and machine-readable docs
Versioned API, migration, compatibility, and security references remain available without client rendering.