Skip to content

Commit b991f9d

Browse files
authored
Add ESLint path variables (#217)
1 parent ba7bce3 commit b991f9d

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

src/main/java/pl/touk/sputnik/configuration/GeneralOption.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ public enum GeneralOption implements ConfigurationOption {
7171

7272
ESLINT_ENABLED("eslint.enabled", "ESLint enabled", "false"),
7373
ESLINT_RCFILE("eslint.rcfile", "ESLint rcfile", null),
74+
ESLINT_EXECUTABLE("eslint.executable", "ESLint executable", "eslint"),
75+
ESLINT_PLUGINS_FOLDER("eslint.pluginsFolder", "ESLint plugin folder", null),
7476

7577
PYLINT_ENABLED("pylint.enabled", "Pylint enabled", "false"),
7678
PYLINT_RCFILE("pylint.rcfile", "Pylint rcfile", null),

src/main/java/pl/touk/sputnik/processor/eslint/ESLintExecutor.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,30 @@
88

99
class ESLintExecutor {
1010

11-
private static final String ESLINT_EXECUTABLE = "eslint";
1211
private static final String[] ESLINT_OUTPUT_FORMAT = {"--format", "json"};
1312
private static final String ESLINT_RCFILE_NAME = "--config";
13+
private static final String ESLINT_RESOLVE_PLUGINS_RELATIVE_TO = "--resolve-plugins-relative-to";
1414

1515
private final String eslintRcFile;
16+
private final String eslintExecutable;
17+
private final String pluginsFolder;
1618

17-
ESLintExecutor(String eslintRcFile) {
19+
ESLintExecutor(String eslintRcFile, String eslintExecutable, String pluginsFolder) {
1820
this.eslintRcFile = eslintRcFile;
21+
this.eslintExecutable = eslintExecutable;
22+
this.pluginsFolder = pluginsFolder;
1923
}
2024

2125
String runOnFile(String filePath) {
2226
return new ExternalProcess().executeCommand(buildParams(filePath));
2327
}
2428

2529
private String[] buildParams(String filePath) {
26-
List<String> args = Lists.newArrayList(ESLINT_EXECUTABLE);
30+
List<String> args = Lists.newArrayList(eslintExecutable);
2731
args.addAll(Arrays.asList(ESLINT_OUTPUT_FORMAT));
32+
if (pluginsFolder != null) {
33+
args.addAll(Arrays.asList(ESLINT_RESOLVE_PLUGINS_RELATIVE_TO, pluginsFolder));
34+
}
2835
if (eslintRcFile != null) {
2936
args.addAll(Arrays.asList(ESLINT_RCFILE_NAME, eslintRcFile));
3037
}

src/main/java/pl/touk/sputnik/processor/eslint/ESLintProcessor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ class ESLintProcessor extends ProcessorRunningExternalProcess {
1717
private final ESLintExecutor executor;
1818

1919
ESLintProcessor(Configuration configuration) {
20-
executor = new ESLintExecutor(configuration.getProperty(GeneralOption.ESLINT_RCFILE));
20+
executor = new ESLintExecutor(configuration.getProperty(GeneralOption.ESLINT_RCFILE),
21+
configuration.getProperty(GeneralOption.ESLINT_EXECUTABLE),
22+
configuration.getProperty(GeneralOption.ESLINT_PLUGINS_FOLDER));
2123
}
2224

2325
@Override

src/main/java/pl/touk/sputnik/processor/eslint/ESLintResultParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package pl.touk.sputnik.processor.eslint;
22

33
import com.fasterxml.jackson.core.type.TypeReference;
4+
import com.fasterxml.jackson.databind.DeserializationFeature;
45
import com.fasterxml.jackson.databind.ObjectMapper;
56
import pl.touk.sputnik.processor.eslint.json.FileViolations;
67
import pl.touk.sputnik.processor.eslint.json.Message;
@@ -14,7 +15,7 @@
1415

1516
class ESLintResultParser implements ExternalProcessResultParser {
1617

17-
private final ObjectMapper objectMapper = new ObjectMapper();
18+
private final ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
1819

1920
@Override
2021
public List<Violation> parse(String output) {

0 commit comments

Comments
 (0)