1- // @ts -check
2-
1+ import { defineConfig } from 'eslint/config' ;
32import eslint from '@eslint/js' ;
3+ import { configs , parser } from 'typescript-eslint' ;
44import stylistic from '@stylistic/eslint-plugin' ;
5- import tseslint from 'typescript-eslint' ;
65import importPlugin from 'eslint-plugin-import' ;
7- import pluginPromise from 'eslint-plugin-promise'
6+ // @ts -expect-error ignore type errors
7+ import pluginPromise from 'eslint-plugin-promise' ;
88
99import { includeIgnoreFile } from '@eslint/compat' ;
10- import path from " node:path" ;
11- import { fileURLToPath } from " node:url" ;
10+ import path from ' node:path' ;
11+ import { fileURLToPath } from ' node:url' ;
1212
1313const __filename = fileURLToPath ( import . meta. url ) ;
1414const __dirname = path . dirname ( __filename ) ;
15- const gitignorePath = path . resolve ( __dirname , " .gitignore" ) ;
15+ const gitignorePath = path . resolve ( __dirname , ' .gitignore' ) ;
1616
17- export default tseslint . config (
17+ const eslintConfig = defineConfig (
1818 {
1919 ignores : [
20- ...( includeIgnoreFile ( gitignorePath ) . ignores ?? [ ] ) ,
20+ ...( includeIgnoreFile ( gitignorePath ) . ignores || [ ] ) ,
2121 '**/*.d.ts' ,
22- '*.js' ,
22+ 'src/tsconfig.json' ,
23+ 'src/stories' ,
24+ '**/*.css' ,
2325 'node_modules/**/*' ,
2426 'out' ,
2527 'cdk.out' ,
28+ 'dist' ,
2629 'bin' ,
2730 ] ,
2831 } ,
2932 eslint . configs . recommended ,
30- ... tseslint . configs . strict ,
31- ... tseslint . configs . stylistic ,
33+ configs . strict ,
34+ configs . stylistic ,
3235 pluginPromise . configs [ 'flat/recommended' ] ,
3336 {
34- files : [ 'src/**/*.ts' ] ,
37+ files : [ '**/*.ts' , '*.js' ] ,
38+ plugins : {
39+ '@stylistic' : stylistic ,
40+ } ,
3541 languageOptions : {
36- parser : tseslint . parser ,
3742 ecmaVersion : 'latest' ,
3843 sourceType : 'module' ,
44+ parser,
45+ parserOptions : {
46+ tsconfigRootDir : __dirname ,
47+ project : './tsconfig-eslint.json' ,
48+ } ,
3949 } ,
4050 extends : [
4151 importPlugin . flatConfigs . recommended ,
4252 importPlugin . flatConfigs . typescript ,
4353 ] ,
4454 settings : {
4555 'import/resolver' : {
46- typescript : true ,
47- node : true ,
56+ // You will also need to install and configure the TypeScript resolver
57+ // See also https://github.com/import-js/eslint-import-resolver-typescript#configuration
58+ 'typescript' : true ,
59+ 'node' : true ,
4860 } ,
4961 } ,
50- plugins : {
51- '@stylistic' : stylistic ,
52- } ,
5362 rules : {
5463 '@stylistic/semi' : [ 'error' , 'always' ] ,
5564 '@stylistic/indent' : [ 'error' , 2 ] ,
@@ -59,3 +68,5 @@ export default tseslint.config(
5968 } ,
6069 } ,
6170) ;
71+
72+ export default eslintConfig ;
0 commit comments