three-way-merger

Merges package.json files

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
three-way-merger
130.6.34 years ago7 years agoMinified + gzip package size for three-way-merger in KB

Readme

three-way-merger
Greenkeeper badge npm version Build Status Used to figure out the minimum changes needed to be made to create a 3-way merge of dependencies (for an app's devDependencies or dependencies, e.g.).

usage

```javascript var Merger = require('three-way-merger'); // e.g., the blueprinted package.json from the version of ember-cli we are upgrading from: var source = { devDependencies: {
a: '1.0',
b: '2.0',
e: '1.0',
f: '1.0'
} }; var ours = { devDependencies: {
a: '1.0',
// b: '2.0', // user removed dep on 'b'
c: '3.0', // and added dep on 'c'
e: '1.0',
f: '2.0'  // user updated independently to latest
} }; // e.g., the blueprinted package.json from the version of ember-cli we are upgrading to: var theirs = { devDependencies: {
a: '1.5', // a was bumped
b: '2.5', // b was bumped
d: '1.0', // ember-cli introduced new dep on d
// e: '1.0', // e was removed
f: '1.5'  // f was bumped, but `ours` is newer so ignore
} }; var result = Merger.merge({source: source, ours: ours, theirs: theirs}); console.log(result.devDependencies.add); // {name: 'd', version: '1.0'} // need to add dep on d@1.0 // dep 'b' is not listed as requiring addition because user explicitly removed it from ours devDependencies console.log(result.devDependencies.remove); // {name: 'e', version: '1.0'} // need to remove dep on e@1.0 console.log(result.devDependencies.change); // {name: 'a', version: '1.5', fromVersion: '1.0'} // need to update a@1.0 to a@1.5 // dep 'f' is not listed as requiring change because user explicitly updated it past theirs version ```

to do

documentation