luxjs
Version:
Lux JS code style checker
66 lines (56 loc) • 1.27 kB
JavaScript
var minimist = require('minimist');
var argv = minimist(process.argv.slice(2));
var getFlags = require('./get-flags');
var flags = getFlags(argv);
var watchMode = flags.watch || false;
var files = flags.files;
if (!files.length) {
files.push('.');
}
var envs = [];
if (!flags.es5) {
envs.push('es6');
}
if (flags.node) {
envs.push('node');
}
if (flags.browser) {
envs.push('browser');
}
var LuxJS = require('./luxjs');
var engine = new LuxJS({
files: files,
envs: envs,
node: flags.node,
browser: flags.browser,
es5: flags.es5,
fix: flags.fix,
});
// Use default formatter...
var format = null;
// ...unless `--tap` flag used
if (flags.tap) {
format = 'tap';
}
var reporter = engine.getFormatter(format);
var report = engine.executeOnFiles(files);
var didError = report.errorCount > 0;
console.log(reporter(report.results));
if (flags.fix) {
engine.outputFixes(report);
}
if (watchMode) {
var watch = require('node-watch');
watch(files, function (filename) {
var report = engine.executeOnFiles([filename]);
var output = reporter(report.results);
if (!output) {
var chalk = require('chalk');
var tick = '\u2714';
output = chalk.green.bold(tick + ' no problems');
}
console.log(output);
});
} else if (didError) {
process.exit(1);
}