applyFilters method
Future<PackageMap>
applyFilters(
- PackageFilters? filters, {
- PubClientConfig pubConfig = const PubClientConfig(),
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, {
PubClientConfig pubConfig = const PubClientConfig(),
}) 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)
.applyCategories(filters.categories)
.applyDependsOn(filters.dependsOn)
.applyNoDependsOn(filters.noDependsOn)
.filterNullSafe(nullSafe: filters.nullSafe)
.filterPublishedPackages(
published: filters.published,
logger: _logger,
pubConfig: pubConfig,
);
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,
);
}