import type { Linter } from "eslint"; import typescriptEslint from "typescript-eslint"; type EsLintConfig = Readonly; const trouveConfiguration = (configuration: ReadonlyArray, nom: string): EsLintConfig => configuration.find((v: EsLintConfig) => v.name === nom) ?? {}; const base = trouveConfiguration(typescriptEslint.configs.strictTypeChecked, "typescript-eslint/base"); const desactivationsJavaScript = trouveConfiguration( typescriptEslint.configs.strictTypeChecked, "typescript-eslint/eslint-recommended", ); const strictTypeChecked = trouveConfiguration( typescriptEslint.configs.strictTypeChecked, "typescript-eslint/strict-type-checked", ); const stylisticTypeChecked = trouveConfiguration( typescriptEslint.configs.stylisticTypeChecked, "typescript-eslint/stylistic-type-checked", ); export const règlesTypeScript: Readonly = { languageOptions: base.languageOptions ?? {}, name: "TypeScript", plugins: base.plugins ?? {}, rules: { ...desactivationsJavaScript.rules, ...strictTypeChecked.rules, ...stylisticTypeChecked.rules, }, };