grunt-complexity

    1.0.0-alpha • 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@1.0.0-alpha

    Version

    1.0.0-alpha

    License

    MIT

    Last publish

    Collaborators

    • nhunzaker
    • lawson
    • viget