1- import path from 'node:path' ;
21import { fileURLToPath } from 'node:url' ;
32
43import { includeIgnoreFile } from '@eslint/compat' ;
5- import { FlatCompat } from '@eslint/eslintrc' ;
6- import js from '@eslint/js' ;
7- import typescriptEslint from '@typescript-eslint/eslint-plugin' ;
8- import tsParser from '@typescript-eslint/parser' ;
4+ import eslint from '@eslint/js' ;
5+ import { defineConfig } from 'eslint/config' ;
96import prettier from 'eslint-plugin-prettier' ;
107import simpleImportSort from 'eslint-plugin-simple-import-sort' ;
118import globals from 'globals' ;
9+ import tseslint from 'typescript-eslint' ;
1210
13- const __filename = fileURLToPath ( import . meta. url ) ;
14- const __dirname = path . dirname ( __filename ) ;
15- const gitignorePath = path . resolve ( __dirname , '.gitignore' ) ;
11+ const gitignorePath = fileURLToPath ( new URL ( '.gitignore' , import . meta. url ) ) ;
1612
17- const compat = new FlatCompat ( {
18- baseDirectory : __dirname ,
19- recommendedConfig : js . configs . recommended ,
20- allConfig : js . configs . all ,
21- } ) ;
22-
23- export default [
13+ export default defineConfig ( [
2414 includeIgnoreFile ( gitignorePath ) ,
2515
26- ...compat . extends (
27- 'eslint:recommended' ,
28- 'plugin:@typescript-eslint/recommended' ,
29- ) ,
16+ {
17+ ignores : [ 'examples/*' ] ,
18+ } ,
3019
3120 {
32- files : [ '**/*.js' , '**/*. mjs' , '**/*.ts' , '**/*. tsx'] ,
21+ files : [ '**/*.{js,jsx, mjs,cjs,ts, tsx,mts,cts} ' ] ,
3322
3423 plugins : {
35- '@typescript-eslint' : typescriptEslint ,
3624 'simple-import-sort' : simpleImportSort ,
25+ eslint,
3726 prettier,
3827 } ,
3928
29+ extends : [ 'eslint/recommended' ] ,
30+
4031 languageOptions : {
4132 globals : {
4233 ...globals . browser ,
4334 ...globals . jest ,
4435 ...globals . node ,
4536 } ,
46- parser : tsParser ,
4737 } ,
4838
4939 rules : {
@@ -57,15 +47,13 @@ export default [
5747 } ,
5848 } ,
5949
50+ tseslint . configs . recommended ,
51+
6052 {
6153 files : [ '__tests__/**' ] ,
6254
6355 rules : {
6456 '@typescript-eslint/no-require-imports' : 'off' ,
6557 } ,
6658 } ,
67-
68- {
69- ignores : [ 'examples/*' ] ,
70- } ,
71- ] ;
59+ ] ) ;
0 commit comments