Exciting release!Introducing "safe npm". Learn more
Socket
Log inDemoInstall

code-complexity

Package Overview
Dependencies
9
Maintainers
1
Versions
31
Issues
File Explorer

Advanced tools

code-complexity

Measure the churn/complexity score. Higher values mean hotspots where refactorings should happen.

    4.4.2latest
    GitHub

Version published
Maintainers
1
Weekly downloads
794
increased by16.25%

Weekly downloads

Readme

Source

code-complexity

Measure the churn/complexity score. Higher scores reveal hotspots where refactorings should happen.

Build Status Coverage Status Style Status NPM Version

Quoting Michael Feathers (source here):

Often when we refactor, we look at local areas of code. If we take a wider view, using information from our version control systems, we can get a better sense of the effects of our refactoring efforts.

Note: code-complexity currently measures complexity using either:

  • lines of code count (all languages)
  • cyclomatic complexity (JavaScript/TypeScript)
  • halstead complexity (JavaScript/TypeScript)

Usage

$ npx code-complexity <path-to-git-directory or URL> [options]

Help

Usage: code-complexity <target> [options] Measure the churn/complexity score. Higher values mean hotspots where refactorings should happen. Options: -V, --version output the version number --filter <strings> list of globs (comma separated) to filter -cs, --complexity-strategy [strategy] choose the complexity strategy to analyze your codebase with (allowed values: sloc, cyclomatic, halstead). -f, --format [format] format results using table, json or csv -l, --limit [limit] limit the number of files to output -i, --since [since] limit analysis to commits more recent in age than date -u, --until [until] limit analysis to commits older in age than date -s, --sort [sort] sort results (allowed valued: score, churn, complexity or file) -d, --directories display values for directories instead of files -h, --help display help for command Examples: $ code-complexity . $ code-complexity https://github.com/simonrenoult/code-complexity $ code-complexity foo --limit 3 $ code-complexity ../foo --sort score $ code-complexity /foo/bar --filter 'src/**,!src/front/**' $ code-complexity . --limit 10 --sort score $ code-complexity . --limit 10 --directories $ code-complexity . --limit 10 --sort score -cs halstead $ code-complexity . --since=2021-06-01 --limit 100 $ code-complexity . --since=2021-04-01 --until=2021-07-01

Output

$ npx code-complexity https://github.com/simonrenoult/code-complexity --sort=score --limit=3 ┌──────────────────────────────┬────────────┬───────┬───────┐ │ file │ complexity │ churn │ score │ ├──────────────────────────────┼────────────┼───────┼───────┤ │ src/cli.ts │ 103 │ 8 │ 824 │ ├──────────────────────────────┼────────────┼───────┼───────┤ │ test/code-complexity.test.ts │ 107 │ 7 │ 749 │ ├──────────────────────────────┼────────────┼───────┼───────┤ │ .idea/workspace.xml │ 123 │ 6 │ 738 │ └──────────────────────────────┴────────────┴───────┴───────┘

Special thanks

A special thanks to a few contributors that helped me make code-complexity better.

  • Alexander Dormann (alexdo) for fixing the ENOBUFS (and apologies for stealing your code).
  • Scott Brooks (scottamplitude) for initiating the work on complexity strategies

Keywords

FAQs

Last updated on 13 Nov 2022

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • 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