MigrationSource.fromFile constructor Null safety

MigrationSource.fromFile(
  1. Uri uri
)

Implementation

factory MigrationSource.fromFile(Uri uri) {
  final analyzer = CodeAnalyzer(uri);
  final migrationTypes = analyzer.getSubclassesFromFile("Migration", uri);
  if (migrationTypes.length != 1) {
    throw StateError(
      "Invalid migration file. Must contain exactly one 'Migration' subclass. File: '$uri'.",
    );
  }

  final klass = migrationTypes.first;
  final source = klass.toSource();
  final offset = klass.name.offset - klass.offset;
  return MigrationSource(
    source,
    uri.toFilePath(windows: Platform.isWindows),
    offset,
    offset + klass.name.length,
  );
}