SkillAgentSearch skills...

Cqc

Code Quality Checker - Check your code quality by running one command.

Install / Use

/learn @xcatliu/Cqc
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Code Quality Checker

Build Status npm package npm downloads Coveralls

Check your code quality by running one command.

Supported Languages

  • js, jsx, vue
  • css, less, scss, sass, styl

Quick Start

Install cqc:

npm install -g cqc

Run Code Quality Checker for all JavaScript files in src directory:

cqc src

Output:

Number of files:        12
Source lines of code:   696
Duplicate rate:         3.23%
High complexity rate:   0.00%

Usage

To run cqc, use the following format:

cqc [options] <file|dir|glob>*

For example:

cqc src/file1.js src/file2.js

or

cqc src lib

or

cqc src/**/*.js src/**/*.jsx

Please note that when passing a glob as a parameter, it will be expanded by your shell. The results of the expansion can vary depending on your shell, and its configuration. If you want to use node glob syntax, you have to quote your parameter (using double quotes if you need it to run in Windows), as follows:

cqc "src/**/*.js" "src/**/*.jsx"

Options

Option | Type | Default | Description ------ | ---- | ------- | ----------- Files options | --ext | string | .js | Specify file extensions. --ext is only used when the arguments are directories. If you use glob patterns or file names, then --ext is ignored. --ignore-path | path | | Specify path of ignore file --ignore-pattern | pattern | | Pattern of files to ignore --filter-pattern | pattern | | Output percentage of all files but only details that related to the filter pattern Script options | --jscpd-min-lines | number | 5 | Set the min size of duplication in code lines --jscpd-min-tokens | number | 70 | Set the min size of duplication in code tokens --complexity-max | number | 10 | Set the allowed max complexity of a function Disable options | --disable-base | | | Disable base checker --disable-sloc | | | Disable sloc checker --disable-jscpd | | | Disable jscpd checker --disable-complexity | | | Disable complexity checker Reporter options | -f, --format | string | | Specify an output format. Supported format: json --verbose | | | Verbose mode. A lot more information output --threshold-jscpd | number | | Set the jscpd threshold, process will exit if duplicate rate is more than threshold --threshold-complexity | number | | Set the complexity threshold, process will exit if complexity rate is more than threshold

Examples:

Set the file extensions

cqc src --ext ".js,.jsx"

Set the ignore file path

cqc src/**/*.js --ignore-path ".gitignore,.eslintignore"

Ignore vendors and third-party libraries

cqc src/**/*.js --ignore-pattern "src/vendor/**/*.js,src/third-party/**/*.js"

Output json format

cqc src/**/*.js --format json

Output:

{
    "base": {
        "numberOfFiles": 12
    },
    "sloc": {
        "source": 696
    },
    "jscpd": {
        "percentage": "3.23"
    },
    "complexity": {
        "percentage": "0.00"
    }
}

Verbose mode

cqc src/**/*.js --verbose

Output:

Number of files: 12
File list:
    - E:\github\xcatliu\cqc\src\BaseChecker\index.js
    - E:\github\xcatliu\cqc\src\CheckerResult\cqcReporter.js
    - E:\github\xcatliu\cqc\src\CheckerResult\index.js
    - E:\github\xcatliu\cqc\src\CheckerResult\logStdout.js
    - E:\github\xcatliu\cqc\src\CodeQualityChecker\index.js
    - E:\github\xcatliu\cqc\src\ComplexityChecker\eslintConfig.js
    - E:\github\xcatliu\cqc\src\ComplexityChecker\getParserFromFilepath.js
    - E:\github\xcatliu\cqc\src\ComplexityChecker\index.js
    - E:\github\xcatliu\cqc\src\JscpdChecker\getLanguageFromFilepath.js
    - E:\github\xcatliu\cqc\src\JscpdChecker\index.js
    - E:\github\xcatliu\cqc\src\JscpdChecker\jscpdReporter.js
    - E:\github\xcatliu\cqc\src\SlocChecker\index.js

Physical lines:             854
Source lines of code:       696
Comments:                   36
Single-line comments:       36
Block comments:             0
Mixed source and comments:  0
Empty lines:                122
TODO's:                     1

Duplicate rate:             3.23%
Files of duplicated code:   3
Count of duplicated code:   2
Lines of duplicated code:   28
Duplication details:
    - E:\github\xcatliu\cqc\src\CheckerResult\logStdout.js: 67-71
      E:\github\xcatliu\cqc\src\CheckerResult\logStdout.js: 73-77
    - E:\github\xcatliu\cqc\src\JscpdChecker\index.js: 42-64
      E:\github\xcatliu\cqc\src\JscpdChecker\jscpdReporter.js: 22-44

High complexity rate:                0.00%
Number of functions:                 58
Number of high complexity functions: 0

Set the jscpd threshold

cqc src --threshold-jscpd 3

Output:

Number of files:        12
Source lines of code:   696
Duplicate rate:         3.23%
High complexity rate:   0.00%

Oops, duplicate rate is MORE than threshold 3%, please check the details by adding --verbose option.

API

It's also able to use cqc as a node module:

const CodeQualityChecker = require('cqc');
const codeQualityChecker = new CodeQualityChecker();

// This will return a checkerResult object which include the check result
const cqcResult = codeQualityChecker.check([
    'src'
], {
    ext: '.js',
    ignorePath: '.gitignore,.eslintignore',
    ignorePattern: 'src/vendor/**/*.js,src/third-party/**/*.js',
    filterPattern: 'src/path/to/filterPattern',

    jscpdMinLines: 5,
    jspcdMinTokens: 70,
    complexityMax: 10,

    disableBase: false,
    disableSloc: false,
    disableJscpd: false,
    disableComplexity: false,

    format: undefined,
    verbose: true,
    thresholdJscpd: 3,
    thresholdComplexity: 10
});

// Calling report function will console.log result like cli did
cqcResult.report({
    format: undefined,
    verbose: true,
    thresholdJscpd: 3,
    thresholdComplexity: 10
});

Concept Definition

Concept | Definition ------- | ---------- Number of files | The number of input files Source lines of code | The lines of code except commants and blank lines Lines of duplicated code | Lines of code (more than 5 lines or more than 70 tokens) which is exactly the same between two files, or in different place of one file Duplicate rate | Lines of duplicated code / Source lines of code Complexity | https://en.wikipedia.org/wiki/Cyclomatic_complexity Number of functions | The number of functions Number of high complexity functions | The number of functions which has complexity more than 10 High complexity rate | Number of high complexity functions / Number of functions

View on GitHub
GitHub Stars323
CategoryDevelopment
Updated2d ago
Forks16

Languages

JavaScript

Security Score

80/100

Audited on Mar 31, 2026

No findings