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

@husniadil/codebase-analyzer

v0.0.2

Published

A compr ehensive tool for analyzing and summarizing codebases, supporting multiple file types and providing detailed file tree views and context extraction.

Downloads

8

Readme

Codebase Analyzer

The Codebase Analyzer is a utility for analyzing codebases. It helps in gathering file information, counting tokens, and ensuring memory usage stays within specified limits.

Installation

To use the Codebase Analyzer in your project, install it via npm:

npm install @husniadil/codebase-analyzer

Usage

Here is an example of how to use the Codebase Analyzer in your application:

Importing and Configuring

First, import the CodebaseAnalyzer class and configure it according to your needs:

import { CodebaseAnalyzer } from "codebase-analyzer";
import { Config } from "codebase-analyzer/types";

const config: Config = {
  directory: "./src",
  relevantExtensions: [".ts", ".js"],
  maxFileSize: 200_000,
  maxTokens: 50_000,
  ignorePatterns: ["node_modules", "dist"],
  ignoreFilesWithNoExtension: true,
  memoryLimitMB: 128,
};

const analyzer = new CodebaseAnalyzer(config);

Analyzing the Codebase

To analyze the codebase, call the analyze method:

analyzer.analyze().then((output) => {
  console.log("Analysis Output:", output);
}).catch((error) => {
  console.error("Error during analysis:", error);
});

Example Configuration

Here is a more detailed example configuration:

const config: Config = {
  directory: "./my-project",
  relevantExtensions: [".ts", ".js", ".jsx", ".tsx"],
  maxFileSize: 100_000,
  maxTokens: 100_000,
  ignorePatterns: ["node_modules", "build", "dist"],
  ignoreFilesWithNoExtension: true,
  memoryLimitMB: 64,
};

const analyzer = new CodebaseAnalyzer(config);

analyzer.analyze().then((output) => {
  console.log("Analysis Output:", output);
}).catch((error) => {
  console.error("Error during analysis:", error);
});

API

CodebaseAnalyzer

Constructor

new CodebaseAnalyzer(config: Config)
  • config: Configuration object for the analyzer.

Methods

  • analyze(): Promise<Output>: Analyzes the codebase and returns the analysis output.

Configuration Options

  • directory (string): The root directory to analyze.
  • relevantExtensions (string[]): List of file extensions to include in the analysis.
  • maxFileSize (number): Maximum file size (in bytes) to process.
  • maxTokens (number): Maximum number of tokens to process.
  • ignorePatterns (string[]): List of directory patterns to ignore.
  • ignoreFilesWithNoExtension (boolean): Whether to ignore files with no extension.
  • memoryLimitMB (number): Memory limit in megabytes.

Output

The analyze method returns a Promise that resolves to an Output object containing the analysis results.

Error Handling

If the memory usage exceeds the specified limit, an error will be thrown. Ensure to handle this in your application:

analyzer.analyze().catch((error) => {
  console.error("Error during analysis:", error);
});

License

This project is licensed under the MIT License. See the LICENSE file for details.

For more details, refer to the source code and documentation in the src directory.