js-code-metric v1.0.76
js-code-metric
Visualize JavaScript source complexity with js-code-metric.
Based on the older es5 plato, this is a port to es6 and eslint
Start in 3 steps.
Install.
npm install --save-dev js-code-metricAdd.
"scripts" : {
    "js-code-metric": "./node_modules/.bin/jschecker -r -d ./report src",
}- Run. 
npm run js-code-metric 
Installation
Install the module with: npm install --save-dev js-code-metric
Usage
From scripts
//be sure and set your src, output, and any options.
let src = "./scripts/**/*.js";
let outputDir = "./artifacts/jschecker";
let jscheckerArgs = {
  title: "example",
  eslint: {}
};
//you can use the reports in the callback.
function callback(reports) {
  let overview = jschecker.getOverviewReport(reports);
  let { total, average } = overview.summary;
  let output = `total
    ----------------------
    eslint: ${total.eslint}
    sloc: ${total.sloc}
    maintainability: ${total.maintainability}
    average
    ----------------------
    eslint: ${average.eslint}
    sloc: ${average.sloc}
    maintainability: ${average.maintainability}`;
  console.log(output);
}
//usage is jschecker.inspect
jschecker.inspect(src, outputDir, jscheckerArgs, callback);Example Gulpfile
let gulp = require("gulp");
let jschecker = require("jschecker");
let src = "./scripts/**/*.js";
let outputDir = "./artifacts/jschecker";
let lintRules = {
  rules: {
    indent: [2, "tab"],
    quotes: [2, "single"],
    semi: [2, "always"],
    "no-console": [1],
    curly: ["error"],
    "no-dupe-keys": 2,
    "func-names": [1, "always"]
  },
  env: {
    es6: true
  },
  globals: ["require"],
  parserOptions: {
    sourceType: "module",
    ecmaFeatures: {
      jsx: true,
      modules: true
    }
  }
};
let complexityRules = {};
let jscheckerArgs = {
  title: "example",
  eslint: lintRules,
  complexity: complexityRules
};
function analysis() {
  return jschecker.inspect(src, outputDir, jscheckerArgs);
}
gulp.task("analysis", analysis);From the commandline
Usage : js-code-metric [options] -d <output_dir> <input files>
  -h, --help
      Display this help text.
  -q, --quiet
      Reduce output to errors only
  -v, --version
      Print the version.
  -x, --exclude : String
      File exclusion regex
  -d, --dir : String *required*
      The output directory
  -r, --recurse
      Recursively search directories
  -l, --jshint : String
      Specify a jshintrc file for JSHint linting
  -t, --title : String
      Title of the report
  -D, --date : String
      Time to use as the report date (seconds, > 9999999999 assumed to be ms)
  -n, --noempty
      Skips empty lines from line count
  -e, --eslint : String
      Specify a eslintrc file for ESLint lintingExample
js-code-metric -r -d report srcData sources
- Complexity from typhonjs-escomplex
 - Lint data from eslint
 
Contributors
Release History
| version | update | 
|---|---|
| 1.0.0-alpha | Project works with es6 and eslint | 
About
This is currently a reimplementation of the older plato, and started as a fork from https://github.com/deedubs/js-code-metric, but has since been heavily modified. After seeing it was unpublished on npm and also wanting to add more features, This project uses eslint, not jshint for default linting.
I have switched to the typhon-js module since it properly parses classes.
License
Copyright (c) 2019 Rajaprabhu Licensed under the MIT license.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago