requiresafe-npm-utils

v2.5.3
[![Build Status](https://magnum.travis-ci.com/requiresafe/npm-utils.svg?token=y6kXcG28kZTEjJL8fnHQ)](https://magnum.travis-ci.com/requiresafe/npm-utils)
requireSafe security npm package shrinkwrap

requireSafe (+) npm utilities

Build Status

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"
    }
}
npm i requiresafe-npm-utils

Metadata

  • ISC
  • Whatever
  • ^lift security
  • released 10/19/2015

Downloads

Maintainers