configuration-eslint/règles/unicorn.ts
2025-10-04 18:35:00 +02:00

79 lines
3.3 KiB
TypeScript

import type { Linter } from "eslint";
import unicorn from "eslint-plugin-unicorn";
export const règlesUnicorn: Readonly<Linter.Config> = {
name: "Unicorn",
plugins: { unicorn: unicorn },
rules: {
...unicorn.configs.unopinionated.rules,
/**
* Impose un nom de paramètre spécifique dans les clauses de capture des Erreurs.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/catch-error-name.md)
*/
"unicorn/catch-error-name": "error",
/**
* Préfère des types consistants lors de l'étalage d'un tableau de littéraux au sein d'une condition ternaire.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md)
*/
"unicorn/consistent-empty-array-spread": "error",
/**
* Impose l'unique manière valide d'étendre la classe `Error`.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/custom-error-definition.md)
*/
"unicorn/custom-error-definition": "error",
/**
* Impose la comparaison explicite de propriétés `length` ou `size`. Cela inclut ici l'obligation de vérifier
* qu'elles ne correspondent pas à `0` avec `!==`.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/explicit-length-check.md)
*/
"unicorn/explicit-length-check": ["error", { "non-zero": "not-equal" }],
/**
* Autorise ici l'usage de la méthode `forEach()` des tableaux.
*
* Je préfère cette méthode (ou celle de la librairie _Effect_) aux boucles.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-for-each.md)
*/
"unicorn/no-array-for-each": "off",
/**
* Autorise ici l'usage de la méthode `reduce()` des tableaux.
*
* J'utilise occasionnellement cette méthode pour des opérations simples.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-for-each.md)
*/
"unicorn/no-array-reduce": "off",
/**
* Interdit l'usage de conditions négatives pour la clarté du code.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negated-condition.md)
*/
"unicorn/no-negated-condition": "error",
/**
* Interdit l'usage d'opérateurs ternaires imbriqués. Cette règle remplace celle présente par défaut dans _ESLint_
* avec le même nom.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-nested-ternary.md)
*/
"unicorn/no-nested-ternary": "error",
/**
* Interdit l'usage de `null`.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-null.md)
*/
"unicorn/no-null": "error",
/**
* N'impose pas ici l'usage de `.dataset` pour l'interaction avec les attributs d'Éléments DOM.
*
* L'ergonomie est réduite comparée aux méthodes `{get,has,set,remove}Attribute()`.
*
* @link [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-dataset.md)
*/
"unicorn/prefer-dom-node-dataset": "off",
},
};