docs/core_done.js.html
<!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' && 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 && 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>