Skip to content

Instantly share code, notes, and snippets.

@speier
Created May 16, 2012 22:05
Show Gist options
  • Save speier/2714345 to your computer and use it in GitHub Desktop.
Save speier/2714345 to your computer and use it in GitHub Desktop.
node-visitor recursively visits every required file using node-detective
var fs = require('fs');
var path = require('path');
var Module = require('module');
var detective = require('detective');
// node-visitor
function visit(request, parent) {
var fn;
try {
fn = require.resolve(request);
} catch (err) {
fn = Module._resolveFilename(request, parent);
}
if (!path.existsSync(fn)) {
return;
}
console.log(fn);
var src = fs.readFileSync(fn);
var requires = detective(src);
requires.forEach(function(item) {
visit(item, {
id: request,
filename: fn
});
})
};
visit('../lib/application');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment