UNPKG

@pivanov/utils

Version:

A focused collection of TypeScript utilities for modern web development

22 lines (21 loc) 794 B
/** * Deeply compares two values for structural equality. * * Supports: primitives (with NaN-equals-NaN), Arrays, Sets, Maps, Dates, * RegExp (source + flags), Errors (name + message), TypedArrays, * ArrayBuffer/DataView (byte-wise), and plain objects. Handles circular * references via cycle tracking. * * Sets with non-primitive members use order-independent deep comparison * (O(n²) worst case). * * @example * ```ts * isEqual({ a: 1, b: 2 }, { b: 2, a: 1 }); // true * isEqual([1, 2, 3], [1, 2, 3]); // true * isEqual(new Set([{ id: 1 }]), new Set([{ id: 1 }])); // true * isEqual(/foo/gi, /foo/gi); // true * isEqual(new Uint8Array([1, 2]), new Uint8Array([1, 2])); // true * ``` */ export declare const isEqual: <T, K>(obj: T | T[], objToCompare: K | K[]) => boolean;