configuration-eslint/règles/typescript.ts
2025-10-01 14:14:28 +02:00

33 lines
1.1 KiB
TypeScript

import type { Linter } from "eslint";
import typescriptEslint from "typescript-eslint";
type EsLintConfig = Readonly<Linter.Config>;
const trouveConfiguration = (configuration: ReadonlyArray<Linter.Config>, 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<Linter.Config> = {
languageOptions: base.languageOptions ?? {},
name: "TypeScript",
plugins: base.plugins ?? {},
rules: {
...desactivationsJavaScript.rules,
...strictTypeChecked.rules,
...stylisticTypeChecked.rules,
},
};