79 lines
3.3 KiB
TypeScript
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",
|
|
},
|
|
};
|