Extract and transform dependency graphs
npm install dgraphdgraph is a replacement for module-deps which:
* is almost fully compatible with module-deps for the exception of
different caching mechanism, otherwise it reuses test suite from
module-deps
* allows you to extract dependencies and enrich modules via module transforms
(in addition to source transform)
% npm install dgraph
dgraph is fully compatible with module-deps so you all configuration options
and API are the same:
var dgraph = require('dgraph'),
JSONStream = require('JSONStream')
dgraph('./app.coffee', {transform: 'coffeeify'})
.pipe(JSONStream.stringify())
.pipe(process.stdout)
Transforms specified via command line or function arguments only works for
modules not in node_modules/ (this is behaviour of module-deps also).
dgraph also supports globalTransform argument which allows to specify
transforms for all modules even those in node_modules/.
In addition to source transforms which are supported by module-deps, there's
module transforms which can transform modules themselves.
For dgraph to distinguish between source and module transforms you should
define a module transform as a function of two arguments — filename andgraph. That way module transforms can use Graph API to resolve dependencies.
Even extraction of CommonJS dependencies implemented as a module transform:
var detective = require('detective')
module.exports = function(mod, graph) {
if (graph.opts.noParse && graph.opts.noParse.indexOf(mod.id) > -1) return
var deps = detective(mod.source)
return graph.resolveMany(deps, mod)
.then(function(deps) { return {deps: deps} })
}