node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »


Cortex Deps Traveller - Travel Package Dep Tree

NPM version Build Status Dependency Status

Traveling cortex packages through dependencies tree.


$ npm install cortex-deps-traveller --save


var traveller = require('cortex-deps-traveller')(built_root, {
  maxDepth: 3
traveller.toJSONTree(pkg, function(err, tree) {
// Advanced Usage, visit will travel the dep tree with BFS (which is better for performance) 
traveller.visit(pkg, {
  enter: function(node, parent) {
      node.pkg; // pkg info 
      node.from; // resolved from 
      if(parent == null) {
        // is root node, with non-parent 
  }, leave: function(node, parent) {
}, function(err) {
  // all things is done 
var Traveller = require('cortex-deps-traveller').Traveller;


new Traveller(built_root, [options])


  • max_depth number
  • dev boolean
  • async boolean
  • pkgDeps function

traveller.toJSONTree(pkg, callback)

Generate dependencies tree from pkg

traveller.visit(pkg, visitor, done)

Visit the dependencies tree of pkg with a visitor

  • pkg {Object} pkg info object
  • visitor {Visitor} visitor
  • done {function} called when all the nodes are visited

traveller.topsort(tree, [rootName])

Return a sorted array from the tree

traveller.toJSONTree(pkg, function(err, json) {
    var sorted = traveller.topsort(json,;
  • tree {Object} dependencies tree
  • rootName {string=} the name of root package in the tree, used for output and cycle-detection

traveller.resolvePackage(name, range|version, callback)

Read package information object from name and range, which utilized the internal cache in traveller

traveller.resolvePackage(name, range, function(err, pkg) {
   // pkg is read from cortex.json 

traveller.resolveRange(name, range, callback)

Return a version resolved from range for package

traveller.resolveRange(name, range, function(err, version) {

traveller.readVersions(name, callback)

Return an array of available versions.

traveller.readVersions(name, function(err, versions) {
  // do something on versions 
  • name {string} package name
  • callback {function}

module.exports.topsort(root, [name])