UNPKG

data-diff-ts

Version:

Lightweight TypeScript utility for comparing objects, arrays, and nested data structures.

45 lines (39 loc) 1.41 kB
interface ArrayDiffResult<T> { added: T[]; removed: T[]; unchanged: T[]; changed: Array<{ index: number; from: T; to: T; }>; } interface DiffResult { added: Record<string, unknown>; removed: Record<string, unknown>; changed: Record<string, { from: unknown; to: unknown; } | DiffResult | ArrayDiffResult<unknown>>; unchanged: Record<string, unknown>; } declare function isFlatChange(value: unknown): value is { from: unknown; to: unknown; }; declare function isDiffResult(value: unknown): value is DiffResult; declare function isArrayDiffResult(value: unknown): value is ArrayDiffResult<unknown>; declare function diff(objA: Record<string, any>, objB: Record<string, any>): DiffResult | {}; declare function diffArrays<T>(a: T[], b: T[], options?: { deep?: boolean; }): ArrayDiffResult<T>; type FlatDiff = Record<string, { from: unknown; to: unknown; }>; declare function diffFlattened(a: Record<string, any>, b: Record<string, any>, prefix?: string): FlatDiff; interface SmartDiffOptions { flatten?: boolean; } declare function smartDiff(a: Record<string, any>, b: Record<string, any>, options?: SmartDiffOptions): DiffResult | FlatDiff; export { ArrayDiffResult, DiffResult, FlatDiff, SmartDiffOptions, diff, diffArrays, diffFlattened, isArrayDiffResult, isDiffResult, isFlatChange, smartDiff };