New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

deadcode-detective

Package Overview
Dependencies
Maintainers
0
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deadcode-detective

A tool to detect dead code in JavaScript/TypeScript and Python projects

latest
Source
npmnpm
Version
1.1.0
Version published
Weekly downloads
5
400%
Maintainers
0
Weekly downloads
 
Created
Source

Deadcode Detective 🔍

Unmask the silent clutter in your JavaScript, TypeScript, and Python projects.

Deadcode Detective is a sleek CLI tool that sniffs out unused code—those forgotten functions, variables, and exports lurking in your codebase. Powered by ts-prune for JS/TS and vulture for Python, it delivers a clear, colorful report to help you keep your projects lean and clean.

npm version License: MIT GitHub stars

Why Use It?

Dead code is a silent killer—slowing reviews, bloating builds, and hiding bugs. I’ve been there, untangling large codebases where cleanup was a nightmare. Deadcode Detective fixes that:

  • Multi-Language: Targets JavaScript, TypeScript, and Python in one tool.
  • Fast & Unified: Scans in seconds, blending ts-prune and vulture into a single, polished CLI.
  • Pretty Reports: Color-coded output that’s easy to read and act on.
  • Actionable: Pinpoints files, lines, and symbols to zap.

Installation

Grab it from npm:

npm install -g deadcode-detective

Prerequisites

  • JavaScript/TypeScript: Install ts-prune:
npm install -g ts-prune
  • Python: Install vulture:
pip install vulture

Usage

Run the detect command with paths to scan:

deadcode-detective detect --py ./src/test/python --confidence 70

Options

  • --js <path>: Scan JavaScript/TypeScript files.
  • --py <path>: Scan Python files.
  • --confidence <number>: Confidence threshold for Python dead code detection (0-100, default: 60). Throws an error if above 100 or below 0.
  • --format <type>: Output format (cli, html, json, default: cli). Use html for web reports, json for machine-readable output, or cli for terminal output.
  • --output <file>: Output file path (for html or json, defaults to console for json, file 'deadcode-report.' for html).

Advance Usage with Formats

Generate rich, shareable reports using --format and --output:

# HTML report (web view)
deadcode-detective detect --js ./src/test --py ./src/test/python --format html --output report.html

# JSON report (machine-readable)
deadcode-detective detect --js ./src/test --py ./src/test/python --format json --output report.json

Report Example Outputs

HTML Report Preview

The HTML report offers a visually appealing, interactive view with tabs for different languages and collapsible sections for files. Here’s a sample:

image image

Click here to view the HTML report.

JSON Report Preview

The JSON report provides a structured, machine-readable format for automation or CI/CD integration. Here’s an excerpt:

{
  "js": [
    { 
      "file": "src/test/js/unused.js", 
      "symbol": "unusedFunction", 
      "line": 2, 
      "language": "JS" }
  ],
  "py": [
    { 
      "file": "src/test/python/unused.py", 
      "symbol": "unused_function", 
      "line": 1, 
      "language": "Python", 
      "confidence": 60 }
  ],
  "summary": { 
    "totalDeadCode": 2, 
    "timestamp": "Sun, 23 Feb 2025 18:15:28 UTC" 
    }
}

Click here to view the JSON report.

CLI

Below is the CLI structure which gets printed if no format is selected.

🔎 Dead Code Report:

❗ Found 2 unused items in JavaScript/TypeScript:
unused.js:
  - unusedFunction (line 2)
dateFormatter.ts:
  - formatDate (line 1)

❗ Found 1 unused item in Python:
script.py:
  - dead_function (line 5)

If no dead code is found, you’ll see:

✅ No dead code found!

Limitations

For JavaScript, a tsconfig.json is required for full accuracy. Plain JS support is limited but on the roadmap—stay tuned!

Try It Out

Clone the repo and test it on the included examples:

git clone https://github.com/yash9/deadcode-detective.git
cd deadcode-detective
npm install
npm run build
node dist/cli.js detect --js ./src/test/js --py ./src/test/python

The src/test/ folder contains sample JS and Python files with dead code to play with.

How It Works

  • JS/TS: Uses ts-prune to analyze your tsconfig.json-driven project.
  • Python: Leverages vulture with a 60% confidence threshold for reliable detection.
  • Magic: A dash of TypeScript, commander, chalk, and ora for a smooth CLI experience.

Coming Soon: CI/CD integration, JSON/HTML reports, and more!

Contributing

Love it? Hate it? Want to make it better? Contributions are welcome! 🚀

Steps to Contribute:

  • Fork the repository.
  • Create a new branch:
    git checkout -b my-feature;
    
  • Commit changes:
    git commit -m "Add cool thing".
    
  • Push:
    git push origin my-feature.
    
  • Open a PR!

Check issues for ideas or report bugs.

License

This project is licensed under the MIT License © Yash.

See the LICENSE file for more details.

Spread the Word

Found this useful? Give it a ⭐ on GitHub or share it with your crew. Let’s banish dead code together! If you’d like to support my work, consider buying me a coffee—every sip fuels more coding!

Buy Me A Coffee

Questions? Hit me up in the issues

Keywords

deadcode

FAQs

Package last updated on 27 Feb 2025

Did you know?

Socket

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