Neatly Positioned Magazines

    detective
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/detective package

    5.2.0 • Public • Published

    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

    Install

    npm i detective

    DownloadsWeekly Downloads

    2,654,551

    Version

    5.2.0

    License

    MIT

    Unpacked Size

    20.6 kB

    Total Files

    44

    Last publish

    Collaborators

    • raynos
    • lukechilds
    • defunctzombie
    • substack
    • feross
    • gkatsev
    • zertosh
    • mafintosh
    • maxogden
    • dominictarr
    • 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