MCPcopy Create free account
hub / github.com/code-pushup/cli / markSkippedAuditsAndGroups

Function markSkippedAuditsAndGroups

packages/plugin-lighthouse/src/lib/utils.ts:155–222  ·  view source on GitHub ↗
(
  audits: Audit[],
  groups: Group[],
  options?: FilterOptions,
)

Source from the content-addressed store, hash-verified

153
154// eslint-disable-next-line max-lines-per-function
155export function markSkippedAuditsAndGroups(
156 audits: Audit[],
157 groups: Group[],
158 options?: FilterOptions,
159): {
160 audits: Audit[];
161 groups: Group[];
162} {
163 const {
164 onlyAudits = [],
165 skipAudits = [],
166 onlyCategories = [],
167 } = options ?? {};
168
169 if (
170 onlyCategories.length === 0 &&
171 onlyAudits.length === 0 &&
172 skipAudits.length === 0
173 ) {
174 return { audits, groups };
175 }
176
177 if (onlyCategories.length > 0) {
178 validateOnlyCategories(groups, onlyCategories);
179 }
180
181 if (onlyAudits.length > 0 || skipAudits.length > 0) {
182 validateAudits(audits, onlyAudits);
183 validateAudits(audits, skipAudits);
184 }
185
186 const onlyGroupSlugs = new Set(onlyCategories);
187 const onlyAuditSlugs = new Set(onlyAudits);
188 const skipAuditSlugs = new Set(skipAudits);
189
190 const markedGroups: Group[] = groups.map(group => ({
191 ...group,
192 isSkipped: onlyCategories.length > 0 && !onlyGroupSlugs.has(group.slug),
193 }));
194
195 const validGroupAuditSlugs = new Set(
196 markedGroups
197 .filter(group => !group.isSkipped)
198 .flatMap(group => group.refs.map(ref => ref.slug)),
199 );
200
201 const markedAudits = audits.map(audit => ({
202 ...audit,
203 isSkipped:
204 (onlyAudits.length > 0 && !onlyAuditSlugs.has(audit.slug)) ||
205 (skipAudits.length > 0 && skipAuditSlugs.has(audit.slug)) ||
206 (validGroupAuditSlugs.size > 0 && !validGroupAuditSlugs.has(audit.slug)),
207 }));
208
209 const fullyMarkedGroups = markedGroups.map(group => ({
210 ...group,
211 isSkipped:
212 group.isSkipped ||

Callers 2

processAuditsAndGroupsFunction · 0.85
utils.unit.test.tsFile · 0.85

Calls 2

validateOnlyCategoriesFunction · 0.85
validateAuditsFunction · 0.85

Tested by

no test coverage detected