luxjs
Version:
Lux JS code style checker
53 lines (45 loc) • 1.4 kB
JavaScript
var assign = require('object-assign');
var configBase = require('eslint-config-luxjs');
var configNode = require('eslint-config-luxjs/node');
var configBrowser = { rules: null };
var configEs5 = require('eslint-config-luxjs/es5');
var eslint = require('eslint');
var CLIEngine = eslint.CLIEngine;
function LuxJS (options) {
this.options = options || {};
this.files = this.options.files || [];
this.envs = this.options.envs || [];
this.node = this.options.node || false;
this.browser = this.options.browser || false;
this.es5 = this.options.es5 || false;
this.fix = this.options.fix || false;
// Load default rulesets
this.rules = assign({}, configBase.rules, this.options.rules);
// Node.js-specific rules
if (this.node) {
assign(this.rules, configNode.rules);
}
// Browser-specific rules
if (this.browser) {
assign(this.rules, configBrowser.rules);
}
// Old-school rules
if (this.es5) {
assign(this.rules, configEs5.rules);
}
this.engine = new CLIEngine({
rules: this.rules,
envs: this.envs,
fix: this.fix,
});
}
LuxJS.prototype.executeOnFiles = function executeOnFiles (files) {
return this.engine.executeOnFiles(files);
};
LuxJS.prototype.getFormatter = function getFormatter (name) {
return this.engine.getFormatter(name);
};
LuxJS.prototype.outputFixes = function outputFixes (report) {
return CLIEngine.outputFixes(report);
};
module.exports = LuxJS;