SimenB/stylint

View on GitHub
docs/core_done.js.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Source: core/done.js</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Source: core/done.js</h1>

    



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>'use strict'

var columnify = require( 'columnify' )

function getExitCode( errsLength, warningsLength, maxErrors, maxWarnings ) {
    if ( errsLength > 0 ) {
        if ( typeof maxErrors === 'number' ) {
            if ( errsLength > maxErrors ) return 1
        }
        else return 1
    }

    if ( typeof maxWarnings === 'number' &amp;&amp; warningsLength > maxWarnings ) return 1

    return 0
}

/**
 * @description outputs our messages, wipes errs/warnings if watching
 * @returns {Object | Function} returns process exit if not watching, or obj otherwise
 */
var done = function() {
    var warningsOrErrors = []
    var msg = ''
    var groupedByFile = {}
    var msgGrouped
    var group = this.config.groupOutputByFile
    var opts = this.config.reporterOptions || {}

    this.state.exitCode = getExitCode( this.cache.errs.length, this.cache.warnings.length, this.config.maxErrors, this.config.maxWarnings )

    // when testing we want to silence the console a bit, so we have the quiet option
    if ( !this.state.quiet ) {
        warningsOrErrors = [].concat( this.cache.errs, this.cache.warnings )
            .filter( function( str ) { return !!str } )

        // by default group warnings and errs by file
        if ( group &amp;&amp; this.cache.messages ) {
            this.cache.messages.forEach( function( output ) {
                var file = output.file

                if ( groupedByFile.hasOwnProperty( file ) ) {
                    groupedByFile[file].push( output )
                }
                else {
                    groupedByFile[file] = [output]
                }
            } )

            // iterate over arrays of message objects
            // each array consists of all the errors and warnings for a file
            // columnify the errors/warnings and prefix them with the file name
            msgGrouped = Object.keys( groupedByFile ).map( function( key ) {
                return key + '\n' + columnify( groupedByFile[key], opts ) + '\n\n'
            } )
        }

        if ( warningsOrErrors.length ) {
            if ( group ) {
                msg += msgGrouped
            }
            else {
                msg = warningsOrErrors.join( '\n\n' ) + '\n\n'
            }
        }

        msg += this.cache.msg

        if ( msg ) {
            console.log( msg )
        }
    }

    // don't kill the linter if watch is watching
    // else there's no more to do, so exit the process
    if ( !this.state.watching ) {
        this.callback( this.state.exitCode || null )
        return process.exit( this.state.exitCode )
    }

    var returnValue = {
        errs: this.cache.errs.slice( 0 ),
        warnings: this.cache.warnings.slice( 0 ),
        exitCode: this.state.exitCode,
        msg: this.cache.msg
    }

    // if watching we reset the errors/warnings arrays
    this.cache.errs = []
    this.cache.warnings = []

    return returnValue
}

module.exports = done
</code></pre>
        </article>
    </section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#blocks">blocks</a></li><li><a href="global.html#brackets">brackets</a></li><li><a href="global.html#checkPrefix">checkPrefix</a></li><li><a href="global.html#checkPseudo">checkPseudo</a></li><li><a href="global.html#colons">colons</a></li><li><a href="global.html#colors">colors</a></li><li><a href="global.html#commaSpace">commaSpace</a></li><li><a href="global.html#commentSpace">commentSpace</a></li><li><a href="global.html#config">config</a></li><li><a href="global.html#cssLiteral">cssLiteral</a></li><li><a href="global.html#depthLimit">depthLimit</a></li><li><a href="global.html#done">done</a></li><li><a href="global.html#duplicates">duplicates</a></li><li><a href="global.html#efficient">efficient</a></li><li><a href="global.html#extendPref">extendPref</a></li><li><a href="global.html#getFiles">getFiles</a></li><li><a href="global.html#hashEnd">hashEnd</a></li><li><a href="global.html#hashStart">hashStart</a></li><li><a href="global.html#indentPref">indentPref</a></li><li><a href="global.html#init">init</a></li><li><a href="global.html#keyframesEnd">keyframesEnd</a></li><li><a href="global.html#keyframesStart">keyframesStart</a></li><li><a href="global.html#leadingZero">leadingZero</a></li><li><a href="global.html#lint">lint</a></li><li><a href="global.html#mixed">mixed</a></li><li><a href="global.html#msg">msg</a></li><li><a href="global.html#namingConvention">namingConvention</a></li><li><a href="global.html#noImportant">noImportant</a></li><li><a href="global.html#none">none</a></li><li><a href="global.html#parenSpace">parenSpace</a></li><li><a href="global.html#parse">parse</a></li><li><a href="global.html#placeholders">placeholders</a></li><li><a href="global.html#prefixVarsWithDollar">prefixVarsWithDollar</a></li><li><a href="global.html#quotePref">quotePref</a></li><li><a href="global.html#read">read</a></li><li><a href="global.html#reporter">reporter</a></li><li><a href="global.html#resetOnChange">resetOnChange</a></li><li><a href="global.html#rootEnd">rootEnd</a></li><li><a href="global.html#rootStart">rootStart</a></li><li><a href="global.html#semicolons">semicolons</a></li><li><a href="global.html#setConfig">setConfig</a></li><li><a href="global.html#setContext">setContext</a></li><li><a href="global.html#setState">setState</a></li><li><a href="global.html#sortOrder">sortOrder</a></li><li><a href="global.html#splitAndStrip">splitAndStrip</a></li><li><a href="global.html#stackedProperties">stackedProperties</a></li><li><a href="global.html#startsWithComment">startsWithComment</a></li><li><a href="global.html#state">state</a></li><li><a href="global.html#stylintOff">stylintOff</a></li><li><a href="global.html#stylintOn">stylintOn</a></li><li><a href="global.html#trailingWhitespace">trailingWhitespace</a></li><li><a href="global.html#trimLine">trimLine</a></li><li><a href="global.html#universal">universal</a></li><li><a href="global.html#watch">watch</a></li><li><a href="global.html#zeroUnits">zeroUnits</a></li><li><a href="global.html#zIndexNormalize">zIndexNormalize</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Sun Oct 09 2016 22:18:45 GMT+0200 (CEST)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>