1+ import typescriptEslint from "@typescript-eslint/eslint-plugin" ;
2+ import stylistic from "@stylistic/eslint-plugin" ;
3+ import globals from "globals" ;
4+ import tsParser from "@typescript-eslint/parser" ;
5+ import path from "node:path" ;
6+ import { fileURLToPath } from "node:url" ;
7+ import js from "@eslint/js" ;
8+ import { FlatCompat } from "@eslint/eslintrc" ;
9+
10+ const __filename = fileURLToPath ( import . meta. url ) ;
11+ const __dirname = path . dirname ( __filename ) ;
12+ const compat = new FlatCompat ( {
13+ baseDirectory : __dirname ,
14+ recommendedConfig : js . configs . recommended ,
15+ allConfig : js . configs . all
16+ } ) ;
17+
18+ export default [ {
19+ ignores : [ "**/dist/" , "**/lib/" , "**/node_modules/" ] ,
20+ } , ...compat . extends ( "plugin:github/typescript" ) , {
21+ plugins : {
22+ "@typescript-eslint" : typescriptEslint ,
23+ "@stylistic" : stylistic ,
24+ } ,
25+
26+ languageOptions : {
27+ globals : {
28+ ...globals . node ,
29+ } ,
30+
31+ parser : tsParser ,
32+ ecmaVersion : 9 ,
33+ sourceType : "module" ,
34+
35+ parserOptions : {
36+ project : true ,
37+ } ,
38+ } ,
39+
40+ rules : {
41+ "eslint-comments/no-use" : "off" ,
42+ "import/no-namespace" : "off" ,
43+ "no-unused-vars" : "off" ,
44+ "@typescript-eslint/no-unused-vars" : "error" ,
45+
46+ "@typescript-eslint/explicit-member-accessibility" : [ "error" , {
47+ accessibility : "no-public" ,
48+ } ] ,
49+
50+ "@typescript-eslint/no-require-imports" : "error" ,
51+ "@typescript-eslint/array-type" : "error" ,
52+ "@typescript-eslint/await-thenable" : "error" ,
53+ "@typescript-eslint/ban-ts-comment" : "error" ,
54+ camelcase : "off" ,
55+ "@typescript-eslint/consistent-type-assertions" : "error" ,
56+
57+ "@typescript-eslint/explicit-function-return-type" : [ "error" , {
58+ allowExpressions : true ,
59+ } ] ,
60+
61+ "@stylistic/func-call-spacing" : [ "error" , "never" ] ,
62+ "@typescript-eslint/no-array-constructor" : "error" ,
63+ "@typescript-eslint/no-empty-interface" : "error" ,
64+ "@typescript-eslint/no-explicit-any" : "warn" ,
65+ "@typescript-eslint/no-extraneous-class" : "error" ,
66+ "@typescript-eslint/no-for-in-array" : "error" ,
67+ "@typescript-eslint/no-inferrable-types" : "error" ,
68+ "@typescript-eslint/no-misused-new" : "error" ,
69+ "@typescript-eslint/no-namespace" : "error" ,
70+ "@typescript-eslint/no-non-null-assertion" : "warn" ,
71+ "@typescript-eslint/no-unnecessary-qualifier" : "error" ,
72+ "@typescript-eslint/no-unnecessary-type-assertion" : "error" ,
73+ "@typescript-eslint/no-useless-constructor" : "error" ,
74+ "@typescript-eslint/no-var-requires" : "error" ,
75+ "@typescript-eslint/prefer-for-of" : "warn" ,
76+ "@typescript-eslint/prefer-function-type" : "warn" ,
77+ "@typescript-eslint/prefer-includes" : "error" ,
78+ "@typescript-eslint/prefer-string-starts-ends-with" : "error" ,
79+ "@typescript-eslint/promise-function-async" : "error" ,
80+ "@typescript-eslint/require-array-sort-compare" : "error" ,
81+ "@typescript-eslint/restrict-plus-operands" : "error" ,
82+ "@stylistic/semi" : [ "error" , "never" ] ,
83+ "@stylistic/type-annotation-spacing" : "error" ,
84+ "@typescript-eslint/unbound-method" : "error" ,
85+ "i18n-text/no-en" : "off" ,
86+ } ,
87+ } ] ;
0 commit comments