ProzillaOS/eslint.config.js
2024-06-20 21:13:16 +02:00

73 lines
No EOL
1.6 KiB
JavaScript

// @ts-check
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
import react from "eslint-plugin-react";
import reactRefresh from "eslint-plugin-react-refresh";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
project: ["./tsconfig.json", "./packages/*/tsconfig.json", "./packages/apps/*/tsconfig.json"],
tsconfigRootDir: import.meta.dirname,
allowAutomaticSingleRunInference: true,
EXPERIMENTAL_useProjectService: true
},
},
ignores: [
"eslint.config.js",
"**/dist/**/*"
],
plugins: {
react,
"react-refresh": reactRefresh,
},
rules: {
"quotes": "off",
"@typescript-eslint/quotes": ["error", "double"],
"no-unused-vars": "off",
"@typescript-eslint/ban-types": "off",
"indent": "off",
"@typescript-eslint/indent": [
"error",
"tab",
{
"SwitchCase": 1
}
],
"@typescript-eslint/semi": "error",
"no-var": "error",
"prefer-const": "error",
"object-curly-spacing": "off",
"@typescript-eslint/object-curly-spacing": [
"warn",
"always"
],
"default-case": "off",
"arrow-parens": "error",
"space-infix-ops": "off",
"@typescript-eslint/space-infix-ops": "warn",
"react/no-multi-comp": [
"error",
{
"ignoreStateless": true
}
],
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "warn",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"react-refresh/only-export-components": [
"warn",
{ "allowConstantExport": true }
],
},
}
);