diff-immutability-helper

1.1.0 • Public • Published

diff-immutability-helper

Creates a diff between 2 JavaScript objects, allowing you to mutate one object to another using immutability-helper

npm package Build Status Coverage Status

Overview

diff-immutability-helper creates an immutability-helper compatible diff object between 2 JavaScript variables.

This diff object would then allow you to mutate the base object to the target object.

Installation

$ npm install diff-immutability-helper --save

Example

Given:

  import diff from 'diff-immutability-helper';

  const base = {
    a: [1, 2, { b: 1 }, 4, 5, 6],
    b: 'test',
    c: 'prev'
  };

  const target = {
    a: [1, 2, { b: 2 }, 4, 6],
    b: 'test 2',
    d: 'new'
  };

  const change = diff(base, target);

will give a result of:

  const change = {
    a: {
      $splice: [[4, 1], [2, 1, { b: 2 }]]
    },
    b: {$set: 'test 2'},
    $apply: (v) => omit(v, ['c']),
    $merge: {
      d: 'new'
    }
  }

thus, we can then do:

  import update from 'immutability-helper';
  update(base, change); // to match target

Notes

  • Array diffing uses LCS
  • Only CommonJS format (for node.js) is provided. This is to minimize library size when you bundle with your application.

License

diff-immutability-helper is MIT licensed

Package Sidebar

Install

npm i diff-immutability-helper

Weekly Downloads

63

Version

1.1.0

License

MIT

Last publish

Collaborators

  • geraldyeo