Files
2013-04-04 08:54:25 -04:00

49 lines
1.3 KiB
JavaScript

/*jslint node: true, sloppy: true */
/*globals LINTER_PATH, load */
var CSSLint = require("./csslint-node").CSSLint;
exports.lint = function (code, config) {
var results = [];
var ruleset = {};
// rules that are `false` will be ignored.
for (var ruleName in config) {
if (config[ruleName] === 'warning') {
ruleset[ruleName] = 1;
// Rules set to `true` or 'error' will be considered errors
} else if (config[ruleName]) {
ruleset[ruleName] = 2;
}
}
var report = CSSLint.verify(code, ruleset);
report.messages.forEach(function (message) {
if (message) {
// message.type // warning|error
// message.line
// message.col
// message.message
// message.evidence // Requires sanitizing as it can include CR, LF
// message.rule // The rule object
// We don't pass on the rollup messages
if (message.rollup !== true) {
results.push({
'line': message.line,
'character': message.col,
'type': message.type,
'reason': message.message
});
}
}
});
return results;
};