zcorky / deep-diff-patch

data-diff-patch, if use in react like library, that is, virtual dom.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deep-diff-patch

NPM version Coverage Status Dependencies Build Status license issues

Deep Diff & Patch in js, maybe data visition timeline json data is common for use. Diff => CREATE / UPDATE / DELETE / UNCHANGE Data. Patch => Immutable Philosophy Data.

Install

$ npm install @zcorky/deep-diff-patch

Usage

// See more in test
import { diff, patch, Type } from '@zcorky/deep-diff-patch';

const prev = [
  {
    id: 76,
    name: 'Jay',
    createdAt: '...',
    updatedAt: '...',
  },
  {
    id: 77,
    name: 'Zero',
    createdAt: '...',
    updatedAt: '...',
  },
];

const next = [
  {
    id: 76,
    name: 'Jay',
    createdAt: '...',
    updatedAt: '...',
  },
  {
    id: 77,
    name: 'Zero Win',
    createdAt: '...',
    updatedAt: '...',
  },
];

diff(prev, next);

// =>
[
  {
    id: {
      type: Type.UNCHANGE,
      prev: 76,
      next: 76,
    },
    name: {
      type: Type.UNCHANGE,
      prev: 'Jay',
      next: 'Jay',
    },
    createdAt: {
      type: Type.UNCHANGE,
      prev: '...',
      next: '...',
    },
    updatedAt: {
      type: Type.UNCHANGE,
      prev: '...',
      next: '...',
    },
  },
  {
    id: {
      type: Type.UNCHANGE,
      prev: 77,
      next: 77,
    },
    name: {
      type: Type.UPDATE,
      prev: 'Zero',
      next: 'Zero Win',
    },
    createdAt: {
      type: Type.UNCHANGE,
      prev: '...',
      next: '...',
    },
    updatedAt: {
      type: Type.UNCHANGE,
      prev: '...',
      next: '...',
    },
  },
]

Related

About

data-diff-patch, if use in react like library, that is, virtual dom.

License:MIT License


Languages

Language:TypeScript 100.0%