UNPKG

@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
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