0.0.3 • Published 5 years ago

diff-sbs v0.0.3

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

diff-sbs

diff js object/array/string side by side

usage scenario

usage

  • A: add
  • D: delete
  • O: origin, no change
import { diff_obj, diff_array, diff_string } from 'diff-sbs'

const lhs = {
  a: '12',
  b: '123',
  c: 1,
  d: [{ k: 1, v: '11' }, { k: 2, v: '11' }]
}

const rhs = {
  a: '12',
  b: '122',
  c: 3,
  d: [{ k: 3, v: '12' }]
}

const [next_lhs, next_rhs] = diff_obj(lhs, rhs)

/* result
[
  {
    "a": [
      {
        "type": "O",
        "value": "12"
      }
    ],
    "b": [
      {
        "type": "O",
        "value": "12"
      },
      {
        "type": "D",
        "value": "3"
      }
    ],
    "c": {
      "type": "D",
      "value": 1
    },
    "d": [
      {
        "k": {
          "type": "D",
          "value": 1
        },
        "v": [
          {
            "type": "O",
            "value": "1"
          },
          {
            "type": "D",
            "value": "1"
          }
        ]
      },
      {
        "k": {
          "type": "D",
          "value": 2
        },
        "v": [
          {
            "type": "D",
            "value": "11"
          }
        ]
      }
    ]
  },
  {
    "a": [
      {
        "type": "O",
        "value": "12"
      }
    ],
    "b": [
      {
        "type": "O",
        "value": "12"
      },
      {
        "type": "A",
        "value": "2"
      }
    ],
    "c": {
      "type": "A",
      "value": 3
    },
    "d": [
      {
        "k": {
          "type": "A",
          "value": 3
        },
        "v": [
          {
            "type": "O",
            "value": "1"
          },
          {
            "type": "A",
            "value": "2"
          }
        ]
      }
    ]
  }
]
*/