applyFilters method
Detect packages in the workspace with the provided filters.
This is the default packages behaviour when a workspace is loaded.
Implementation
Future<PackageMap> applyFilters(PackageFilters? filters) async {
if (filters == null) return this;
var packageList = await values
.applyIgnore(filters.ignore)
.applyDirExists(filters.dirExists)
.applyFileExists(filters.fileExists)
.filterPrivatePackages(include: filters.includePrivatePackages)
.applyScope(filters.scope)
.applyDependsOn(filters.dependsOn)
.applyNoDependsOn(filters.noDependsOn)
.filterNullSafe(nullSafe: filters.nullSafe)
.filterPublishedPackages(published: filters.published);
final diff = filters.diff;
if (diff != null) {
packageList = await packageList.applyDiff(diff, _logger);
}
packageList = packageList.applyIncludeDependentsOrDependencies(
includeDependents: filters.includeDependents,
includeDependencies: filters.includeDependencies,
);
return PackageMap(
{
for (final package in packageList) package.name: package,
},
_logger,
);
}