gulp-jade-lint
Version:
Gulp plugin for jade-lint
48 lines (36 loc) • 1.2 kB
JavaScript
var gutil = require('gulp-util');
var through = require('through2');
var JadeLint = require('jade-lint');
var RcLoader = require('rcloader');
var configParser = require('./config_parser');
module.exports = function(options) {
var rc = new RcLoader('.jade-lintrc', options);
return through.obj(function(file, enc, cb) {
if (file.isNull()) {
return cb(null, file);
}
if (file.isStream()) {
return cb(new gutil.PluginError('gulp-jade-lint', 'streaming not supported'));
}
rc.for(file.path, function(errRc, conf) {
if (errRc) {
return cb(new gutil.PluginError('gulp-jade-lint', errRc));
}
try {
var linter = new JadeLint();
linter.configure(configParser(conf));
var errors = linter.checkFile(file.path);
if (errors.length) {
gutil.log(gutil.colors.cyan(errors.length) + ' issues found in ' + gutil.colors.magenta(file.path));
errors.forEach(function(error) {
gutil.log(error.message);
});
}
} catch (errLint) {
return cb(new gutil.PluginError('gulp-jade-lint', errLint));
}
cb(null, file);
});
});
};
;