0.4.0 • Published 4 years ago

nocuous v0.4.0

Weekly downloads
13
License
MIT
Repository
github
Last release
4 years ago

nocuous

Build Status

A static code analysis tool for JavaScript and TypeScript.

Installation

$ npx nocuous

Commands

stat

Currently the only command (which is also the default command) is stat. stat provides code toxicity statistics for a JavaScript or TypeScript project. The command expects a single input file. If this file is a JavaScript or TypeScript file, it will analyze that file plus any of its dependencies which get imported into that file for code toxicity and output the information to stdout. If the file is a .json file, it is assumed it is a tsconfig.json and uses that to determine what files to analyze. For example to run stats for a project:

$ npx nocuous index.ts

stat can take an options of -o or --output which will write the results as a CSV to the specified file.

stat also accepts multiple input files and glob patterns passed as input files.

Background

The statistics collected around code toxicity are based directly on Eric Dörnenburg's article How toxic is your code?.

The default metrics are based on what is suggested in the article. When applying to TypeScript/JavaScript there are some adaptation that is required:

MetricTable LabelDescriptionDefault Threshold
File lengthLThe number of lines in a file.500
Class fan-out complexityCFACThe number of classes or interfaces in the dependency chain for a given class.30
Class data abstraction couplingCDACThe number of instances of other classes that are "new"ed in a given class.10
Anon Inner LengthAILClass expressions of arrow functions length in number of lines.35
Function LengthFLThe number of statements in a function declaration, function expression, or method declaration.30
Parameter NumberPThe number of parameters for a function or method6
Cyclomatic ComplexityCCThe cyclomatic complexity for a function or method10
Nested if DepthIDThe number of nested if statements.3
Nested try DepthTDThe number of nested try statements.2
Binary Expression ComplexityBECHow complex a binary expression is (e.g. how many && and || keywords an expression contains)3
Missing Switch DefaultMSDAny switch statements that are missing the default case.1
0.4.0

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago