@@ -42,14 +42,17 @@ const allRules = Object.fromEntries(
42
42
] )
43
43
) ;
44
44
45
- module . exports . meta = {
46
- name : packageMetadata . name ,
47
- version : packageMetadata . version ,
48
- } ;
49
-
50
- module . exports . rules = allRules ;
45
+ const plugin = {
46
+ meta : {
47
+ name : packageMetadata . name ,
48
+ version : packageMetadata . version ,
49
+ } ,
50
+ rules : allRules ,
51
+ configs : { } , // assigned later
52
+ }
51
53
52
- module . exports . configs = Object . keys ( configFilters ) . reduce (
54
+ // eslintrc configs
55
+ Object . assign ( plugin . configs , Object . keys ( configFilters ) . reduce (
53
56
( configs , configName ) => {
54
57
return Object . assign ( configs , {
55
58
[ configName ] : {
@@ -63,4 +66,23 @@ module.exports.configs = Object.keys(configFilters).reduce(
63
66
} ) ;
64
67
} ,
65
68
{ }
66
- ) ;
69
+ ) ) ;
70
+
71
+ // flat configs
72
+ Object . assign ( plugin . configs , Object . keys ( configFilters ) . reduce (
73
+ ( configs , configName ) => {
74
+ return Object . assign ( configs , {
75
+ [ `flat/${ configName } ` ] : {
76
+ plugins : { 'eslint-plugin' : plugin } ,
77
+ rules : Object . fromEntries (
78
+ Object . keys ( allRules )
79
+ . filter ( ( ruleName ) => configFilters [ configName ] ( allRules [ ruleName ] ) )
80
+ . map ( ( ruleName ) => [ `${ PLUGIN_NAME } /${ ruleName } ` , 'error' ] )
81
+ ) ,
82
+ } ,
83
+ } ) ;
84
+ } ,
85
+ { }
86
+ ) ) ;
87
+
88
+ module . exports = plugin ;
0 commit comments