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

Function groupsFromCustomConfig

packages/plugin-eslint/src/lib/meta/groups.ts:93–123  ·  view source on GitHub ↗
(
  rules: RuleData[],
  groups: CustomGroup[],
)

Source from the content-addressed store, hash-verified

91}
92
93export function groupsFromCustomConfig(
94 rules: RuleData[],
95 groups: CustomGroup[],
96): Group[] {
97 const rulesMap = createRulesMap(rules);
98
99 return groups.map(group => {
100 const groupRules = Array.isArray(group.rules)
101 ? Object.fromEntries(group.rules.map(rule => [rule, 1]))
102 : group.rules;
103
104 const { refs, invalidRules } = resolveGroupRefs(groupRules, rulesMap);
105
106 if (invalidRules.length > 0 && Object.entries(groupRules).length > 0) {
107 if (refs.length === 0) {
108 throw new Error(
109 `Invalid rule configuration in group ${group.slug}. All rules are invalid.`,
110 );
111 }
112 logger.warn(
113 `Some rules in group ${group.slug} are invalid: ${invalidRules.join(', ')}`,
114 );
115 }
116
117 return {
118 slug: group.slug,
119 title: group.title,
120 refs,
121 };
122 });
123}
124
125export function createRulesMap(rules: RuleData[]): Record<string, RuleData[]> {
126 return rules.reduce<Record<string, RuleData[]>>(

Callers 2

listAuditsAndGroupsFunction · 0.85

Calls 3

createRulesMapFunction · 0.85
resolveGroupRefsFunction · 0.85
warnMethod · 0.80

Tested by

no test coverage detected