ohash
Version:
Simple object hashing, serialization and comparison utils.
38 lines (35 loc) • 1.42 kB
text/typescript
/**
* Compare two objects using reference equality and stable deep hashing.
* @param {any} object1 First object
* @param {any} object2 Second object
* @return {boolean} true if equal and false if not
*/
declare function isEqual(object1: any, object2: any): boolean;
/**
* Calculates the difference between two objects and returns a list of differences.
*
* @param {any} obj1 - The first object to compare.
* @param {any} obj2 - The second object to compare.
* @param {HashOptions} [opts={}] - Configuration options for hashing the objects. See {@link HashOptions}.
* @returns {DiffEntry[]} An array with the differences between the two objects.
*/
declare function diff(obj1: any, obj2: any): DiffEntry[];
declare class DiffEntry {
key: string;
type: "changed" | "added" | "removed";
newValue: DiffHashedObject;
oldValue?: DiffHashedObject | undefined;
constructor(key: string, type: "changed" | "added" | "removed", newValue: DiffHashedObject, oldValue?: DiffHashedObject | undefined);
toString(): string;
toJSON(): string;
}
declare class DiffHashedObject {
key: string;
value: any;
hash?: string | undefined;
props?: Record<string, DiffHashedObject> | undefined;
constructor(key: string, value: any, hash?: string | undefined, props?: Record<string, DiffHashedObject> | undefined);
toString(): string;
toJSON(): string;
}
export { diff, isEqual };