Catalog npm
Back to packageRELEASE DETAILS

1.0.8

npm

3-way-diff

3-way diffing of JavaScript objects

3 way diff3-way diffthree way diffthree-way diff
Published9 May 2017
Direct dependencies2
Transitive dependenciesNot calculated

README

Current package documentation

3-way-diff

Build Status

https://github.com/lodash/lodash/blob/master/lodash.js#L11220 Note: This method supports comparing arrays, array buffers, booleans, date objects, error objects, maps, numbers, Object objects, regexes, sets, strings, symbols, and typed arrays. Object objects are compared by their own, not inherited, enumerable properties. Functions and DOM nodes are not supported.

Structure of return object is loosely based on https://github.com/flitbit/diff

Some comparison is based on https://github.com/falsecz/3-way-merge/blob/master/test/test.coffee

Concestor comes from https://github.com/dominictarr/xdiff

Differences

Differences are reported as one or more change records. Change records have the following structure:

  • kind - indicates the kind of change; will be one of the following:
    • N - indicates a newly added property/element
    • D - indicates a property/element was deleted
    • E - indicates a property/element was edited
    • C - indicates a conflicting change was made to both mine and theirs
  • path - the property path (from the parent)
  • parent - the value on parent
  • theirs - the value on theirs (undefined if kind === 'N')
  • mine - the value on mine (undefined if kind === 'D')

Options

Options object can be used to denote certain flags. Object should be replica of mine with flags set on specific keys

Example

Mine:

{ 
  key1: { 
    childKey1: { 
      key: value
    },
    childKey2: value
  },
  key2: {
    childKey1: value
  }
}

Options:

{ 
  key1: { 
    childKey1: { 
      ignoreKey: true 
    },
    ignoreOrder: true, 
  },
  key2: {
    ignoreKey: true
  }
}

Flags

  • ignoreKey - Do not diff this key
  • ignoreOrder - Compares arrays without maintaining order
  • falsy - Allow values to be compared as falsy (0, '', false, undefined, NaN and null are equal)

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 2

Native requirements
2 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
lodash
Environment
{
  "local_name": "lodash",
  "alias": false,
  "peer_metadata": null
}
^4.15.0runtime
mocha
Environment
{
  "local_name": "mocha",
  "alias": false,
  "peer_metadata": null
}
^3.0.2development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "b89dbd8ac31c504107a5927f43aa2f254c322610",
  "tarball": "https://registry.npmjs.org/3-way-diff/-/3-way-diff-1.0.8.tgz",
  "integrity": "sha512-zviqeFd1M5Dyhy+6bBOfc92hMuSW0RraH/rZ4p6j33EaZPnm7u7ACpc6+NkJ/OpRcrQIl3fEplutQg13Az8GNg==",
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCIClSNOMw7STrG9n0PqIFQxbv7WgHr+7AHRriHxBtIjJlAiEAkXmit3dB9Y0RPMh/vXoWWsaE+YQdvnLOJT6aZ53i1uU="
    }
  ]
}

Repository

PENDING
wennermedia/3-way-diff

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:21 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:4d09c742069f32ebd2f73f2f45cf217ef33552e5d777faddc1429247cdf547bc

Other collected versions

1.0.71 May1.0.626 Apr1.0.528 Feb1.0.42 Feb1.0.319 Dec1.0.216 DecView all collected versions →