mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-10-31 22:39:08 +00:00 
			
		
		
		
	
		
			
	
	
		
			82 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # 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 |