package pl.touk.sputnik.processor.eslint; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import pl.touk.sputnik.configuration.Configuration; import pl.touk.sputnik.configuration.GeneralOption; import pl.touk.sputnik.processor.tools.externalprocess.ExternalProcessResultParser; import pl.touk.sputnik.processor.tools.externalprocess.ProcessorRunningExternalProcess; import pl.touk.sputnik.review.filter.FileFilter; import pl.touk.sputnik.review.filter.JavaScriptFilter; import java.io.File; @Slf4j class ESLintProcessor extends ProcessorRunningExternalProcess { private final ESLintExecutor executor; ESLintProcessor(Configuration configuration) { executor = new ESLintExecutor(configuration.getProperty(GeneralOption.ESLINT_RCFILE)); } @Override public FileFilter getReviewFileFilter() { return new JavaScriptFilter(); } @Override public ExternalProcessResultParser getParser() { return new ESLintResultParser(); } @Override public String processFileAndDumpOutput(File fileToReview) { return executor.runOnFile(fileToReview.getAbsolutePath()); } @NotNull @Override public String getName() { return "ESLint"; } }