1111// @ts -ignore - named export for rules
1212import { rules as devupUiRules } from '@devup-ui/eslint-plugin'
1313import type { Rule } from 'eslint'
14- // @ts -ignore
14+ import { rules as mdxRules } from 'eslint-plugin-mdx'
1515import eslintPluginPrettier from 'eslint-plugin-prettier'
1616
1717import { appPage , component , componentInterface } from './rules'
@@ -49,13 +49,16 @@ function toKebabCase(str: string): string {
4949}
5050
5151/**
52- * Build wrapped devup-ui rules with "ui/" prefix
52+ * Build wrapped rules from external plugin with prefix
5353 */
54- function buildDevupUiRules ( ) : Record < string , Rule . RuleModule > {
54+ function buildWrappedRules (
55+ externalRules : Record < string , unknown > ,
56+ prefix : string ,
57+ ) : Record < string , Rule . RuleModule > {
5558 const rules : Record < string , Rule . RuleModule > = { }
56- for ( const [ name , rule ] of Object . entries ( devupUiRules ) ) {
59+ for ( const [ name , rule ] of Object . entries ( externalRules ) ) {
5760 const kebabName = toKebabCase ( name )
58- rules [ `ui /${ kebabName } ` ] = wrapRuleForOxlint (
61+ rules [ `${ prefix } /${ kebabName } ` ] = wrapRuleForOxlint (
5962 rule as unknown as Rule . RuleModule ,
6063 )
6164 }
@@ -80,7 +83,10 @@ const plugin = {
8083 prettier : wrapRuleForOxlint ( eslintPluginPrettier . rules ! . prettier ) ,
8184
8285 // @devup -ui/eslint-plugin rules (auto-wrapped for oxlint compatibility)
83- ...buildDevupUiRules ( ) ,
86+ ...buildWrappedRules ( devupUiRules , 'ui' ) ,
87+
88+ // eslint-plugin-mdx rules (auto-wrapped for oxlint compatibility)
89+ ...buildWrappedRules ( mdxRules , 'mdx' ) ,
8490 } ,
8591}
8692
0 commit comments