Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Find all calls to require() no matter how crazily nested using a proper walk of the AST

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 example use the latest esprima, remove support for (require) February 02, 2013
Octocat-spinner-32 test Revert "remove esprima-six, go back to esprima" March 18, 2014
Octocat-spinner-32 .gitignore add gitignore November 23, 2012
Octocat-spinner-32 .travis.yml dropping node 0.6 and adding 0.10 to travis config January 20, 2014
Octocat-spinner-32 LICENSE license file March 01, 2013
Octocat-spinner-32 index.js
Octocat-spinner-32 package.json
Octocat-spinner-32 readme.markdown
readme.markdown

detective

find all calls to require() by walking the AST

build status

example

strings

strings_src.js:

var a = require('a');
var b = require('b');
var c = require('c');

strings.js:

var detective = require('detective');
var fs = require('fs');

var src = fs.readFileSync(__dirname + '/strings_src.js');
var requires = detective(src);
console.dir(requires);

output:

$ node examples/strings.js
[ 'a', 'b', 'c' ]

methods

var detective = require('detective');

detective(src, opts)

Give some source body src, return an array of all the require() calls with string arguments.

The options parameter opts is passed along to detective.find().

detective.find(src, opts)

Give some source body src, return an object with "strings" and "expressions" arrays for each of the require() calls.

The "expressions" array will contain the stringified expressions.

Optionally you can specify a different function besides "require" to analyze with opts.word.

You can also specify opts.nodes = true in order to include a "nodes" array which contains an AST node for each of the require() calls.

You can use opts.isRequire(node) to return a boolean signifying whether an esprima AST node is a require call.

You can use opts.parse to supply options parsed to the parser (esprima).

install

With npm do:

npm install detective

license

MIT

Something went wrong with that request. Please try again.