Files
omniai-web/eslint.config.js
stringadmin f322679d4a
Web Quality / verify (push) Has been cancelled
test: add web quality gates
2026-06-09 11:34:56 +08:00

78 lines
1.9 KiB
JavaScript

import js from "@eslint/js";
import reactHooks from "eslint-plugin-react-hooks";
import tseslint from "typescript-eslint";
export default tseslint.config(
{
ignores: [
"dist/**",
"node_modules/**",
"coverage/**",
"tmp/**",
".codex-tmp/**",
".codex-logs/**",
"screenshots/**",
"*.log",
"*.tmp",
"vite-*.log",
],
},
js.configs.recommended,
...tseslint.configs.recommended,
{
files: [
"src/**/*.{ts,tsx}",
"scripts/**/*.mjs",
"vite.config.ts",
"eslint.config.js",
],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: {
AbortController: "readonly",
AbortSignal: "readonly",
Blob: "readonly",
clearInterval: "readonly",
clearTimeout: "readonly",
console: "readonly",
crypto: "readonly",
document: "readonly",
File: "readonly",
fetch: "readonly",
FormData: "readonly",
Headers: "readonly",
HTMLTextAreaElement: "readonly",
localStorage: "readonly",
navigator: "readonly",
process: "readonly",
React: "readonly",
RequestInit: "readonly",
Response: "readonly",
setInterval: "readonly",
setTimeout: "readonly",
URL: "readonly",
URLSearchParams: "readonly",
window: "readonly",
},
},
plugins: {
"react-hooks": reactHooks,
},
rules: {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": [
"warn",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
"@typescript-eslint/no-unused-expressions": "warn",
"no-empty": ["error", { allowEmptyCatch: true }],
"no-undef": "off",
"no-useless-escape": "warn",
"prefer-const": "warn",
},
},
);