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