1+ const { defineConfig } = require ( "eslint/config" ) ;
2+ const tsParser = require ( "@typescript-eslint/parser" ) ;
3+ const tsPlugin = require ( "@typescript-eslint/eslint-plugin" ) ;
4+ const importPlugin = require ( "eslint-plugin-import" ) ;
5+ const prettierPlugin = require ( "eslint-plugin-prettier" ) ;
6+ const unusedImportsPlugin = require ( "eslint-plugin-unused-imports" ) ;
7+
8+ module . exports = defineConfig ( [
9+ {
10+ files : [ "src/**/*.ts" ] ,
11+ languageOptions : {
12+ parser : tsParser ,
13+ parserOptions : {
14+ project : "./tsconfig.json" ,
15+ sourceType : "module" ,
16+ } ,
17+ } ,
18+ settings : {
19+ "import/resolver" : {
20+ typescript : {
21+ alwaysTryTypes : true ,
22+ project : "./tsconfig.json" ,
23+ } ,
24+ } ,
25+ } ,
26+ plugins : {
27+ "@typescript-eslint" : tsPlugin ,
28+ prettier : prettierPlugin ,
29+ "unused-imports" : unusedImportsPlugin ,
30+ import : importPlugin ,
31+ } ,
32+ rules : {
33+ // TypeScript rules
34+ "@typescript-eslint/no-unused-vars" : [
35+ "warn" ,
36+ {
37+ vars : "all" ,
38+ varsIgnorePattern : "^_" ,
39+ args : "after-used" ,
40+ argsIgnorePattern : "^_" ,
41+ } ,
42+ ] ,
43+
44+ // Unused imports
45+ "no-unused-vars" : "off" ,
46+ "unused-imports/no-unused-imports" : "error" ,
47+
48+ // Import order
49+ "import/order" : [
50+ "error" ,
51+ {
52+ groups : [ "builtin" , "external" , "internal" , "parent" , "sibling" , "index" ] ,
53+ "newlines-between" : "always" ,
54+ alphabetize : {
55+ order : "asc" ,
56+ caseInsensitive : true ,
57+ } ,
58+ } ,
59+ ] ,
60+
61+ // Désactivation de règles inutiles
62+ "import/default" : "off" ,
63+ "import/named" : "off" ,
64+ "import/namespace" : "error" ,
65+ "import/export" : "error" ,
66+
67+ // Interdire les extensions dans les imports locaux
68+ "import/extensions" : [
69+ "error" ,
70+ "ignorePackages" ,
71+ {
72+ ts : "never" ,
73+ js : "never" ,
74+ } ,
75+ ] ,
76+
77+ // Formatage
78+ "prettier/prettier" : "error" ,
79+ } ,
80+ } ,
81+ {
82+ ignores : [ "dist/*" ] ,
83+ } ,
84+ ] ) ;
0 commit comments