requiresafe-npm-utils
v2.5.3
Published
[![Build Status](https://magnum.travis-ci.com/requiresafe/npm-utils.svg?token=y6kXcG28kZTEjJL8fnHQ)](https://magnum.travis-ci.com/requiresafe/npm-utils)
Downloads
17
Maintainers
Readme
requireSafe (+) npm utilities
Methods:
getModuleDependencies = function (module, callback)
Get a depTree for the given module. module
is an object that must contain a name and may optionally contain a version.
getModuleDependencies({
name: 'helmet',
version: '0.2.0' //may also be a semver string, a la "^1.1.0"
}, function (err, depTree) {
console.log(depTree);
});
getPackageDependencies = function (packageJson, callback)
Get a depTree for the module from a full package.json. packageJson
should be an object from a parsed package.json file (or look like one): required keys: name
, version
, dependencies
.
var fs = require('fs');
getPackageDependencies(JSON.parse(fs.readFileSync('./package.json')), function (err, depTree) {
console.log(depTree);
});
getModuleMaintainers = function (module, callback)
Get an array of maintainers from a specifc module / version.
depTree format
Many of the functions return a depTree
representing the full dependency tree. This is in a format that's easier to traverse than a full tree. Each module in the full heirarchy has a key in the object of module@version
. It's value is an object with parents
, children
and source
.
Note that the root module has a key too.
e.g.:
//depTree for some-module version 1.1.0
{
//root module
"[email protected]": {
parents: [],
children: ["[email protected]", "[email protected]", "[email protected]"],
},
//root's dependencies
"[email protected]": {
parents: ["[email protected]"],
children: ["[email protected]"],
source: "npm"
},
"[email protected]": {
parents: ["[email protected]"],
children: ["[email protected]", "[email protected]"],
source: "npm"
},
"[email protected]": {
parents: ["[email protected]"],
children: [],
source: "unknown" //not on npm, maybe it's private/local?
}
//deeper dependencies
"[email protected]": {
parents: ["[email protected]", "[email protected]", "[email protected]"], //modules can be required multiple places in the tree
children: [],
source: "npm"
},
"[email protected]": {
parents: ["[email protected]"], //modules can be required multiple places in the tree
children: ["[email protected]"],
source: "npm"
}
}