generateLicenseInfo function

Future<List<Package>> generateLicenseInfo({
  1. required String pubspecLockPath,
})

Implementation

Future<List<Package>> generateLicenseInfo({required String pubspecLockPath}) async {
  final pubCacheDir = guessPubCacheDir();
  if (pubCacheDir == null) {
    throw "could not find pub cache directory";
  }
  final pubspecLock = await File(pubspecLockPath).readAsString();
  final pubspec = loadYaml(pubspecLock);
  final packages = pubspec['packages'] as Map;

  final loadedPackages = await Future.wait(
    packages.keys.map(
      (node) => Package.fromMap(
        outerName: node,
        packageJson: packages[node],
        pubCacheDirPath: pubCacheDir,
        flutterDir: flutterDir,
        pubspecLockPath: pubspecLockPath,
      ),
    ),
  );
  return loadedPackages.where((p) => p != null).cast<Package>().toList();
}