morphos / frontend /eslint.config.js
Jose Salazar
Añadir el stack nuevo: Vite/TypeScript + FastAPI
70e641d
Raw
History Blame Contribute Delete
1.95 kB
// Configuración plana (ESLint 9). Sólo usa los paquetes ya declarados en package.json:
// @typescript-eslint/parser y @typescript-eslint/eslint-plugin — sin añadir dependencias.
import tsPlugin from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
export default [
{
ignores: ["dist/**", "node_modules/**", "../dist/**"],
},
{
files: ["src/**/*.ts", "tests/**/*.ts"],
languageOptions: {
parser: tsParser,
ecmaVersion: 2022,
sourceType: "module",
parserOptions: {
project: "./tsconfig.json",
tsconfigRootDir: import.meta.dirname,
},
},
plugins: {
"@typescript-eslint": tsPlugin,
},
rules: {
// El motor de patrones es código validado por veterinarios: lo que se persigue aquí son
// fallos silenciosos (variables muertas, promesas sin await, comparaciones laxas), no estilo.
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
"@typescript-eslint/await-thenable": "error",
// En "error": todo el trabajo asíncrono pasa por `manejadorAsync`/`sinEsperar` (async.ts),
// que reportan el rechazo en el toast, o por un `void` explícito cuando la función ya
// absorbe su error a propósito. Un handler `async` suelto vuelve a tragar fallos en
// silencio, así que debe romper el lint.
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-explicit-any": "warn",
eqeqeq: ["error", "always", { null: "ignore" }],
"no-var": "error",
"prefer-const": "error",
// `console.log` filtró prompts con datos de paciente en el ia.js legacy; se avisa para que
// no vuelva a entrar. warn/error siguen permitidos.
"no-console": ["warn", { allow: ["warn", "error"] }],
},
},
];