( urls: string[], preset: AxePreset, )
| 18 | |
| 19 | /** Loads and processes Axe rules into audits and groups, expanding for multiple URLs if needed. */ |
| 20 | export function processAuditsAndGroups( |
| 21 | urls: string[], |
| 22 | preset: AxePreset, |
| 23 | ): { |
| 24 | audits: Audit[]; |
| 25 | groups: Group[]; |
| 26 | ruleIds: string[]; |
| 27 | } { |
| 28 | const rules = loadAxeRules(preset); |
| 29 | const ruleIds = rules.map(({ ruleId }) => ruleId); |
| 30 | const audits = transformRulesToAudits(rules); |
| 31 | const groups = transformRulesToGroups(rules); |
| 32 | |
| 33 | logger.info( |
| 34 | formatMetaLog( |
| 35 | `Loaded ${pluralizeToken('Axe rule', rules.length)} for ${ansis.bold(AXE_PRESET_NAMES[preset])} preset, mapped to audits`, |
| 36 | ), |
| 37 | ); |
| 38 | logger.info( |
| 39 | formatMetaLog( |
| 40 | `Created ${pluralizeToken('group', groups.length)} from Axe categories`, |
| 41 | ), |
| 42 | ); |
| 43 | |
| 44 | if (!shouldExpandForUrls(urls.length)) { |
| 45 | return { audits, groups, ruleIds }; |
| 46 | } |
| 47 | |
| 48 | const expandedAudits = expandAuditsForUrls(audits, urls); |
| 49 | const expandedGroups = expandGroupsForUrls(groups, urls); |
| 50 | logger.info( |
| 51 | formatMetaLog( |
| 52 | `Expanded audits (${audits.length} → ${expandedAudits.length}) and groups (${groups.length} → ${expandedGroups.length}) for ${pluralizeToken('URL', urls.length)}`, |
| 53 | ), |
| 54 | ); |
| 55 | return { audits: expandedAudits, groups: expandedGroups, ruleIds }; |
| 56 | } |
no test coverage detected