fromDirectory static method
Returns DartPackage if a directory fulfils the requirements of a Dart/Flutter package
- pubspec.yaml
- name in pubspec.yaml (- flutter dependency)
Implementation
static DartPackage? fromDirectory(Directory directory) {
final normalizedDir = Directory(normalize(directory.path));
final pubspec = normalizedDir.file('pubspec.yaml');
if (!pubspec.existsSync()) {
return null;
}
final pubspecYamlContent = pubspec.readAsStringSync();
try {
// Check for valid package name
final doc = loadYamlDocument(pubspecYamlContent);
final pubspec = doc.contents.value as YamlMap;
final packageName = pubspec['name'] as String?;
if (packageName == null) {
return null;
}
// Check for (optional) flutter dependency
final deps = pubspec['dependencies'] as YamlMap?;
final withFlutter = deps?.containsKey('flutter') ?? false;
if (withFlutter) {
return DartPackage.flutter(normalizedDir, packageName);
}
return DartPackage(normalizedDir, packageName);
} on YamlException {
return null;
}
}