Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions conf/eslint.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"no-fallthrough": 2,
"no-floating-decimal": 0,
"no-func-assign": 2,
"no-global-strict": 2,
"strict": [2, "function"],
"no-implied-eval": 2,
"no-invalid-regexp": 2,
"no-iterator": 2,
Expand Down Expand Up @@ -78,7 +78,7 @@
"no-use-before-define": 2,
"no-with": 2,
"no-wrap-func": 2,
"no-yoda": 2,
"yoda": [2, "never"],

"block-scoped-var": 0,
"brace-style": 0,
Expand Down
4 changes: 2 additions & 2 deletions eslint.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"no-fallthrough": 2,
"no-floating-decimal": 0,
"no-func-assign": 2,
"no-global-strict": 2,
"global-strict": [2, "never"],
"no-implied-eval": 2,
"no-invalid-regexp": 2,
"no-iterator": 2,
Expand Down Expand Up @@ -79,7 +79,7 @@
"no-use-before-define": 2,
"no-with": 2,
"no-wrap-func": 2,
"no-yoda": 2,
"yoda": [2, "never"],

"block-scoped-var": 0,
"brace-style": [0, "1tbs"],
Expand Down
50 changes: 16 additions & 34 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
var Filter = require('broccoli-filter'),
eslint = require('eslint'),
rules = require('eslint/lib/rules'),
Config = require('eslint/lib/config');
linter = require('eslint').linter,
CLIEngine = require('eslint').CLIEngine;

/**
* Calculates the severity of a eslint.linter.verify result
* @param {Array} result Eslint verify result array
* @param {Object} config Eslint eslint/lib/config
* @return {Number} If the returned number is greater than 0 the result contains errors.
*/
function getResultSeverity (result, config) {
function getResultSeverity (result) {
'use strict';

// count all errors
return result.reduce(function (previous, message) {
var severity;

if (message.fatal) {
return previous + 1;
}

severity = config.rules[message.ruleId][0] || config.rules[message.ruleId];

if (severity === 2) {
if (message.severity === 2) {
return previous + 1;
}

Expand All @@ -46,15 +40,15 @@ var EslintValidationFilter = function(inputTree, options) {
// set inputTree
this.inputTree = inputTree;

// set options defaults
this.options = {
format: options.format ? options.format : undefined,
rulesdir: options.rulesdir ? options.rulesdir : undefined,
config: options.config ? options.config : './node_modules/eslint/conf/eslint.json'
};
options = options || {};

// set formatter
this.formatter = require(this.options.format ? this.options.format : 'eslint/lib/formatters/stylish');
this.formatter = require(options.format || 'eslint/lib/formatters/stylish');

this.cli = new CLIEngine({
configFile: options.config || './node_modules/eslint/conf/eslint.json',
rulePaths: options.rulesdir ? [options.rulesdir] : []
});
};

module.exports = EslintValidationFilter;
Expand All @@ -65,22 +59,10 @@ EslintValidationFilter.prototype.targetExtension = 'js';
EslintValidationFilter.prototype.processString = function (content, relativePath) {
'use strict';

var configHelper = new Config({
config: this.options.config
}),
config,
result,
messages = [];

// set rulesdir if given
if (this.options.rulesdir) {
rules.load(this.options.rulesdir);
}

config = configHelper.getConfig();
var messages = [];

// verify file content
result = eslint.linter.verify(content, config);
var result = this.cli.executeOnText(content).results[0].messages;

// if verification has result
if (result.length) {
Expand All @@ -92,14 +74,14 @@ EslintValidationFilter.prototype.processString = function (content, relativePath
});

// log formatter output
console.log(this.formatter(messages, config));
console.log(this.formatter(messages));

if (getResultSeverity(result, config) > 0) {
if (getResultSeverity(result) > 0) {
// throw error if severe messages exist
throw 'severe rule errors';
}
}

// return unmodified string
return content;
};
};
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"homepage": "https://github.com/makepanic/broccoli-eslint",
"dependencies": {
"broccoli-filter": "^0.1.6",
"eslint": "^0.4.5"
"eslint": "^0.14.1"
},
"devDependencies": {
"mocha": "*",
Expand Down
2 changes: 1 addition & 1 deletion test/fixture/1.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
alert('broccoli');
alert('broccoli');
2 changes: 1 addition & 1 deletion test/fixture/2.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
var broccoli_conf = 'value';
var broccoli_conf = 'value';