You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							1.7 KiB
						
					
					
				# detective | 
						|
 | 
						|
find all calls to `require()` by walking the AST | 
						|
 | 
						|
[](http://travis-ci.org/browserify/detective) | 
						|
 | 
						|
# example | 
						|
 | 
						|
## strings | 
						|
 | 
						|
strings_src.js: | 
						|
 | 
						|
``` js | 
						|
var a = require('a'); | 
						|
var b = require('b'); | 
						|
var c = require('c'); | 
						|
``` | 
						|
 | 
						|
strings.js: | 
						|
 | 
						|
``` 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 | 
						|
 | 
						|
``` js | 
						|
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 a `require()` | 
						|
* `found.expressions` - an array of each stringified expression found in a | 
						|
`require()` call | 
						|
* `found.nodes` (when `opts.nodes === true`) - an array of AST nodes for each | 
						|
argument found in a `require()` call | 
						|
 | 
						|
Optionally: | 
						|
 | 
						|
* `opts.word` - specify a different function name instead of `"require"` | 
						|
* `opts.nodes` - when `true`, populate `found.nodes` | 
						|
* `opts.isRequire(node)` - a function returning whether an AST `CallExpression` | 
						|
node is a require call | 
						|
* `opts.parse` - supply options directly to | 
						|
[acorn](https://npmjs.org/package/acorn) with some support for esprima-style | 
						|
options `range` and `loc` | 
						|
* `opts.ecmaVersion` - default: 9 | 
						|
 | 
						|
# install | 
						|
 | 
						|
With [npm](https://npmjs.org) do: | 
						|
 | 
						|
``` | 
						|
npm install detective | 
						|
``` | 
						|
 | 
						|
# license | 
						|
 | 
						|
MIT
 | 
						|
 |