@code-pushup/cli
Version:
A CLI to run all kinds of code quality measurements to align your team with company goals
41 lines • 1.55 kB
JavaScript
export function applyFilters(items, skipItems, onlyItems, key) {
return items.filter(item => {
const itemKey = item[key];
return (!skipItems.includes(itemKey) &&
(onlyItems.length === 0 || onlyItems.includes(itemKey)));
});
}
export function extractSkippedItems(originalItems, filteredItems) {
if (!originalItems || !filteredItems) {
return [];
}
const filteredSlugs = new Set(filteredItems.map(({ slug }) => slug));
return originalItems
.filter(({ slug }) => !filteredSlugs.has(slug))
.map(({ slug }) => slug);
}
export function filterSkippedItems(items) {
return (items ?? [])
.filter(({ isSkipped }) => isSkipped !== true)
.map(({ isSkipped, ...props }) => props);
}
export function isValidCategoryRef(ref, plugins) {
const plugin = plugins.find(({ slug }) => slug === ref.plugin);
if (!plugin) {
return false;
}
switch (ref.type) {
case 'audit':
return plugin.audits.some(({ slug }) => slug === ref.slug);
case 'group':
return plugin.groups?.some(({ slug }) => slug === ref.slug) ?? false;
}
}
export function filterPluginsFromCategories({ categories, plugins, }) {
if (!categories || categories.length === 0) {
return plugins;
}
const validPluginSlugs = new Set(categories.flatMap(category => category.refs.map(ref => ref.plugin)));
return plugins.filter(plugin => validPluginSlugs.has(plugin.slug));
}
//# sourceMappingURL=filter.middleware.utils.js.map