sdd

    0.0.5 • Public • Published

    icon

    usage

    module

    sdd = require 'sdd'
     
    A = { a: 1, b: 2, c: 3, d: 3,      }
    B = { a: 3, b: 2,             z: 4 }
     
    sdd.diff.two A, B
     
    # diff: [[["a"], 1, 3]]  # a changed from 1 to 3
    # same: [[["b"], 2   ]]   
    # new:  [[["z"], 4   ]]   
    # del:  [[["c"], 3   ], [["d"], 3]]   
     
    C = { a: 0, b: 1, c: 3, d: 4 } # the common ancestor of A and B
     
    sdd.diff.three A, B, C
            
    # diff: [[["a"], 1 , 3], [["d"], 3, null]] # conflicting changes
    # same: [[["b"], 2],     [["z"], 4      ]] # same in A and B or new in A or B
    # del:  [[["c"], 3                      ]] # c was removed in A or B only
    #
    # also included are the intermediary results:
    #
    # c2a: {"diff":[[["a"],0,1],[["b"],1,2],[["d"],4,3]],"new":[],"same":[[["c"],3]],"del":[]}
    # c2b: {"diff":[[["a"],0,3],[["b"],1,2]],"new":[[["z"],4]],"same":[],"del":[[["c"],3],[["d"],4]]}
            
    # happy diffing :-)

    caveats

    • this is in pre-alpha stadium:
      • hacked together rather quickly
      • might not work as advertised
    • not completely performance optimized yet
      • get yourself some coffee when using this on very large files with lots of changes :-)

    Install

    npm i sdd

    DownloadsWeekly Downloads

    1

    Version

    0.0.5

    License

    Unlicense

    Last publish

    Collaborators

    • monsterkodi