The fastest deep equal with ES6 Map, Set and Typed arrays support.
npm install @guanghechen/equal
@guanghechen/equal
alt="Npm Version"
src="https://img.shields.io/npm/v/@guanghechen/equal.svg"
/>
alt="Npm Download"
src="https://img.shields.io/npm/dm/@guanghechen/equal.svg"
/>
alt="Npm License"
src="https://img.shields.io/npm/l/@guanghechen/equal.svg"
/>
alt="Module Formats: cjs, esm"
src="https://img.shields.io/badge/module_formats-cjs%2C%20esm-green.svg"
/>
alt="Node.js Version"
src="https://img.shields.io/node/v/@guanghechen/equal"
/>
alt="Tested with Jest"
src="https://img.shields.io/badge/tested_with-jest-9c465e.svg"
/>
alt="Code Style: prettier"
src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square"
/>
The fastest deep equal with ES6 Map, Set and Typed arrays support. Inspired by
fast-deep-equal, re-published with ESM support.
- npm
``bash`
npm install --save @guanghechen/equal
- yarn
`bash`
yarn add @guanghechen/equal
`typescript
import isEqual from '@guanghechen/equal'
// Primitives
isEqual(1, 1) // true
isEqual('a', 'a') // true
isEqual(null, null) // true
isEqual(undefined, undefined) // true
// Objects
isEqual({ a: 1, b: 2 }, { a: 1, b: 2 }) // true
isEqual({ a: 1 }, { a: 2 }) // false
// Arrays
isEqual([1, 2, 3], [1, 2, 3]) // true
isEqual([1, 2], [1, 2, 3]) // false
// Nested structures
isEqual(
{ user: { name: 'John', tags: ['admin'] } },
{ user: { name: 'John', tags: ['admin'] } }
) // true
`
`typescript
import { isEqual } from '@guanghechen/equal'
isEqual({ foo: 'bar' }, { foo: 'bar' }) // true
`
`typescript
import isEqual from '@guanghechen/equal'
// RegExp
isEqual(/abc/gi, /abc/gi) // true
isEqual(/abc/g, /abc/i) // false
// Date
isEqual(new Date('2024-01-01'), new Date('2024-01-01')) // true
// Custom valueOf/toString
class Point {
constructor(public x: number, public y: number) {}
valueOf() { return this.x * 1000 + this.y }
}
isEqual(new Point(1, 2), new Point(1, 2)) // true
``
- [homepage][homepage]
- Inspired by fast-deep-equal
[homepage]:
https://github.com/guanghechen/sora/tree/@guanghechen/equal@2.0.0/packages/equal#readme