Skip to content

Commit 3fc9ed3

Browse files
feat: extract used rule
1 parent 9f2abf8 commit 3fc9ed3

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

website/_data/catalog.data.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,26 @@ function extractYAMLRule(source: string): Record<string, unknown>[] {
6363
}
6464

6565
function extractUsedRules(yamls: Record<string, unknown>[]): string[] {
66-
return []
66+
const rules = new Set<string>()
67+
for (const yaml of yamls) {
68+
if (typeof yaml !== 'object' || yaml === null) {
69+
continue
70+
}
71+
extractOneRuleObject(yaml.rule as object, rules)
72+
for (const util of Object.values(yaml.utils as object || {})) {
73+
extractOneRuleObject(util as object, rules)
74+
}
75+
}
76+
return [...rules]
77+
}
78+
79+
function extractOneRuleObject(rule: object, rules: Set<string>) {
80+
if (!rule) {
81+
return
82+
}
83+
for (const ruleName of Object.keys(rule)) {
84+
rules.add(ruleName)
85+
}
6786
}
6887

6988
function extractUsedFeatures(yamls: Record<string, unknown>[]): string[] {

website/src/catalog/RuleList.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const rules = computed(() => getRules(props.filter))
1919
<TransitionGroup class="rule-list" tag="ul">
2020
<li v-for="rule in rules" :key="rule.language + rule.id" class="rule-item">
2121
<div class="rule-header">
22-
<a :href="rule.link" class="rule-name">{{ rule.name }}</a>
22+
<a :href="rule.link" class="rule-name" target="_blank">{{ rule.name }}</a>
2323
<Badge v-if="rule.hasFix" type="tip" text="🛠️ Has Fix" />
2424
<div v-else/>
2525
</div>

0 commit comments

Comments
 (0)