1+ import { fixupConfigRules , fixupPluginRules } from "@eslint/compat" ;
2+ import _import from "eslint-plugin-import" ;
3+ import simpleImportSort from "eslint-plugin-simple-import-sort" ;
4+ import n from "eslint-plugin-n" ;
5+ import typescriptEslint from "@typescript-eslint/eslint-plugin" ;
6+ import globals from "globals" ;
7+ import tsParser from "@typescript-eslint/parser" ;
8+ import path from "node:path" ;
9+ import { fileURLToPath } from "node:url" ;
10+ import js from "@eslint/js" ;
11+ import { FlatCompat } from "@eslint/eslintrc" ;
12+
13+ const __filename = fileURLToPath ( import . meta. url ) ;
14+ const __dirname = path . dirname ( __filename ) ;
15+ const compat = new FlatCompat ( {
16+ baseDirectory : __dirname ,
17+ recommendedConfig : js . configs . recommended ,
18+ allConfig : js . configs . all
19+ } ) ;
20+
21+ export default [ ...fixupConfigRules ( compat . extends (
22+ "eslint:recommended" ,
23+ "plugin:import/typescript" ,
24+ "plugin:@typescript-eslint/eslint-recommended" ,
25+ "plugin:@typescript-eslint/recommended" ,
26+ ) ) , {
27+ plugins : {
28+ import : fixupPluginRules ( _import ) ,
29+ "simple-import-sort" : simpleImportSort ,
30+ n,
31+ "@typescript-eslint" : fixupPluginRules ( typescriptEslint ) ,
32+ } ,
33+
34+ languageOptions : {
35+ globals : {
36+ ...globals . browser ,
37+ ...globals . node ,
38+ } ,
39+
40+ parser : tsParser ,
41+ ecmaVersion : 5 ,
42+ sourceType : "module" ,
43+
44+ parserOptions : {
45+ project : "tsconfig.json" ,
46+ } ,
47+ } ,
48+
49+ rules : {
50+ "import/no-cycle" : "error" ,
51+ "n/no-extraneous-import" : "error" ,
52+ "@typescript-eslint/ban-ts-ignore" : "off" ,
53+ "@typescript-eslint/ban-ts-comment" : "off" ,
54+ "@typescript-eslint/explicit-module-boundary-types" : "off" ,
55+ "@typescript-eslint/explicit-function-return-type" : "off" ,
56+ "@typescript-eslint/no-use-before-define" : "off" ,
57+ "@typescript-eslint/interface-name-prefix" : "off" ,
58+ "@typescript-eslint/member-delimiter-style" : "off" ,
59+ "@typescript-eslint/no-explicit-any" : "error" ,
60+ "@typescript-eslint/no-non-null-assertion" : "error" ,
61+ "simple-import-sort/imports" : "error" ,
62+ "simple-import-sort/exports" : "error" ,
63+ } ,
64+ } , {
65+ files : [ "test/**" ] ,
66+
67+ rules : {
68+ "@typescript-eslint/no-non-null-assertion" : "off" ,
69+ } ,
70+ } ] ;
0 commit comments