all files / src/ index.js

73.68% Statements 14/19
100% Branches 0/0
66.67% Functions 4/6
73.68% Lines 14/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                                                                 
/*global require, module */
 
'use strict';
 
var csslint = require('gulp-csslint');
var lazypipe = require('lazypipe');
var util = require('gulp-util');
var gulpFilter = require('gulp-filter');
 
module.exports = validatePipeline;
 
function validatePipeline() {
 
  var pipeline = {
    validateCSS: validateCSS()
  };
 
  var cssFilter = gulpFilter('*.css', {matchBase: true, restore: true});
 
  return pipeline;
 
  function validateCSS() {
    return lazypipe()
      .pipe(function() {
        return cssFilter;
      })
      .pipe(csslint)
      .pipe(csslint.reporter, 'fail')
      .pipe(csslint.reporter, customReporter)
      .pipe(function() {
        return cssFilter.restore;
      });
  }
 
  function customReporter(file) {
    var color = util.colors;
 
    util.log(color.red('Errors in: ' + file.path));
 
    file.csslint.results.forEach(function(result) {
      util.log(color.grey('line ' + result.error.line + ':' + result.error.message));
    });
 
    util.log(color.red(' -- End Errors -- '));
  }
 
}