import type { Linter } from "eslint"; import functional from "eslint-plugin-functional"; import typescriptEslint from "typescript-eslint"; export const règlesProgrammationFonctionnelle: Readonly = { name: "Programmation fonctionnelle", plugins: { functional: functional as typeof typescriptEslint.plugin }, rules: { ...functional.configs.noExceptions.rules, ...functional.configs.noMutations.rules, ...functional.configs.externalTypeScriptRecommended.rules, ...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 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 et réduit la lisibilité du code. "functional/type-declaration-immutability": "off", }, };