@@ -12,6 +12,7 @@ import noOnlyTests from 'eslint-plugin-no-only-tests'
1212import prettierPlugin from 'eslint-plugin-prettier'
1313import prettier from 'eslint-config-prettier'
1414import globals from 'globals'
15+ import customRules from 'eslint-plugin-custom-rules'
1516
1617export default [
1718 {
@@ -57,6 +58,7 @@ export default [
5758 '@typescript-eslint' : tseslint ,
5859 'primer-react' : primerReact ,
5960 'jsx-a11y' : jsxA11y ,
61+ 'custom-rules' : customRules ,
6062 } ,
6163 rules : {
6264 // ESLint recommended rules
@@ -98,6 +100,77 @@ export default [
98100 // Disabled rules to review
99101 'no-console' : 'off' , // 800+
100102 '@typescript-eslint/no-explicit-any' : 'off' ,
103+
104+ // Custom rules (disabled by default for now)
105+ 'custom-rules/use-custom-logger' : 'off' ,
106+ } ,
107+ } ,
108+
109+ // Configuration for eslint-rules directory (CommonJS JavaScript files)
110+ {
111+ files : [ 'src/eslint-rules/**/*.js' ] ,
112+ languageOptions : {
113+ ecmaVersion : 2022 ,
114+ sourceType : 'script' ,
115+ globals : {
116+ ...globals . node ,
117+ ...globals . commonjs ,
118+ ...globals . es2020 ,
119+ } ,
120+ } ,
121+ plugins : {
122+ github,
123+ import : importPlugin ,
124+ 'eslint-comments' : eslintComments ,
125+ filenames,
126+ 'no-only-tests' : noOnlyTests ,
127+ prettier : prettierPlugin ,
128+ } ,
129+ rules : {
130+ // ESLint recommended rules
131+ ...js . configs . recommended . rules ,
132+
133+ // GitHub plugin recommended rules
134+ ...github . configs . recommended . rules ,
135+
136+ // Import plugin error rules
137+ ...importPlugin . configs . errors . rules ,
138+
139+ // Allow CommonJS in eslint rules
140+ 'import/no-commonjs' : 'off' ,
141+
142+ // Overrides
143+ 'import/extensions' : [ 'error' , { json : 'always' } ] ,
144+ 'no-empty' : [ 'error' , { allowEmptyCatch : true } ] ,
145+ 'prefer-const' : [ 'error' , { destructuring : 'all' } ] ,
146+
147+ // Disabled rules
148+ 'i18n-text/no-en' : 'off' ,
149+ 'filenames/match-regex' : 'off' ,
150+ camelcase : 'off' ,
151+ 'no-console' : 'off' ,
152+ } ,
153+ } ,
154+
155+ // Disable custom logger rule for logger implementation itself
156+ {
157+ files : [ 'src/observability/logger/**/*.{ts,js}' ] ,
158+ rules : {
159+ 'custom-rules/use-custom-logger' : 'off' ,
160+ } ,
161+ } ,
162+
163+ // Override for scripts, tests, workflows, content-linter, and React files (disable custom logger rule)
164+ {
165+ files : [
166+ '**/scripts/**/*.{ts,js}' ,
167+ '**/tests/**/*.{ts,js}' ,
168+ 'src/workflows/**/*.{ts,js}' ,
169+ 'src/content-linter/**/*.{ts,js}' ,
170+ '**/*.{tsx,jsx}' ,
171+ ] ,
172+ rules : {
173+ 'custom-rules/use-custom-logger' : 'off' ,
101174 } ,
102175 } ,
103176
0 commit comments