Socket
Socket
Sign inDemoInstall

detective

Package Overview
Dependencies
2
Maintainers
2
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    detective

find all require() calls by walking the AST


Version published
Maintainers
2
Install size
554 kB
Created

Package description

What is detective?

The 'detective' npm package is a module dependency analysis tool that helps developers to find out which modules are required in a given JavaScript file. It parses the file, extracts the 'require' statements, and returns a list of dependencies. This is particularly useful for tasks like bundling, minification, and understanding code dependencies.

What are detective's main functionalities?

Detect CommonJS dependencies

This feature allows you to extract all CommonJS dependencies (i.e., modules loaded via 'require') from a JavaScript file. The code reads a JavaScript file, uses detective to parse the file and logs the list of dependencies.

const detective = require('detective');
const fs = require('fs');
const content = fs.readFileSync('/path/to/js/file.js', 'utf8');
const dependencies = detective(content);
console.log(dependencies);

Detect ES6 module dependencies

Using 'detective-es6', a variant of detective tailored for ES6 modules, this feature parses files containing ES6 import statements to determine dependencies. The process involves reading the file, parsing it with detective-es6, and logging the dependencies.

const detective = require('detective-es6');
const fs = require('fs');
const content = fs.readFileSync('/path/to/es6/file.js', 'utf8');
const dependencies = detective(content);
console.log(dependencies);

Other packages similar to detective

Readme

Source

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

install

With npm do:

npm install detective

license

MIT

Keywords

FAQs

Last updated on 22 Oct 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc