This commit is contained in:
Viktoria Polyakova
2026-01-25 08:57:38 +00:00
commit 4fb101c5db
7657 changed files with 497012 additions and 0 deletions

107
frontend/eslint.config.mjs Normal file
View File

@@ -0,0 +1,107 @@
import { defineConfig, globalIgnores } from "eslint/config";
import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import i18Next from "eslint-plugin-i18next";
import stylistic from "@stylistic/eslint-plugin";
import regexp from "eslint-plugin-regexp";
import reactHooksExtra from "eslint-plugin-react-hooks-extra";
import tsParser from "@typescript-eslint/parser";
import tsPlugin from "@typescript-eslint/eslint-plugin";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
export default defineConfig([globalIgnores([
"node_modules",
".pnp",
"**/.pnp.js",
"coverage",
"build",
"src/declarations/voxengine.d.ts",
"**/.DS_Store",
"**/.env.local",
"**/.env.development.local",
"**/.env.test.local",
"**/.env.production.local",
"**/npm-debug.log*",
"**/yarn-debug.log*",
"**/yarn-error.log*",
"**/.idea",
"**/.vscode",
]), {
extends: fixupConfigRules(compat.extends(
"react-app",
"plugin:i18next/recommended",
"plugin:@tanstack/eslint-plugin-query/recommended",
"plugin:storybook/recommended",
"plugin:regexp/recommended",
)),
plugins: {
i18next: fixupPluginRules(i18Next),
"@stylistic": stylistic,
regexp: fixupPluginRules(regexp),
"react-hooks-extra": reactHooksExtra,
"@typescript-eslint": fixupPluginRules(tsPlugin),
},
languageOptions: {
parser: tsParser,
},
rules: {
"no-redeclare": 0,
"line-comment-position": ["warn", {
position: "above",
}],
"padding-line-between-statements": ["warn", {
blankLine: "always",
prev: "*",
next: ["return", "if", "do", "while", "for", "switch", "try", "with"],
}, {
blankLine: "always",
prev: ["if", "do", "while", "for", "switch", "try", "with"],
next: "*",
}, {
blankLine: "any",
prev: ["const", "let", "var"],
next: ["if", "do", "while", "for", "switch", "try", "with"],
}],
"react/button-has-type": 1,
"react/function-component-definition": [1, {
namedComponents: "arrow-function",
}],
"i18next/no-literal-string": [1, {
markupOnly: true,
ignoreAttribute: ["aria-label"],
}],
"react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "all",
argsIgnorePattern: "^_",
caughtErrors: "all",
caughtErrorsIgnorePattern: "^e",
destructuredArrayIgnorePattern: "^_",
varsIgnorePattern: "^_",
ignoreRestSiblings: true
}
]
},
}]);