detective
v5.2.1 analyze ast require source
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()
.
var found = detective.find(src, opts)
Give some source body src
, return found
with:
found.strings
- an array of each string found in arequire()
found.expressions
- an array of each stringified expression found in arequire()
callfound.nodes
(whenopts.nodes === true
) - an array of AST nodes for each argument found in arequire()
call
Optionally:
opts.word
- specify a different function name instead of"require"
opts.nodes
- whentrue
, populatefound.nodes
opts.isRequire(node)
- a function returning whether an ASTCallExpression
node is a require callopts.parse
- supply options directly to acorn with some support for esprima-style optionsrange
andloc
opts.ecmaVersion
- default: 9
install
With npm do:
npm install detective
license
MIT
npm i detective
Metadata
- MIT
- >=0.8.0
- James Halliday
- released 5/27/2022
Downloads
Maintainers
substack, feross, gkatsev, zertosh, mafintosh, maxogden, thlorenz, terinjokes, jmm, mellowmelon, ashaffer88, balupton, cwmma, jprichardson, indutny, jryans, sethvincent, yoshuawuyts, ungoldman, ahdinosaur, elnounch, parshap, yerkopalma, forbeslindesay, leichtgewicht, garann, bret, anandthakker, mattdesl, hughsk, fpereira1, goto-bus-stop, bpostlethwaite, emilbayes, stevemao, pkrumins, tehshrike, defunctzombie, lukechilds, raynos,