UNPKG

stylint

Version:
69 lines (54 loc) 2.19 kB
'use strict' var chalk = require( 'chalk' ) /** * @description format output message for console (default) * @param {string} msg error msg from one of the checks * @param {string} done whether or not this is the last message to output * @param {string} kill whether or not we're over one of our limits * @return {string | Function} either the formatted msg or done() */ var reporter = function( msg, done, kill ) { if ( done === 'done' ) { // total errors this.cache.msg = 'Stylint: ' + this.cache.errs.length + ' Errors.' this.cache.msg += this.config.maxErrors ? ' (Max Errors: ' + this.config.maxErrors + ')' : '' // total warnings this.cache.msg += '\nStylint: ' + this.cache.warnings.length + ' Warnings.' this.cache.msg += this.config.maxWarnings ? ' (Max Warnings: ' + this.config.maxWarnings + ')' : '' // if you set a max it kills the linter if ( kill === 'kill' ) { this.cache.msg += '\nStylint: Over Error or Warning Limit.' } else if ( this.cache.errs.length === 0 && this.cache.warnings.length === 0 ) { this.cache.msg = '' } return this.done() } var file = chalk.underline( this.cache.file ) var col = typeof this.cache.col === 'number' && this.cache.col > 0 ? this.cache.col : null var severity = this.state.severity.toLowerCase() severity = severity === 'warning' ? chalk.yellow( severity ) : chalk.red( severity ) var rule = chalk.grey( this.cache.rule ) // normal error or warning messages var defaultMessage = file + '\n' + this.cache.lineNo + ' ' + rule + ' ' + severity + ' ' + msg // if column data available, output slightly different line if ( typeof this.cache.col === 'number' && this.cache.col > -1 ) { defaultMessage = file + '\n' + this.cache.lineNo + ':' + this.cache.col + ' ' + rule + ' ' + severity + ' ' + msg } // weird syntax highlighting issue when this is inside a ternary var linePlusCol = this.cache.lineNo + ':' + col var messageObj = { file: file, lineData: col ? linePlusCol : this.cache.lineNo, severity: severity, description: msg, rule: rule } messageObj[file] = true this.cache.messages.push( messageObj ) return defaultMessage } module.exports = reporter