Skip to content
This repository has been archived by the owner on Sep 5, 2019. It is now read-only.

Commit

Permalink
add method to parse shrinkwrap files
Browse files Browse the repository at this point in the history
  • Loading branch information
nlf committed Mar 24, 2015
1 parent 40a4c2f commit 15f70d1
Showing 1 changed file with 34 additions and 1 deletion.
35 changes: 34 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,38 @@ function getModuleDependencies(module, cb) {
});
}

function getShrinkwrapDependencies(shrinkwrap, cb) {
var results = {};

var _parseModule = function (module, parents, name) {

var moduleName = (name || module.name) + '@' + module.version;
var children = Object.keys(module.dependencies || {}).concat(Object.keys(module.devDependencies || {}));

if (results[moduleName]) {
results[moduleName].parents = results[moduleName].parents.concat(parents);
}
else {
results[moduleName] = {
name: name || module.name,
version: module.version,
parents: parents,
children: children,
source: 'npm'
};
}

for (var i = 0, il = children.length; i < il; ++i) {
var child = children[i];
_parseModule(module.dependencies[child], [moduleName], child);
}
};

_parseModule(shrinkwrap, []);

return cb(null, results);
}

function getPackageDependencies(package, cb) {
var result = {};
_savePackageDependencies(package, result, undefined, function (err) {
Expand All @@ -145,7 +177,8 @@ module.exports = {
getModuleDependencies: getModuleDependencies,
getModuleMaintainers: getModuleMaintainers,
getPackageDependencies: getPackageDependencies,
getPackageJson: getPackageJson
getPackageJson: getPackageJson,
getShrinkwrapDependencies: getShrinkwrapDependencies
};


0 comments on commit 15f70d1

Please sign in to comment.