dgraph
v0.13.0
Published
Extract and transform dependency graphs
Readme
dgraph
dgraph is a replacement for module-deps which:
- is almost fully compatible with
module-depsfor the exception of different caching mechanism, otherwise it reuses test suite frommodule-deps - allows you to extract dependencies and enrich modules via module transforms (in addition to source transform)
Installation
% npm install dgraphUsage
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)Global transforms
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/.
Module transforms
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 and
graph. 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} })
}