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