-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBaseEslintConfig.js
37 lines (36 loc) · 1.22 KB
/
BaseEslintConfig.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
module.exports = {
getBaseConfig: (dir) => {
const eslint = require(dir + "/node_modules/@eslint/js");
const tseslint = require(dir + "/node_modules/typescript-eslint/dist");
const pluginOnlyError = require(dir + "/node_modules/eslint-plugin-only-error");
const pluginSonarJS = require(dir + "/node_modules/eslint-plugin-sonarjs");
const pluginUnicorn = require(dir + "/node_modules/eslint-plugin-unicorn");
return {
files: ["**/*.ts"],
extends: [
eslint.configs.recommended,
...tseslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
pluginSonarJS.configs.recommended,
pluginUnicorn.configs["flat/recommended"],
],
plugins: {
pluginOnlyError,
pluginSonarJS,
pluginUnicorn,
},
languageOptions: {
parser: tseslint.parser,
parserOptions: {
project: true,
tsconfigRootDir: dir,
},
},
rules: {
"@typescript-eslint/no-require-imports": "off",
"sonarjs/sonar-no-fallthrough": "off", // Rule crashes on eslint 9.x
"unicorn/prefer-module": "off", // Electron uses CommonJS
},
};
},
};