Negatory. Postpone Mission.

    grunt-complexity

    1.1.0 • Public • Published

    Grunt-Complexity

    Build Status

    A grunt task that utilizes complexity-report to evaluate the complexity and maintainability of code.

    Versions

    • Use version 0.0.7 for Grunt 0.3.x
    • Use versions 0.1.x for Grunt 0.4.x

    screenshot screenshot

    Usage

    npm install grunt-complexity --save-dev

    Within your grunt file:

        // Project configuration.
        grunt.initConfig({
     
            complexity: {
                generic: {
                    src: ['grunt.js', 'tasks/grunt-complexity.js'],
                    exclude: ['doNotTest.js'],
                    options: {
                        breakOnErrors: true,
                        jsLintXML: 'report.xml',         // create XML JSLint-like report
                        checkstyleXML: 'checkstyle.xml', // create checkstyle report
                        pmdXML: 'pmd.xml',               // create pmd report
                        errorsOnly: false,               // show only maintainability errors
                        cyclomatic: [3, 7, 12],          // or optionally a single value, like 3
                        halstead: [8, 13, 20],           // or optionally a single value, like 8
                        maintainability: 100,
                        hideComplexFunctions: false,     // only display maintainability
                        broadcast: false                 // broadcast data over event-bus
                    }
                }
            }
     
     
        });
     
        grunt.loadNpmTasks('grunt-complexity');
        grunt.registerTask('default', 'complexity');

    What is Cyclomatic and Halstead?

    Documentation on this to come. For now, see jscomplexity.org

    Reporter

    Set the broadcast option to true to send the aggregated data over the grunt-event bus.

    Emitted events are:

    • grunt-complexity.start
    • grunt-complexity.maintainability, payload
    • grunt-complexity.end
    // payload of grunt-complexity.maintainability
    {
      filepath: /path/to/file,
      valid: true|false,
      maintainability: 123.42
    }

    Contributing

    This repo has a submodule, so after you npm install, you'll want to run:

    git submodule init
    git submodule update
    cd test/grunt.0.4
    npm install
    cd ...

    Tests can be run with npm test.

    License

    grunt-complexity is released under the MIT License.

    Contributors


    Code At Viget

    Visit code.viget.com to see more projects from Viget.

    Install

    npm i grunt-complexity

    DownloadsWeekly Downloads

    1,156

    Version

    1.1.0

    License

    MIT

    Last publish

    Collaborators

    • nhunzaker
    • lawson
    • viget