perform method
Resolves O
after execution.
Throws a PubspecNotFoundError when pubspec.yaml was not found. Throws a PubspecNotValidError when pubspec.yaml contents were invalid.
Implementation
@override
DepsUnusedResults perform() {
final yamlFile = YamlFileFinder.from(params.path);
final yamlMap = YamlMapLoader.from(yamlFile);
final declaredInMain = yamlMap
.packages(DependencyType.mainDependencies)
.difference(params.mainIgnores);
final declaredInDev = yamlMap
.packages(DependencyType.devDependencies)
.difference(params.devIgnores);
final results = DepsUnusedResults(
mainDependencies: _unusedPackages(
DependencyType.mainDependencies,
declaredInMain,
),
devDependencies: {
..._unusedPackages(
DependencyType.devDependencies,
declaredInDev,
),
// if any declared dev dep exists in main, mark it for removal from dev.
...declaredInMain.intersection(declaredInDev),
},
);
if (!results.isEmpty && params.fix) {
DepsCleaner.clean(
yamlFile,
mainDependencies: results.mainDependencies,
devDependencies: results.devDependencies,
);
}
return results;
}