fromDirectory static method

DartPackage? fromDirectory(
  1. Directory directory
)

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;
  }
}