65 lines
2.6 KiB
TypeScript
65 lines
2.6 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 }],
|
|
/**
|
|
* Interdit la définition de fonctions avec plus de 3 paramètres.
|
|
*
|
|
* @link [ESLint](https://eslint.org/docs/latest/rules/max-params#max)
|
|
*/
|
|
"max-params": ["error", { max: 3 }],
|
|
/** 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'usage de variables non définies.
|
|
*
|
|
* @link [ESLint](https://eslint.org/docs/latest/rules/no-use-before-define)
|
|
*/
|
|
"no-use-before-define": "error",
|
|
/**
|
|
* 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"],
|
|
},
|
|
};
|