UNPKG

luxjs

Version:

Lux JS code style checker

53 lines (45 loc) 1.4 kB
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;