Package detail

detective

browserify12.4mMIT5.2.1

find all require() calls by walking the AST

analyze, ast, require, source

readme

detective

find all calls to require() by walking the AST

build status

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 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 with some support for esprima-style options range and loc
  • opts.ecmaVersion - default: 9

install

With npm do:

npm install detective

license

MIT

changelog

detective Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

x.y.z - unreleased

  • update acorn-node to 1.8.2 (make use of acorn 7.x)

5.2.1 - 2022-05-27

  • Update to "minimist": "^1.2.6" from "^1.1.1" to quiet down dependabot security theater.

5.2.0 - 2019-01-28

5.1.0 - 2018-02-28

5.0.2 - 2018-01-06

  • Extend support back to 0.8 until we can determine a LTS plan.

5.0.1 - 2018-01-02

  • Add engines field set to >=4.0.0.

5.0.0 - 2018-01-02