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

Function resolveGroupRefs

packages/plugin-eslint/src/lib/meta/groups.ts:135–168  ·  view source on GitHub ↗
(
  groupRules: Record<string, number>,
  rulesMap: Record<string, RuleData[]>,
)

Source from the content-addressed store, hash-verified

133}
134
135export function resolveGroupRefs(
136 groupRules: Record<string, number>,
137 rulesMap: Record<string, RuleData[]>,
138): { refs: Group['refs']; invalidRules: string[] } {
139 return Object.entries(groupRules).reduce<{
140 refs: Group['refs'];
141 invalidRules: string[];
142 }>(
143 (acc, [rule, weight]) => {
144 const matchedRuleIds = rule.endsWith('*')
145 ? expandWildcardRules(rule, Object.keys(rulesMap))
146 : [rule];
147
148 const matchedRefs = matchedRuleIds.flatMap(ruleId => {
149 const matchingRules = rulesMap[ruleId] || [];
150 const weightPerRule = weight / matchingRules.length;
151
152 return matchingRules.map(ruleData => ({
153 slug: ruleToSlug(ruleData),
154 weight: weightPerRule,
155 }));
156 });
157
158 return {
159 refs: [...acc.refs, ...matchedRefs],
160 invalidRules:
161 matchedRefs.length > 0
162 ? acc.invalidRules
163 : [...acc.invalidRules, rule],
164 };
165 },
166 { refs: [], invalidRules: [] },
167 );
168}

Callers 2

groupsFromCustomConfigFunction · 0.85

Calls 2

expandWildcardRulesFunction · 0.85
ruleToSlugFunction · 0.85

Tested by

no test coverage detected