Deep difference generator for comparing JavaScript objects, arrays, and primitives.

This class provides comprehensive comparison capabilities with configurable output formatting and depth control.

Constructors

Properties

Methods

  • Private

    Create a human-readable description of a value

    Parameters

    • value: any
    • Optional prefix: string

    Returns string

  • Generate a deep diff between two values

    Type Parameters

    • T = any

    Parameters

    • oldValue: T

      The original value

    • newValue: T

      The new value to compare against

    Returns DeepDiffResult

    Complete diff results including changes, summary, and formatted output

    Example

    const differ = new DeepDiffer({ includeUnchanged: true });
    const result = differ.diff(
    { users: [{ id: 1, name: 'Alice' }] },
    { users: [{ id: 1, name: 'Alice Cooper' }] }
    );
  • Private

    Compare two arrays and generate diff

    Parameters

    • oldArray: any[]
    • newArray: any[]
    • path: string[]
    • changes: DiffChange[]
    • depth: number

    Returns void

  • Private

    Compare two objects and generate diff

    Parameters

    • oldObj: any
    • newObj: any
    • path: string[]
    • changes: DiffChange[]
    • depth: number

    Returns void

  • Private

    Format the diff results as a human-readable string

    Parameters

    • changes: DiffChange[]
    • summary: {
          added: number;
          modified: number;
          removed: number;
          totalPaths: number;
          unchanged: number;
      }
      • added: number

        Number of properties/values that were added

      • modified: number

        Number of properties/values that were modified

      • removed: number

        Number of properties/values that were removed

      • totalPaths: number

        Total number of paths examined

      • unchanged: number

        Number of properties/values that remained unchanged (if tracked)

    Returns string

  • Private

    Recursively generate diff between two values

    Parameters

    • oldValue: any
    • newValue: any
    • path: string[]
    • changes: DiffChange[]
    • depth: number

    Returns void

  • Private

    Get a description of a value for display

    Parameters

    • value: any

    Returns string

  • Update configuration options

    Parameters

    • config: Partial<DeepDiffConfig>

      Partial configuration to merge with existing config

    Returns void