11import github from 'eslint-plugin-github'
22import globals from 'globals'
33
4- const { browser, internal, react, recommended} = github . getFlatConfigs ( )
4+ const { browser, internal, react, recommended, typescript} = github . getFlatConfigs ( )
5+ const javascriptFiles = [ '**/*.{js,mjs,cjs,jsx}' ]
6+ const typescriptFiles = [ '**/*.{ts,mts,cts,tsx}' ]
7+ const configFiles = [ '**/*.config.{js,mjs,cjs,ts,mts,cts}' ]
8+ const declarationFiles = [ '**/*.d.{ts,mts,cts}' ]
59const nodeFiles = [ 'tests/**/*.js' , 'lib/octicons_node/{index.js,tests/**/*.js}' ]
6- const reactFiles = [ 'lib/octicons_{react,styled}/{pages,script,src}/**/*.{js,mjs}' ]
7- const lintFiles = [ ...nodeFiles , ...reactFiles ]
10+ const reactFiles = [ 'lib/octicons_{react,styled}/{pages,script,src,ts-tests}/**/*.{js,mjs,jsx,ts,tsx}' ]
11+ const testFiles = [ '**/{__tests__,tests,ts-tests}/**/*.{js,mjs,cjs,jsx,ts,tsx}' ]
12+ const typeTestFiles = [ '**/ts-tests/**/*.{ts,mts,cts,tsx}' ]
13+ const lintFiles = [ ...javascriptFiles , ...typescriptFiles ]
814
915export default [
10- {
11- ignores : [ 'lib/octicons_react/src/__generated__/**' , 'lib/octicons_styled/src/__generated__/**' ] ,
12- } ,
16+ { ignores : [ '**/__generated__/**' , '**/{build,coverage,dist}/**' , '**/.{cache,next}/**' , 'public/**' , 'vendor/**' ] } ,
1317 { ...recommended , files : lintFiles } ,
18+ ...typescript . map ( config => ( { ...config , files : typescriptFiles } ) ) ,
1419 { ...internal , files : nodeFiles } ,
1520 { ...browser , files : reactFiles } ,
1621 { ...react , files : reactFiles } ,
@@ -42,6 +47,34 @@ export default [
4247 'import/no-commonjs' : 'off' ,
4348 } ,
4449 } ,
50+ {
51+ files : configFiles ,
52+ rules : {
53+ 'github/filenames-match-regex' : 'off' ,
54+ 'import/extensions' : 'off' ,
55+ 'import/no-commonjs' : 'off' ,
56+ 'import/no-named-as-default' : 'off' ,
57+ 'import/no-unresolved' : 'off' ,
58+ } ,
59+ } ,
60+ {
61+ files : testFiles ,
62+ rules : {
63+ 'import/extensions' : 'off' ,
64+ 'import/no-commonjs' : 'off' ,
65+ 'import/no-dynamic-require' : 'off' ,
66+ 'import/no-named-as-default' : 'off' ,
67+ 'import/no-namespace' : 'off' ,
68+ } ,
69+ } ,
70+ {
71+ files : declarationFiles ,
72+ rules : {
73+ '@typescript-eslint/no-explicit-any' : 'off' ,
74+ 'import/extensions' : 'off' ,
75+ 'import/no-namespace' : 'off' ,
76+ } ,
77+ } ,
4578 {
4679 files : reactFiles ,
4780 rules : {
@@ -52,7 +85,7 @@ export default [
5285 } ,
5386 } ,
5487 {
55- files : [ 'lib/octicons_{react,styled} /script/**/*.js' ] ,
88+ files : [ '** /script/**/*.js' ] ,
5689 rules : {
5790 'import/extensions' : 'off' ,
5891 'import/no-commonjs' : 'off' ,
@@ -73,4 +106,11 @@ export default [
73106 'i18n-text/no-en' : 'off' ,
74107 } ,
75108 } ,
109+ {
110+ files : typeTestFiles ,
111+ rules : {
112+ '@typescript-eslint/no-unused-vars' : 'off' ,
113+ 'no-unused-vars' : 'off' ,
114+ } ,
115+ } ,
76116]
0 commit comments