getFiles function

Future<List<FileEntity>> getFiles(
  1. String path,
  2. List<String> excludes,
  3. List<String> includes,
  4. String module,
)

getFiles.

Get all dart files on path directory (e.g. lib directory), recursive to all sub-directories. exclude is the list of string to filter/exclude any files (contain). includes is the list of string to filter/include any files (contain).

Implementation

Future<List<FileEntity>> getFiles(String path, List<String> excludes,
    List<String> includes, String module) async {
  final dir = Directory(path);
  final files = await dir.list(recursive: true).toList();
  final List<FileEntity> list = [];
  files.forEach((element) {
    final String file = element.uri.toString();
    if (file.split(PrintCovConstants.dot).last == PrintCovConstants.dart &&
        (excludes.isEmpty || !_isContain(excludes, file)) &&
        (includes.isEmpty || _isContain(includes, file))) {
      String strFile = replaceSlash(element.uri.toString());
      if (module.isNotEmpty) {
        strFile = strFile.replaceFirst('$module/', '');
      }
      final file = FileEntity(strFile);
      list.add(file);
    }
  });
  list.sort((a, b) => a.compareTo(b));
  return list;
}