0.0.5
This commit is contained in:
parent
18d605339f
commit
268cf80769
14 changed files with 126 additions and 48 deletions
|
|
@ -13,12 +13,6 @@ export const règlesJavaScript: Readonly<Linter.Config> = {
|
|||
* @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",
|
||||
/**
|
||||
|
|
@ -42,11 +36,13 @@ export const règlesJavaScript: Readonly<Linter.Config> = {
|
|||
*/
|
||||
"no-unreachable-loop": "error",
|
||||
/**
|
||||
* Interdit l'usage de variables non définies.
|
||||
* 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": "error",
|
||||
"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.
|
||||
|
|
|
|||
|
|
@ -13,27 +13,13 @@ export const règlesProgrammationFonctionnelle: Readonly<Linter.Config> = {
|
|||
...functional.configs.stylistic.rules,
|
||||
// Choix stylistique.
|
||||
"@typescript-eslint/array-type": ["error", { default: "generic", readonly: "generic" }],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/prefer-immutable-types": ["error", { enforcement: "ReadonlyShallow" }],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante et réduit la lisibilité du code.
|
||||
"functional/prefer-immutable-types": "off",
|
||||
// Le style tacite complique la lecture du code.
|
||||
"functional/prefer-tacit": "off",
|
||||
// Choix stylistique.
|
||||
"functional/readonly-type": ["error", "generic"],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/type-declaration-immutability": [
|
||||
"error",
|
||||
{
|
||||
ignoreInterfaces: false,
|
||||
rules: [
|
||||
{
|
||||
comparator: "AtLeast",
|
||||
fixer: false,
|
||||
identifiers: "^(?!I?Mutable).+",
|
||||
immutability: "ReadonlyShallow",
|
||||
suggestions: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante et réduit la lisibilité du code.
|
||||
"functional/type-declaration-immutability": "off",
|
||||
},
|
||||
};
|
||||
|
|
|
|||
11
règles/sonarjs.ts
Normal file
11
règles/sonarjs.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import type { Linter } from "eslint";
|
||||
|
||||
import sonarJs from "eslint-plugin-sonarjs";
|
||||
|
||||
export const règlesSonarJs: Readonly<Linter.Config> = {
|
||||
name: "SonarJS",
|
||||
plugins: sonarJs.configs.recommended.plugins ?? {},
|
||||
rules: {
|
||||
...sonarJs.configs.recommended.rules,
|
||||
},
|
||||
};
|
||||
|
|
@ -3,6 +3,7 @@ import type { Linter } from "eslint";
|
|||
import perfectionist from "eslint-plugin-perfectionist";
|
||||
|
||||
export const règlesTri: Readonly<Linter.Config> = {
|
||||
name: "Tri",
|
||||
plugins: perfectionist.configs["recommended-natural"].plugins ?? {},
|
||||
rules: perfectionist.configs["recommended-natural"].rules ?? {},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,5 +29,50 @@ export const règlesTypeScript: Readonly<Linter.Config> = {
|
|||
...desactivationsJavaScript.rules,
|
||||
...strictTypeChecked.rules,
|
||||
...stylisticTypeChecked.rules,
|
||||
/**
|
||||
* Impose un usage consistant entre interfaces et types. Ici préfère les déclarations de types.
|
||||
*
|
||||
* @link [typescript-eslint](https://typescript-eslint.io/rules/consistent-type-definitions)
|
||||
*/
|
||||
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
|
||||
/**
|
||||
* Interdit la définition de fonctions avec plus de 3 paramètres.
|
||||
*
|
||||
* @link [typescript-eslint](https://eslint.org/docs/latest/rules/max-params)
|
||||
*/
|
||||
"@typescript-eslint/max-params": ["error", { max: 3 }],
|
||||
/**
|
||||
* Impose une syntaxe particulière pour les signatures de méthodes au sein d'interfaces et types. Ici utilise la
|
||||
* syntaxe « propriété ».
|
||||
*
|
||||
* ```typescript
|
||||
* interface Exemple {
|
||||
* func: (arg: string) => number;
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @link [typescript-eslint](https://typescript-eslint.io/rules/method-signature-style/)
|
||||
*/
|
||||
"@typescript-eslint/method-signature-style": ["off", "property"],
|
||||
/**
|
||||
* Interdit l'usage de nombres magiques. Cette règle étend
|
||||
* [no-magic-numbers](https://eslint.org/docs/latest/rules/no-magic-numbers) de la configuration de base _ESLint_.
|
||||
*
|
||||
* @link [typescript-eslint](https://eslint.org/docs/latest/rules/no-magic-numbers)
|
||||
*/
|
||||
"@typescript-eslint/no-magic-numbers": "off",
|
||||
/**
|
||||
* Autorise ici la comparaison avec des littéraux booléens. La désactivation de cette règle permet des comparaisons
|
||||
* plus claires qu'avec l'opérateur de négation `!`.
|
||||
*
|
||||
* @link [typescript-eslint](https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare)
|
||||
*/
|
||||
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",
|
||||
/**
|
||||
* Interdit l'usage de paramètres de types non utilisés plusieurs fois. Désactivé ici à cause de faux positifs.
|
||||
*
|
||||
* @link [typescript-eslint](https://typescript-eslint.io/rules/no-unnecessary-type-parameters)
|
||||
*/
|
||||
"@typescript-eslint/no-unnecessary-type-parameters": "off",
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -32,12 +32,24 @@ export const règlesUnicorn: Readonly<Linter.Config> = {
|
|||
* @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" }],
|
||||
/**
|
||||
* 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"],
|
||||
"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",
|
||||
},
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue