Skip to content

Commit ad2ef7d

Browse files
author
Jerry Bruwes
committed
new file: eslint.config.ts
1 parent 511b842 commit ad2ef7d

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

eslint.config.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint";
2+
import type { Linter } from "eslint";
3+
4+
import { FlatCompat } from "@eslint/eslintrc";
5+
import eslint from "@eslint/js";
6+
import eslintPluginImportX from "eslint-plugin-import-x";
7+
import perfectionist from "eslint-plugin-perfectionist";
8+
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
9+
import tseslint, { configs } from "typescript-eslint";
10+
11+
import eslintrc from "./.eslintrc.json";
12+
13+
/* -------------------------------------------------------------------------- */
14+
15+
const projectService = true,
16+
tsconfigRootDir = import.meta.dirname;
17+
18+
/* -------------------------------------------------------------------------- */
19+
20+
const parserOptions = { projectService, tsconfigRootDir };
21+
22+
/* -------------------------------------------------------------------------- */
23+
24+
const compat = new FlatCompat(),
25+
ignores = ["index.js", "index.d.ts"],
26+
languageOptions = { parserOptions },
27+
rules: FlatConfig.Rules = {
28+
"@typescript-eslint/no-shadow": "error",
29+
"@typescript-eslint/no-use-before-define": "error",
30+
"no-shadow": "off",
31+
"no-use-before-define": "off",
32+
};
33+
34+
/* -------------------------------------------------------------------------- */
35+
36+
export default tseslint.config(
37+
{ ignores },
38+
{ rules },
39+
{ languageOptions },
40+
...compat.config(eslintrc as Linter.LegacyConfig),
41+
eslint.configs.recommended,
42+
eslintPluginImportX.flatConfigs.recommended,
43+
eslintPluginImportX.flatConfigs.typescript,
44+
configs.strictTypeChecked,
45+
configs.stylisticTypeChecked,
46+
perfectionist.configs["recommended-natural"],
47+
eslintPluginPrettierRecommended,
48+
);

0 commit comments

Comments
 (0)