Matthew Butterick 3f36e2ce2c | 7 years ago | |
---|---|---|
.. | ||
example | 7 years ago | |
node_modules | 7 years ago | |
test | 7 years ago | |
.npmignore | 7 years ago | |
.travis.yml | 7 years ago | |
LICENSE | 7 years ago | |
index.js | 7 years ago | |
package.json | 7 years ago | |
readme.markdown | 7 years ago |
readme.markdown
detective
find all calls to require()
by walking the AST
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