package pl.touk.sputnik.processor.tslint; 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.TypeScriptFilter; import java.io.File; @Slf4j public class TSLintProcessor extends ProcessorRunningExternalProcess { private static final String SOURCE_NAME = "TSLint"; private final TSLintScript tsLintScript; private final TSLintResultParser resultParser; public TSLintProcessor(Configuration config) { String tsScript = config.getProperty(GeneralOption.TSLINT_SCRIPT); String configFile = config.getProperty(GeneralOption.TSLINT_CONFIGURATION_FILE); tsLintScript = new TSLintScript(tsScript, configFile); tsLintScript.validateConfiguration(); resultParser = new TSLintResultParser(); } @NotNull @Override public String getName() { return SOURCE_NAME; } @Override public FileFilter getReviewFileFilter() { return new TypeScriptFilter(); } @Override public ExternalProcessResultParser getParser() { return resultParser; } @Override public String processFileAndDumpOutput(File fileToReview) { return tsLintScript.reviewFile(fileToReview.getAbsolutePath()); } }