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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@tryinget/crap4ts

v0.1.0

Published

CRAP metric calculator for TypeScript and JavaScript using the TypeScript compiler API.

Readme


summary: "Package README for crap4ts, the TypeScript/JavaScript CRAP metric tool." read_when:

  • "You are using crap4ts from the monorepo"
  • "You need package-level CLI behavior or output semantics" type: "reference"

crap4ts

Published as @tryinget/crap4ts.

A TypeScript/JavaScript CRAP metric calculator built on the TypeScript compiler API. crap4ts can be used standalone for hotspot ranking, but it is also the intended companion package for @tryinget/ts-mutate. The repo keeps them as separate packages so teams can adopt hotspot analysis without pulling in mutation testing, while the quality receipt still lets them operate hand in hand.

Features

  • Parses .ts, .tsx, .js, .jsx
  • Extracts named functions and methods with file and line span
  • Computes cyclomatic complexity per function
  • Parses LCOV (lcov.info)
  • Maps line coverage back to function ranges
  • Calculates CRAP scores
  • Sorts output by highest CRAP first
  • Supports path-fragment filtering

Usage

npm exec --yes --package @tryinget/crap4ts -- crap4ts
npm exec --yes --package @tryinget/crap4ts -- crap4ts --src src --lcov coverage/lcov.info
npm exec --yes --package @tryinget/crap4ts -- crap4ts --src src --filter auth/
npm exec --yes --package @tryinget/crap4ts -- crap4ts --json

Coverage-aware workflow

Generate source-mapped LCOV from the package test suite:

npm run coverage --workspace packages/crap4ts

Then run crap4ts against the package-local LCOV:

npm exec --workspace packages/crap4ts -- crap4ts --cwd packages/crap4ts
npm exec --workspace packages/crap4ts -- crap4ts --cwd packages/crap4ts --lcov coverage/lcov.info --json

For a repo-level hotspot receipt that also prints the next ts-mutate command, run:

just quality crap4ts

# npm equivalent
npm run quality -- --package crap4ts

That is the intended companion workflow: use crap4ts to rank hotspots, then hand the suggested file to ts-mutate.

CLI options

  • --src <path>: source root or file. Repeatable. Defaults to src
  • --lcov <path>: explicit LCOV file. If omitted, the tool tries coverage/lcov.info, target/coverage/lcov.info, then lcov.info
  • --filter <fragment>: path fragment filter. Repeatable
  • --json: machine-readable output
  • --cwd <path>: override working directory
  • --help: print usage

Output columns

  • Function: inferred function or method name
  • File: path relative to the working directory
  • Lines: start-end line span
  • CC: cyclomatic complexity
  • Cov%: line coverage percent from LCOV
  • CRAP: calculated CRAP score