List<File> migrationFiles

Source

List<File> get migrationFiles {
  Map<int, File> orderMap = migrationDirectory
      .listSync()
      .where((fse) => fse is File && fse.path.endsWith(".migration.dart"))
      .fold({}, (m, fse) {
    var fileName = fse.uri.pathSegments.last;
    var migrationName = fileName.split(".").first;
    var versionNumberString = migrationName.split("_").first;

    try {
      var versionNumber = int.parse(versionNumberString);
      m[versionNumber] = fse;
      return m;
    } catch (e) {
      throw new CLIException(
          "Migration files must have the following format: Version_Name.migration.dart,"
          "where Version must be an integer (optionally prefixed with 0s, e.g. '00000002')"
          " and '_Name' is optional. Offender: ${fse.uri}");
    }
  });

  var sortedKeys = (new List.from(orderMap.keys));
  sortedKeys.sort((int a, int b) => a.compareTo(b));
  return sortedKeys.map((v) => orderMap[v]).toList();
}