copy-dependencies
Advanced tools
Comparing version 0.0.3 to 0.0.4
75
index.js
@@ -26,9 +26,3 @@ #!/usr/bin/env node | ||
function merge(source, target) { | ||
var merged = Object.assign( | ||
{}, | ||
source, | ||
target | ||
); | ||
// sort | ||
function sort(merged) { | ||
return Object.keys(merged).sort().reduce((sorted, key) => { | ||
@@ -40,6 +34,53 @@ sorted[key] = merged[key]; | ||
function merge(target, source) { | ||
return Object.assign( | ||
{}, | ||
target, | ||
source | ||
); | ||
} | ||
function logChanges(merged, target, pkgKey) { | ||
var changes = Object.keys(merged).reduce((acc, key) => { | ||
if(merged[key] != target[key]) { | ||
acc[key] = merged[key]; | ||
} | ||
return acc; | ||
}, {}); | ||
var maxLength = Object.keys(changes).reduce((acc, key) => Math.max(key.length, acc), 0); | ||
if(Object.keys(changes).length) { | ||
console.log(); | ||
console.log(pkgKey); | ||
Object.keys(changes).forEach(key => { | ||
if(merged[key] && target[key] && (merged[key] !== target[key])) { | ||
console.warn(`${key.padStart(maxLength)}: ${target[key]} => ${merged[key]}`) | ||
} else if (merged[key] && !target[key]) { | ||
console.warn(`${key.padStart(maxLength)}: => ${merged[key]}`) | ||
} | ||
}); | ||
} | ||
} | ||
function processDependencies(sourcePkg, targetPkg, key) { | ||
var source = sourcePkg[key]; | ||
var target = targetPkg[key]; | ||
var merged = merge(target, source); | ||
var sorted = sort(merged, source); | ||
logChanges(sorted, target, key); | ||
// sort | ||
return sorted; | ||
} | ||
if(sourcePackage.dependencies) { | ||
targetPackage.dependencies = merge( | ||
sourcePackage.dependencies, | ||
targetPackage.dependencies | ||
targetPackage.dependencies = processDependencies( | ||
sourcePackage, | ||
targetPackage, | ||
'dependencies' | ||
); | ||
@@ -49,5 +90,6 @@ }; | ||
if(sourcePackage.devDependencies) { | ||
targetPackage.devDependencies = merge( | ||
sourcePackage.devDependencies, | ||
targetPackage.devDependencies | ||
targetPackage.devDependencies = processDependencies( | ||
sourcePackage, | ||
targetPackage, | ||
'devDependencies' | ||
); | ||
@@ -57,5 +99,6 @@ }; | ||
if(sourcePackage.peerDependencies) { | ||
targetPackage.peerDependencies = merge( | ||
sourcePackage.peerDependencies, | ||
targetPackage.peerDependencies | ||
targetPackage.peerDependencies = processDependencies( | ||
sourcePackage, | ||
targetPackage, | ||
'peerDependencies' | ||
); | ||
@@ -62,0 +105,0 @@ }; |
{ | ||
"name": "copy-dependencies", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Copy the dependencies, peerDependencies and devDependencies from one node package to another.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -5,2 +5,4 @@ # copy-dependencies | ||
(updates the target package.json file, does not copy any files across) | ||
## Usage | ||
@@ -7,0 +9,0 @@ |
3478
82
13