Hook up ESLint, fix warnings (including conversion to async I/O).

This commit is contained in:
David Anson 2015-02-24 18:40:37 -08:00
parent d16e1cafc1
commit 160146ac3a
5 changed files with 230 additions and 41 deletions

View file

@ -3,25 +3,42 @@
var fs = require("fs");
var rules = require("./rules");
function lintFile(file, options) {
var results = {};
var contents = fs.readFileSync(file, { encoding: "utf8" });
var lines = contents.split(/\r\n|\n/g);
Object.keys(rules).forEach(function(name) {
var rule = rules[name];
var errors = rule(lines);
if (errors.length) {
results[name] = errors;
function lintFile(file, options, callback) {
fs.readFile(file, { "encoding": "utf8" }, function readFile(err, contents) {
if (err) {
callback(err);
} else {
var lines = contents.split(/\r\n|\n/g);
var result = {};
Object.keys(rules).forEach(function forRule(name) {
var rule = rules[name];
var errors = rule(lines);
if (errors.length) {
result[name] = errors;
}
});
callback(null, result);
}
});
return results;
}
module.exports = function(options) {
module.exports = function markdownlint(options, callback) {
var results = {};
var files = options.files || [];
files.forEach(function(file) {
results[file] = lintFile(file, options);
});
return results;
function lintFiles() {
var file = files.shift();
if (file) {
lintFile(file, options, function lintFileCallback(err, result) {
if (err) {
callback(err);
} else {
results[file] = result;
lintFiles();
}
});
} else {
callback(null, results);
}
}
lintFiles();
};