import eslint from "@eslint/js"; import perfectionist from "eslint-plugin-perfectionist"; import tseslint from "typescript-eslint"; export default tseslint.config( eslint.configs.recommended, perfectionist.configs["recommended-natural"], ...tseslint.configs.strictTypeChecked, ...tseslint.configs.stylisticTypeChecked, { files: ["*.js", "web/app/themes/haiku-atelier-2024/src/**/*.ts"], languageOptions: { parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { /* */ "@typescript-eslint/array-type": ["error", { default: "generic", readonly: "generic", }], /* L'usage d'interfaces ou de types doit être à la discrétion du développeur. */ "@typescript-eslint/consistent-type-definitions": "off", /* Désactive cette règle pour les fonctions fléchées pour rendre le code moins verbeux. */ "@typescript-eslint/no-confusing-void-expression": [ "error", { "ignoreArrowShorthand": true, "ignoreVoidOperator": false, }, ], /* Cette règle empêche de lever des erreurs génériques (p.ex. `E extends Error`). */ "@typescript-eslint/only-throw-error": "off", /* Cette règle empêche le style fonctionnel « point free ». */ "@typescript-eslint/unbound-method": "off", }, }, );