Detective
Find all calls to require() no matter how deeply nested using a proper walk of the AST
Install / Use
/learn @browserify/DetectiveREADME
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.nodesopts.isRequire(node)- a function returning whether an ASTCallExpressionnode is a require callopts.parse- supply options directly to acorn with some support for esprima-style optionsrangeandlocopts.ecmaVersion- default: 9
install
With npm do:
npm install detective
license
MIT
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
340.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.2kCommit, push, and open a PR

