Wondering what’s next for npm?Check out our public roadmap! »

    ts-plato

    0.0.6 • Public • Published

    ts-plato

    Visualize JavaScript/TypeScript source complexity with plato. Based on es6-plato.

    The Report

    dank-ts-nugs

    Start in 3 steps.

    1. Install. npm install --save-dev ts-plato

    2. Add.

    "scripts" : {
        "complex": "./node_modules/.bin/ts-plato -r -d ./report src",
    }
    
    1. Run. npm run complex

    Installation

    Install the module with: npm install --save-dev ts-plato

    Usage

    From scripts

    //be sure and set your src, output, and any options.
    let src = "./scripts/**/*.js";
    let outputDir = "./artifacts/plato";
     
    let platoArgs = {
      title: "example",
      eslint: {}
    };
     
    //you can use the reports in the callback.
    function callback(reports) {
      let overview = plato.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}`;
    }
     
    //usage is plato.inspect
    plato.inspect(src, outputDir, platoArgs, callback);

    Example Gulpfile

    let gulp = require("gulp");
    let plato = require("ts-plato");
     
    let src = "./scripts/**/*.js";
    let outputDir = "./artifacts/plato";
     
    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: {
        ts: true
      },
      globals: ["require"],
      parserOptions: {
        sourceType: "module",
        ecmaFeatures: {
          jsx: true,
          modules: true
        }
      }
    };
     
    let complexityRules = {};
     
    let platoArgs = {
      title: "example",
      eslint: lintRules,
      complexity: complexityRules
    };
     
    function analysis() {
      return plato.inspect(src, outputDir, platoArgs);
    }
     
    gulp.task("analysis", analysis);

    From the commandline

    Usage : ts-plato [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 linting

    Example

    ts-plato -r -d report src

    Note for Windows Users: If you are on Windows, you might want to put your glob in quotes if you use a tool such as cygwin, conemu or some other emulator, and you are also targeting files in directories, otherwise the emulator might incorrectly expand the glob before it is handled internally by ts-plato. For instance, if you want to use /src/**/*.js and the results are ignoring the root try './src/**/*.js' instead.

    class functions, ya'll

    Data sources

    Contributors

    License

    Licensed under the MIT license.

    Install

    npm i ts-plato

    DownloadsWeekly Downloads

    27

    Version

    0.0.6

    License

    MIT

    Unpacked Size

    1.36 MB

    Total Files

    92

    Last publish

    Collaborators

    • avatar