configuration-eslint/règles/javascript.ts
2025-10-03 16:12:57 +02:00

63 lines
2.5 KiB
TypeScript

import type { Linter } from "eslint";
import javascript from "@eslint/js";
export const règlesJavaScript: Readonly<Linter.Config> = {
name: "JavaScript",
rules: {
...javascript.configs.recommended.rules,
/**
* Impose la présence de déclarations `return` dans les _callbacks_ des méthodes `Array`.
*
* Il est autorisé ici l'usage de valeurs de retour en `void` et la vérification de valeurs de retour superflues
* pour `forEach()`.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/array-callback-return)
*/
"array-callback-return": ["error", { allowVoid: true, checkForEach: true }],
/** Surchargé par une meilleur version présente dans le plugin _Unicorn_. */
"no-nested-ternary": "off",
/**
* Interdit l'usage de variables lues sans être préalablement assignées.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/no-unassigned-vars)
*/
"no-unassigned-vars": "error",
/**
* Interdit l'usage d'opérateurs ternaires quand des opérations plus simples existent. Cela inclut ici l'usage de
* ternaires comme opération d'assignation par défaut d'une valeur.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/no-unneeded-ternary)
*/
"no-unneeded-ternary": ["error", { defaultAssignment: false }],
/**
* Interdit l'usage de boucles ne permettant qu'une seule itération. Par la nature de l'analyse statique de code,
* certains cas peuvent ne pas être détectées.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/no-unreachable-loop)
*/
"no-unreachable-loop": "error",
/**
* Interdit l'utilisation d'une variable avant sa définition.
*
* La règle est désactivée ici pour que l'ordre de déclaration au sein d'un module n'ait pas d'importance.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/no-use-before-define)
*/
"no-use-before-define": "off",
/**
* Interdit l'assignation de variables non utilisées. Par la nature de l'analyse statique de code, certains cas
* peuvent ne pas être détectées.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/no-useless-assignment)
*/
"no-useless-assignment": "error",
/**
* Interdit ici l'usage de conditions « [Yoda](https://en.wikipedia.org/wiki/Yoda_conditions) » pour des soucis de
* lisibilité du code.
*
* @link [ESLint](https://eslint.org/docs/latest/rules/yoda)
*/
yoda: ["error", "never"],
},
};