analyze method

Future<PackageMetadata> analyze()

Implementation

Future<PackageMetadata> analyze() async {
  final pubspecFile = File(path.join(packagePath, 'pubspec.yaml'));
  if (!pubspecFile.existsSync()) {
    throw Exception('pubspec.yaml not found at ${pubspecFile.path}');
  }

  final pubspecContent = await pubspecFile.readAsString();
  final pubspecYaml = loadYaml(pubspecContent);

  final packageName = pubspecYaml['name'] as String?;
  final packageVersion = pubspecYaml['version'] as String?;
  final sdkVersion = _getSdkVersion(pubspecYaml);
  final flutterVersion = _getFlutterVersion(pubspecYaml);
  final dependencies = _getDependencies(pubspecYaml);

  final androidConstraints = await _getAndroidConstraints();
  final iosConstraints = await _getIOSConstraints();

  return PackageMetadata(
    packageName: packageName,
    packageVersion: packageVersion,
    sdkVersion: sdkVersion,
    flutterVersion: flutterVersion,
    dependencies: dependencies,
    androidConstraints: androidConstraints,
    iosConstraints: iosConstraints,
  );
}