53 lines
2 KiB
JavaScript
53 lines
2 KiB
JavaScript
import js from "@eslint/js";
|
|
import oxlint from "eslint-plugin-oxlint";
|
|
import perfectionist from "eslint-plugin-perfectionist";
|
|
import globals from "globals";
|
|
import tseslint from "typescript-eslint";
|
|
|
|
export default tseslint.config(
|
|
js.configs.recommended,
|
|
perfectionist.configs["recommended-natural"],
|
|
...tseslint.configs.strictTypeChecked,
|
|
...tseslint.configs.stylisticTypeChecked,
|
|
// @ts-expect-error -- Erreur inévitable pour le moment.
|
|
oxlint.configs["flat/recommended"],
|
|
{
|
|
files: ["*.js", "web/app/themes/haiku-atelier-2024/src/**/*.ts"],
|
|
languageOptions: {
|
|
ecmaVersion: "latest",
|
|
globals: {
|
|
...globals.browser,
|
|
...globals.es2020,
|
|
},
|
|
parserOptions: {
|
|
projectService: true,
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
},
|
|
rules: {
|
|
/* Utilise Array<T> plutôt que T[]. */
|
|
"@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 l'usage de génériques précisant les types de retour de fonctions. */
|
|
"@typescript-eslint/no-unnecessary-type-parameters": "off",
|
|
"@typescript-eslint/no-unused-expressions": ["error", {
|
|
allowTernary: true,
|
|
}],
|
|
/* Cette règle est doublon avec les règles noUnused* de TypeScript. */
|
|
"@typescript-eslint/no-unused-vars": "off",
|
|
/* 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",
|
|
},
|
|
},
|
|
);
|