npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

code-insight

v1.0.5

Published

Codebase Health Tracker - A tool for analyzing code complexity and metrics.

Downloads

352

Readme

Codebase Health Tracker npm version npm downloads contributions welcome

A Node.js module for analyzing code quality and complexity metrics across your codebase. This tool helps in monitoring code health by calculating various metrics, including complexity due to control flow, functional and behavioral constructs, TODO comments, error density, and code debt ratio.

Features

  • Control Flow Complexity: Measures complexity based on control flow keywords like if, for, while, etc.
  • Functional Complexity: Evaluates complexity due to functional programming constructs.
  • Behavioral Complexity: Assesses complexity arising from behavioral constructs.
  • TODO Comments: Counts the number of TODO comments in the codebase.
  • Error Density: Tracks the frequency of error-handling constructs.
  • Code Debt Ratio: Identifies if the codebase exceeds a certain number of lines, indicating potential code debt.

Technologies Used

  • Node.js
  • TypeScript
  • chalk for terminal colors
  • cli-table3 for tabular data display
  • fs and path modules for file system operations

Project Structure

codebase-health-tracker/
├── src
│   ├── bin
│   │   └── cli.ts
│   ├── index.ts
│   └── insighter.ts
├── package.json
├── tsconfig.json
├── .gitignore
├── .npmignore
├── LICENSE
├── pnpm-lock.yaml│
└── README.md

Directory and File Explanations

  • Control Flow Complexity: Measures complexity based on control flow keywords like if, for, while, etc.
  • Functional Complexity: Evaluates complexity due to functional programming constructs.
  • Behavioral Complexity: Assesses complexity arising from behavioral constructs.
  • TODO Comments: Counts the number of TODO comments in the codebase.
  • Error Density: Tracks the frequency of error-handling constructs.
  • Large File Indicator: Identifies if the codebase exceeds a certain number of lines, indicating potential code debt.

Technologies Used

  • Node.js
  • TypeScript
  • chalk for terminal colors
  • cli-table3 for tabular data display
  • fs and path modules for file system operations

Installation and Usage

  1. Global Use:

    npm install -g code-insight

    use it in any javascript/typescript project directory from command line

    code-insight directory-path
  2. ECMAScript Module Use:

    install in any javascript/typescript project

    npm install code-insight

    use it in any app/main/index (application root file)

    import { generateReport } from "code-insight";
    
    // Test the generateReport function
    const directoryPath = "src"; // Replace with an actual directory path if needed
    
    generateReport(directoryPath);
  3. CommonJS Module Use:

    install in any javascript/typescript project

    npm install code-insight

    use it in any app/main/index (application root file)

    // Dynamically import the ESM module
    (async () => {
      const { generateReport } = await import("code-insight");
      generateReport("src"); // set directory path here
    })();
    
    OR;
    
    const path = require("path");
    // Define the directory path
    const directoryPath = path.join(__dirname, "src");
    // Dynamically import the ESM module
    (async () => {
      const { generateReport } = await import("code-insight");
      generateReport(directoryPath);
    })();

Benefits

  • Improved Code Quality: Provides detailed insights into different aspects of code complexity, enabling developers to write cleaner, more maintainable code.
  • Enhanced Maintainability: Facilitates identification and management of complex code structures, TODO comments, and error-handling practices to improve overall maintainability.
  • Better Project Management: Offers actionable insights for managing TODO comments and code debt, aiding in effective project planning and tracking.
  • Performance Optimization: Helps identify complex constructs that could impact performance, allowing for targeted optimizations.

Dashboard View

Dashboard Screenshot

Hit Count

Thank You! ❤️