Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 1.43 KB

File metadata and controls

59 lines (39 loc) · 1.43 KB
description Modern alternatives to the deep-equal package for deep object comparison

Replacements for deep-equal

util.isDeepStrictEqual (native, since Node.js v9.0.0)

Node.js has a builtin function isDeepStrictEqual. Consider using that if you don’t need browser support.

Example:

import equal from 'deep-equal' // [!code --]
import { isDeepStrictEqual } from 'node:util' // [!code ++]

const a = { foo: 'bar' }
const b = { foo: 'bar' }

equal(a, b) // true [!code --]
isDeepStrictEqual(a, b) // true [!code ++]

dequal

dequal has the same simple API as deep-equal.

Example:

import equal from 'deep-equal' // [!code --]
import dequal from 'dequal' // [!code ++]

const a = { foo: 'bar' }
const b = { foo: 'bar' }

equal(a, b) // true [!code --]
dequal(a, b) // true [!code ++]

Bun.deepEquals (native, Bun)

Bun has a built-in Bun.deepEquals function. It accepts two values to compare, and an optional strict flag (default false).

Example:

import equal from 'deep-equal' // [!code --]

const a = { foo: 'bar' }
const b = { foo: 'bar' }

equal(a, b) // true [!code --]
Bun.deepEquals(a, b) // true [!code ++]

// Strict Mode
equal(a, b, { strict: true }) // true [!code --]
Bun.deepEquals(a, b, true) // true [!code ++]