simplelocalize/simplelocalize-cli

View on GitHub
src/main/java/io/simplelocalize/cli/extraction/files/JavaScriptAndTypeScriptFilesFinder.java

Summary

Maintainability
A
0 mins
Test Coverage
package io.simplelocalize.cli.extraction.files;

import java.nio.file.Path;
import java.util.List;
import java.util.function.Predicate;

public class JavaScriptAndTypeScriptFilesFinder implements FilesFinder
{

  private static final String TS_TSX_JS_JSX = ".*\\.(t|j)s.?$";

  private final BaseExtensionFilesFinder baseExtensionFilesFinder;

  public JavaScriptAndTypeScriptFilesFinder(BaseExtensionFilesFinder baseExtensionFilesFinder)
  {
    this.baseExtensionFilesFinder = baseExtensionFilesFinder;
  }

  @Override
  public List<Path> findFilesToProcess(Path path)
  {
    return baseExtensionFilesFinder.findFiles(path)
            .stream()
            .filter(isJavaScriptOrTypeScriptFile())
            .filter(isNotNodeModule())
            .toList();
  }


  private Predicate<Path> isNotNodeModule()
  {
    return filePath -> {
      String filename = filePath.toString();
      return !filename.contains("node_modules");
    };
  }

  private Predicate<Path> isJavaScriptOrTypeScriptFile()
  {
    return filePath -> {
      String filename = filePath.toString();

      return filename.matches(TS_TSX_JS_JSX);
    };
  }
}