@indigo-reemploi/eslint-config-client 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,34 +1,35 @@
1
1
  {
2
2
  "name": "@indigo-reemploi/eslint-config-client",
3
- "version": "0.0.2",
3
+ "version": "0.0.5",
4
4
  "description": "Shared eslint config for Client",
5
- "main": "index.mjs",
6
- "files": ["eslint.mjs", "prettier.mjs", "./rules"],
5
+ "main": "./src/index.mjs",
6
+ "files": [
7
+ "./src"
8
+ ],
7
9
  "author": "Antoine Torrini",
8
10
  "license": "MIT",
9
11
  "packageManager": "yarn@1.22.22",
10
12
  "dependencies": {
11
13
  "@eslint/compat": "^1.1.1",
12
- "@eslint/js": "^9.4.0",
14
+ "@eslint/js": "^9.9.1",
13
15
  "@types/eslint__js": "^8.42.3",
14
- "@typescript-eslint/parser": "^8.0.1",
15
- "eslint": "^9.4.0",
16
+ "@typescript-eslint/parser": "^8.3.0",
17
+ "eslint": "^9.9.1",
16
18
  "eslint-config-prettier": "^9.1.0",
17
- "eslint-plugin-astro": "^1.2.2",
18
19
  "eslint-plugin-import": "^2.29.1",
19
- "eslint-plugin-jest": "^28.7.0",
20
+ "eslint-plugin-jest": "^28.8.2",
20
21
  "eslint-plugin-jsx-a11y": "^6.8.0",
21
- "eslint-plugin-oxlint": "^0.4.0",
22
22
  "eslint-plugin-prettier": "^5.2.1",
23
23
  "eslint-plugin-react": "^7.35.0",
24
24
  "eslint-plugin-simple-import-sort": "^12.1.0",
25
25
  "eslint-plugin-tailwindcss": "^3.17.4",
26
- "eslint-plugin-unused-imports": "^4.0.1",
26
+ "eslint-plugin-unused-imports": "^4.1.3",
27
27
  "prettier": "^3.3.3",
28
28
  "prettier-plugin-tailwindcss": "^0.6.6",
29
- "typescript-eslint": "^7.13.0"
29
+ "typescript-eslint": "^8.3.0"
30
30
  },
31
31
  "peerDependencies": {
32
- "jest": "^29.7.0"
32
+ "jest": "^29.7.0",
33
+ "typescript": "^5.5.4"
33
34
  }
34
35
  }
package/src/eslint.mjs ADDED
@@ -0,0 +1,94 @@
1
+ import { fixupPluginRules } from "@eslint/compat";
2
+ import eslint from "@eslint/js";
3
+ import jest from "eslint-plugin-jest";
4
+ import jsxA11y from "eslint-plugin-jsx-a11y";
5
+ import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
6
+ import react from "eslint-plugin-react";
7
+ import simpleImportSort from "eslint-plugin-simple-import-sort";
8
+ import tailwind from "eslint-plugin-tailwindcss";
9
+ import unusedImports from "eslint-plugin-unused-imports";
10
+ import tseslint from "typescript-eslint";
11
+
12
+ import importRules from "./rules/import.mjs";
13
+
14
+ export default tseslint.config(
15
+ eslint.configs.recommended,
16
+ ...tseslint.configs.recommended,
17
+ ...tailwind.configs["flat/recommended"],
18
+ jest.configs["flat/recommended"],
19
+ jsxA11y.flatConfigs.recommended,
20
+ react.configs.flat.recommended,
21
+ {
22
+ rules: {
23
+ // from eslint-config-airbnb
24
+ "react/display-name": ["off", { ignoreTranspilerName: false }],
25
+ },
26
+ },
27
+ {
28
+ settings: {
29
+ react: {
30
+ version: "detect",
31
+ },
32
+ },
33
+ },
34
+ {
35
+ languageOptions: {
36
+ parserOptions: {
37
+ projectService: true,
38
+ // tsconfigRootDir: import.meta.dirname,
39
+ },
40
+ },
41
+ },
42
+ {
43
+ plugins: {
44
+ "simple-import-sort": simpleImportSort,
45
+ },
46
+ rules: {
47
+ "simple-import-sort/imports": "error",
48
+ "simple-import-sort/exports": "error",
49
+ },
50
+ },
51
+ {
52
+ plugins: {
53
+ "unused-imports": fixupPluginRules(unusedImports),
54
+ },
55
+ rules: {
56
+ "no-unused-vars": "off",
57
+ "@typescript-eslint/no-unused-vars": "off",
58
+ "unused-imports/no-unused-imports": "error",
59
+ "unused-imports/no-unused-vars": [
60
+ "warn",
61
+ {
62
+ vars: "all",
63
+ varsIgnorePattern: "^_",
64
+ args: "after-used",
65
+ argsIgnorePattern: "^_",
66
+ },
67
+ ],
68
+ },
69
+ },
70
+ {
71
+ rules: {
72
+ "@typescript-eslint/no-explicit-any": [
73
+ "error",
74
+ {
75
+ ignoreRestArgs: true,
76
+ },
77
+ ],
78
+ },
79
+ },
80
+ importRules,
81
+ {
82
+ rules: {
83
+ // our custom rules
84
+ "jest/expect-expect": "off",
85
+ "tailwindcss/no-custom-classname": "off",
86
+ "react/prop-types": "off",
87
+ "@typescript-eslint/no-empty-object-type": "off"
88
+ },
89
+ },
90
+ eslintPluginPrettierRecommended,
91
+ {
92
+ ignores: ["**/*.stories.*"],
93
+ },
94
+ );
package/src/index.mjs ADDED
@@ -0,0 +1,4 @@
1
+ import eslint from "./eslint.mjs";
2
+ import prettier from "./prettier.mjs";
3
+
4
+ export { eslint, prettier };
@@ -0,0 +1,9 @@
1
+ export default {
2
+ semi: true,
3
+ trailingComma: "all",
4
+ singleQuote: true,
5
+ printWidth: 200,
6
+ tabWidth: 2,
7
+ arrowParens: "avoid",
8
+ plugins: ["prettier-plugin-tailwindcss"],
9
+ };
@@ -0,0 +1,190 @@
1
+ import { fixupPluginRules } from "@eslint/compat";
2
+ import importPlugin from "eslint-plugin-import";
3
+
4
+ export default {
5
+ plugins: {
6
+ import: fixupPluginRules(importPlugin),
7
+ },
8
+ settings: {
9
+ "import/resolver": {
10
+ node: {
11
+ extensions: [".mjs", ".js", ".jsx", ".json", ".ts", ".tsx", ".d.ts"],
12
+ },
13
+ },
14
+ "import/parsers": {
15
+ "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"],
16
+ },
17
+ "import/extensions": [".js", ".mjs", ".jsx", ".ts", ".tsx", ".d.ts"],
18
+ "import/external-module-folders": ["node_modules", "node_modules/@types"],
19
+ "import/core-modules": [],
20
+ "import/ignore": [
21
+ "node_modules",
22
+ "\\.(coffee|scss|css|less|hbs|svg|json)$",
23
+ ],
24
+ },
25
+ rules: {
26
+ "import/extensions": [
27
+ "off",
28
+ "ignorePackages",
29
+ {
30
+ js: "never",
31
+ mjs: "never",
32
+ jsx: "never",
33
+ ts: "never",
34
+ tsx: "never",
35
+ },
36
+ ],
37
+ "import/prefer-default-export": ["off"],
38
+ "import/named": ["off"],
39
+ "import/no-named-as-default-member": ["off"],
40
+ "import/no-unresolved": [
41
+ "off",
42
+ {
43
+ commonjs: true,
44
+ caseSensitive: true,
45
+ caseSensitiveStrict: false,
46
+ },
47
+ ],
48
+ "import/no-extraneous-dependencies": [
49
+ "error",
50
+ {
51
+ devDependencies: [
52
+ "test/**",
53
+ "tests/**",
54
+ "spec/**",
55
+ "**/__tests__/**",
56
+ "**/__mocks__/**",
57
+ "test.{js,jsx}",
58
+ "test.{ts,tsx}",
59
+ "test-*.{js,jsx}",
60
+ "test-*.{ts,tsx}",
61
+ "**/*{.,_}{test,spec}.{js,jsx}",
62
+ "**/*{.,_}{test,spec}.{ts,tsx}",
63
+ "**/jest.config.js",
64
+ "**/jest.config.ts",
65
+ "**/jest.setup.js",
66
+ "**/jest.setup.ts",
67
+ "**/vue.config.js",
68
+ "**/vue.config.ts",
69
+ "**/webpack.config.js",
70
+ "**/webpack.config.ts",
71
+ "**/webpack.config.*.js",
72
+ "**/webpack.config.*.ts",
73
+ "**/rollup.config.js",
74
+ "**/rollup.config.ts",
75
+ "**/rollup.config.*.js",
76
+ "**/rollup.config.*.ts",
77
+ "**/gulpfile.js",
78
+ "**/gulpfile.ts",
79
+ "**/gulpfile.*.js",
80
+ "**/gulpfile.*.ts",
81
+ "**/Gruntfile{,.js}",
82
+ "**/Gruntfile{,.ts}",
83
+ "**/protractor.conf.js",
84
+ "**/protractor.conf.ts",
85
+ "**/protractor.conf.*.js",
86
+ "**/protractor.conf.*.ts",
87
+ "**/karma.conf.js",
88
+ "**/karma.conf.ts",
89
+ "**/.eslintrc.js",
90
+ "**/.eslintrc.ts",
91
+ ],
92
+ optionalDependencies: false,
93
+ },
94
+ ],
95
+ "import/default": ["off"],
96
+ "import/namespace": ["off"],
97
+ "import/export": ["error"],
98
+ "import/no-named-as-default": ["error"],
99
+ "import/no-deprecated": ["off"],
100
+ "import/no-mutable-exports": ["error"],
101
+ "import/no-commonjs": ["off"],
102
+ "import/no-amd": ["error"],
103
+ "import/no-nodejs-modules": ["off"],
104
+ "import/first": ["error"],
105
+ "import/imports-first": ["off"],
106
+ "import/no-duplicates": ["error"],
107
+ "import/no-namespace": ["off"],
108
+ "import/order": [
109
+ "error",
110
+ {
111
+ groups: [["builtin", "external", "internal"]],
112
+ distinctGroup: true,
113
+ warnOnUnassignedImports: false,
114
+ },
115
+ ],
116
+ "import/newline-after-import": ["error"],
117
+ "import/no-restricted-paths": ["off"],
118
+ "import/max-dependencies": [
119
+ "off",
120
+ {
121
+ max: 10,
122
+ },
123
+ ],
124
+ "import/no-absolute-path": ["error"],
125
+ "import/no-dynamic-require": ["error"],
126
+ "import/no-internal-modules": [
127
+ "off",
128
+ {
129
+ allow: [],
130
+ },
131
+ ],
132
+ "import/unambiguous": ["off"],
133
+ "import/no-webpack-loader-syntax": ["error"],
134
+ "import/no-unassigned-import": ["off"],
135
+ "import/no-named-default": ["error"],
136
+ "import/no-anonymous-default-export": [
137
+ "off",
138
+ {
139
+ allowArray: false,
140
+ allowArrowFunction: false,
141
+ allowAnonymousClass: false,
142
+ allowAnonymousFunction: false,
143
+ allowLiteral: false,
144
+ allowObject: false,
145
+ },
146
+ ],
147
+ "import/exports-last": ["off"],
148
+ "import/group-exports": ["off"],
149
+ "import/no-default-export": ["off"],
150
+ "import/no-named-export": ["off"],
151
+ "import/no-self-import": ["error"],
152
+ "import/no-cycle": [
153
+ "error",
154
+ {
155
+ maxDepth: "∞",
156
+ ignoreExternal: false,
157
+ allowUnsafeDynamicCyclicDependency: false,
158
+ },
159
+ ],
160
+ "import/no-useless-path-segments": [
161
+ "error",
162
+ {
163
+ commonjs: true,
164
+ },
165
+ ],
166
+ "import/dynamic-import-chunkname": [
167
+ "off",
168
+ {
169
+ importFunctions: [],
170
+ webpackChunknameFormat: "[0-9a-zA-Z-_/.]+",
171
+ },
172
+ ],
173
+ "import/no-relative-parent-imports": ["off"],
174
+ "import/no-unused-modules": [
175
+ "off",
176
+ {
177
+ ignoreExports: [],
178
+ missingExports: true,
179
+ unusedExports: true,
180
+ },
181
+ ],
182
+ "import/no-import-module-exports": [
183
+ "error",
184
+ {
185
+ exceptions: [],
186
+ },
187
+ ],
188
+ "import/no-relative-packages": ["error"],
189
+ },
190
+ };
package/eslint.mjs DELETED
@@ -1,97 +0,0 @@
1
- import eslint from "@eslint/js";
2
- import simpleImportSort from "eslint-plugin-simple-import-sort";
3
- import tseslint from "typescript-eslint";
4
- import tailwind from "eslint-plugin-tailwindcss";
5
- import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
6
- import unusedImports from 'eslint-plugin-unused-imports';
7
- import jest from 'eslint-plugin-jest';
8
- import jsxA11y from 'eslint-plugin-jsx-a11y';
9
- import react from 'eslint-plugin-react';
10
- import importRules from './rules/import.mjs';
11
-
12
- export default tseslint.config(
13
- eslint.configs.recommended,
14
- ...tseslint.configs.recommended,
15
- ...tailwind.configs["flat/recommended"],
16
- jest.configs["flat/recommended"],
17
- jsxA11y.flatConfigs.recommended,
18
- react.configs.flat.recommended,
19
- {
20
- rules: {
21
- // from eslint-config-airbnb
22
- 'react/display-name': ['off', { ignoreTranspilerName: false }],
23
- }
24
- },
25
- {
26
- settings: {
27
- react: {
28
- version: "detect"
29
- }
30
- }
31
- },
32
- {
33
- languageOptions: {
34
- parserOptions: {
35
- projectService: true,
36
- // tsconfigRootDir: import.meta.dirname,
37
- },
38
- },
39
- },
40
- {
41
- plugins: {
42
- "simple-import-sort": simpleImportSort,
43
- },
44
- rules: {
45
- "simple-import-sort/imports": "error",
46
- "simple-import-sort/exports": "error",
47
- },
48
- },
49
- {
50
- plugins: {
51
- 'unused-imports': unusedImports
52
- },
53
- rules: {
54
- "no-unused-vars": "off",
55
- "@typescript-eslint/no-unused-vars": "off",
56
- 'unused-imports/no-unused-imports': 'error',
57
- 'unused-imports/no-unused-vars': [
58
- 'warn',
59
- { 'vars': 'all', 'varsIgnorePattern': '^_', 'args': 'after-used', 'argsIgnorePattern': '^_' }
60
- ],
61
- }
62
- },
63
- {
64
- rules: {
65
- '@typescript-eslint/no-explicit-any': [
66
- 'error',
67
- {
68
- ignoreRestArgs: true,
69
- },
70
- ],
71
- }
72
- },
73
- importRules,
74
- // {
75
- // plugins: {
76
- // 'react-hooks': fixupPluginRules(reactHooks),
77
- // },
78
- // rules: {
79
- // // ...
80
- // ...reactHooks.configs.recommended.rules,
81
- // // maybe to change but something from our old config disabled it
82
- // 'react-hooks/exhaustive-deps': 'off'
83
- // },
84
- // },
85
- {
86
- rules: {
87
- // our custom rules
88
- 'jest/expect-expect': 'off',
89
- 'tailwindcss/no-custom-classname': 'off',
90
- 'react/prop-types': 'off',
91
- }
92
- },
93
- eslintPluginPrettierRecommended,
94
- {
95
- ignores: ['**/*.stories.*']
96
- }
97
- );
package/index.mjs DELETED
@@ -1,4 +0,0 @@
1
- import eslint from './eslint.mjs';
2
- import prettier from './prettier.mjs';
3
-
4
- export { eslint, prettier };
package/prettier.mjs DELETED
@@ -1,11 +0,0 @@
1
- export default {
2
- semi: true,
3
- trailingComma: 'all',
4
- singleQuote: true,
5
- printWidth: 200,
6
- tabWidth: 2,
7
- arrowParens: 'avoid',
8
- plugins: [
9
- "prettier-plugin-tailwindcss"
10
- ]
11
- };
package/rules/import.mjs DELETED
@@ -1,280 +0,0 @@
1
- import { fixupPluginRules } from '@eslint/compat';
2
- import importPlugin from 'eslint-plugin-import';
3
-
4
- export default {
5
- plugins: {
6
- 'import': fixupPluginRules(importPlugin),
7
- },
8
- settings: {
9
- "import/resolver": {
10
- "node": {
11
- "extensions": [
12
- ".mjs",
13
- ".js",
14
- ".jsx",
15
- ".json",
16
- ".ts",
17
- ".tsx",
18
- ".d.ts"
19
- ]
20
- }
21
- },
22
- "import/parsers": {
23
- "@typescript-eslint/parser": [
24
- ".ts",
25
- ".tsx",
26
- ".d.ts"
27
- ]
28
- },
29
- "import/extensions": [
30
- ".js",
31
- ".mjs",
32
- ".jsx",
33
- ".ts",
34
- ".tsx",
35
- ".d.ts"
36
- ],
37
- "import/external-module-folders": [
38
- "node_modules",
39
- "node_modules/@types"
40
- ],
41
- "import/core-modules": [],
42
- "import/ignore": [
43
- "node_modules",
44
- "\\.(coffee|scss|css|less|hbs|svg|json)$"
45
- ]
46
- },
47
- rules: {
48
- "import/extensions": [
49
- "off",
50
- "ignorePackages",
51
- {
52
- "js": "never",
53
- "mjs": "never",
54
- "jsx": "never",
55
- "ts": "never",
56
- "tsx": "never"
57
- }
58
- ],
59
- "import/prefer-default-export": [
60
- "off"
61
- ],
62
- "import/named": [
63
- "off"
64
- ],
65
- "import/no-named-as-default-member": [
66
- "off"
67
- ],
68
- "import/no-unresolved": [
69
- "off",
70
- {
71
- "commonjs": true,
72
- "caseSensitive": true,
73
- "caseSensitiveStrict": false
74
- }
75
- ],
76
- "import/no-extraneous-dependencies": [
77
- "error",
78
- {
79
- "devDependencies": [
80
- "test/**",
81
- "tests/**",
82
- "spec/**",
83
- "**/__tests__/**",
84
- "**/__mocks__/**",
85
- "test.{js,jsx}",
86
- "test.{ts,tsx}",
87
- "test-*.{js,jsx}",
88
- "test-*.{ts,tsx}",
89
- "**/*{.,_}{test,spec}.{js,jsx}",
90
- "**/*{.,_}{test,spec}.{ts,tsx}",
91
- "**/jest.config.js",
92
- "**/jest.config.ts",
93
- "**/jest.setup.js",
94
- "**/jest.setup.ts",
95
- "**/vue.config.js",
96
- "**/vue.config.ts",
97
- "**/webpack.config.js",
98
- "**/webpack.config.ts",
99
- "**/webpack.config.*.js",
100
- "**/webpack.config.*.ts",
101
- "**/rollup.config.js",
102
- "**/rollup.config.ts",
103
- "**/rollup.config.*.js",
104
- "**/rollup.config.*.ts",
105
- "**/gulpfile.js",
106
- "**/gulpfile.ts",
107
- "**/gulpfile.*.js",
108
- "**/gulpfile.*.ts",
109
- "**/Gruntfile{,.js}",
110
- "**/Gruntfile{,.ts}",
111
- "**/protractor.conf.js",
112
- "**/protractor.conf.ts",
113
- "**/protractor.conf.*.js",
114
- "**/protractor.conf.*.ts",
115
- "**/karma.conf.js",
116
- "**/karma.conf.ts",
117
- "**/.eslintrc.js",
118
- "**/.eslintrc.ts"
119
- ],
120
- "optionalDependencies": false
121
- }
122
- ],
123
- "import/default": [
124
- "off"
125
- ],
126
- "import/namespace": [
127
- "off"
128
- ],
129
- "import/export": [
130
- "error"
131
- ],
132
- "import/no-named-as-default": [
133
- "error"
134
- ],
135
- "import/no-deprecated": [
136
- "off"
137
- ],
138
- "import/no-mutable-exports": [
139
- "error"
140
- ],
141
- "import/no-commonjs": [
142
- "off"
143
- ],
144
- "import/no-amd": [
145
- "error"
146
- ],
147
- "import/no-nodejs-modules": [
148
- "off"
149
- ],
150
- "import/first": [
151
- "error"
152
- ],
153
- "import/imports-first": [
154
- "off"
155
- ],
156
- "import/no-duplicates": [
157
- "error"
158
- ],
159
- "import/no-namespace": [
160
- "off"
161
- ],
162
- "import/order": [
163
- "error",
164
- {
165
- "groups": [
166
- [
167
- "builtin",
168
- "external",
169
- "internal"
170
- ]
171
- ],
172
- "distinctGroup": true,
173
- "warnOnUnassignedImports": false
174
- }
175
- ],
176
- "import/newline-after-import": [
177
- "error"
178
- ],
179
- "import/no-restricted-paths": [
180
- "off"
181
- ],
182
- "import/max-dependencies": [
183
- "off",
184
- {
185
- "max": 10
186
- }
187
- ],
188
- "import/no-absolute-path": [
189
- "error"
190
- ],
191
- "import/no-dynamic-require": [
192
- "error"
193
- ],
194
- "import/no-internal-modules": [
195
- "off",
196
- {
197
- "allow": []
198
- }
199
- ],
200
- "import/unambiguous": [
201
- "off"
202
- ],
203
- "import/no-webpack-loader-syntax": [
204
- "error"
205
- ],
206
- "import/no-unassigned-import": [
207
- "off"
208
- ],
209
- "import/no-named-default": [
210
- "error"
211
- ],
212
- "import/no-anonymous-default-export": [
213
- "off",
214
- {
215
- "allowArray": false,
216
- "allowArrowFunction": false,
217
- "allowAnonymousClass": false,
218
- "allowAnonymousFunction": false,
219
- "allowLiteral": false,
220
- "allowObject": false
221
- }
222
- ],
223
- "import/exports-last": [
224
- "off"
225
- ],
226
- "import/group-exports": [
227
- "off"
228
- ],
229
- "import/no-default-export": [
230
- "off"
231
- ],
232
- "import/no-named-export": [
233
- "off"
234
- ],
235
- "import/no-self-import": [
236
- "error"
237
- ],
238
- "import/no-cycle": [
239
- "error",
240
- {
241
- "maxDepth": "∞",
242
- "ignoreExternal": false,
243
- "allowUnsafeDynamicCyclicDependency": false
244
- }
245
- ],
246
- "import/no-useless-path-segments": [
247
- "error",
248
- {
249
- "commonjs": true
250
- }
251
- ],
252
- "import/dynamic-import-chunkname": [
253
- "off",
254
- {
255
- "importFunctions": [],
256
- "webpackChunknameFormat": "[0-9a-zA-Z-_/.]+"
257
- }
258
- ],
259
- "import/no-relative-parent-imports": [
260
- "off"
261
- ],
262
- "import/no-unused-modules": [
263
- "off",
264
- {
265
- "ignoreExports": [],
266
- "missingExports": true,
267
- "unusedExports": true
268
- }
269
- ],
270
- "import/no-import-module-exports": [
271
- "error",
272
- {
273
- "exceptions": []
274
- }
275
- ],
276
- "import/no-relative-packages": [
277
- "error"
278
- ]
279
- }
280
- }