@mlaursen/eslint-config 8.0.2 → 9.0.0
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/README.md +47 -42
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +14 -17
package/README.md
CHANGED
|
@@ -14,13 +14,16 @@ Then create an `eslint.config.mjs` with one of the following:
|
|
|
14
14
|
|
|
15
15
|
```js
|
|
16
16
|
// @ts-check
|
|
17
|
-
import {
|
|
17
|
+
import { defineConfig, configs, gitignore } from "@mlaursen/eslint-config";
|
|
18
18
|
|
|
19
19
|
// somewhat strict type checking
|
|
20
|
-
export default
|
|
20
|
+
export default defineConfig(
|
|
21
|
+
gitignore(import.meta.url),
|
|
22
|
+
...configs.frontend("jest")
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
// or with vitest
|
|
23
|
-
// export default
|
|
26
|
+
// export default defineConfig(
|
|
24
27
|
// gitignore(import.meta.url),
|
|
25
28
|
// ...configs.frontend("vitest")
|
|
26
29
|
// );
|
|
@@ -28,16 +31,16 @@ export default config(gitignore(import.meta.url), ...configs.frontend("jest"));
|
|
|
28
31
|
|
|
29
32
|
```js
|
|
30
33
|
// @ts-check
|
|
31
|
-
import {
|
|
34
|
+
import { defineConfig, configs, gitignore } from "@mlaursen/eslint-config";
|
|
32
35
|
|
|
33
36
|
// strict type checking
|
|
34
|
-
export default
|
|
37
|
+
export default defineConfig(
|
|
35
38
|
gitignore(import.meta.url),
|
|
36
39
|
...configs.frontendTypeChecking(import.meta.dirname, "jest")
|
|
37
40
|
);
|
|
38
41
|
|
|
39
42
|
// or with vitest
|
|
40
|
-
// export default
|
|
43
|
+
// export default defineConfig(
|
|
41
44
|
// gitignore(import.meta.url),
|
|
42
45
|
// ...configs.frontendTypeChecking(import.meta.dirname, "vitest")
|
|
43
46
|
// );
|
|
@@ -45,7 +48,7 @@ export default config(
|
|
|
45
48
|
|
|
46
49
|
```js
|
|
47
50
|
// @ts-check
|
|
48
|
-
import {
|
|
51
|
+
import { defineConfig, configs, gitignore } from "@mlaursen/eslint-config";
|
|
49
52
|
|
|
50
53
|
// NOTE: This is recommended for strict type checking. Callable as:
|
|
51
54
|
// `cross-env STRICT_TYPING=true eslint "**/*.{ts,tsx,mts,mtsx,js,jsx,mjs,cjs}`
|
|
@@ -62,12 +65,12 @@ const frontend = strict
|
|
|
62
65
|
// const frontend = strict
|
|
63
66
|
// ? configs.frontendTypeChecking(import.meta.dirname, "vitest")
|
|
64
67
|
// : configs.frontend("vitest");
|
|
65
|
-
export default
|
|
68
|
+
export default defineConfig(gitignore(import.meta.url), ...frontend);
|
|
66
69
|
```
|
|
67
70
|
|
|
68
|
-
The `
|
|
69
|
-
definitions and `gitignore` automatically ignores files from
|
|
70
|
-
your `.gitignore` rules.
|
|
71
|
+
The `defineConfig` export is the `@eslintjs/config.defineConfig()` function to
|
|
72
|
+
provide type definitions and `gitignore` automatically ignores files from
|
|
73
|
+
linting based on your `.gitignore` rules.
|
|
71
74
|
|
|
72
75
|
## Next.js Setup
|
|
73
76
|
|
|
@@ -83,7 +86,7 @@ pnpm add -D @eslint/eslintrc @next/eslint-plugin-next
|
|
|
83
86
|
```diff
|
|
84
87
|
// @ts-check
|
|
85
88
|
+import { FlatCompat } from "@eslint/eslintrc";
|
|
86
|
-
import {
|
|
89
|
+
import { defineConfig, configs, gitignore } from "@mlaursen/eslint-config";
|
|
87
90
|
|
|
88
91
|
+const compat = new FlatCompat({
|
|
89
92
|
+ baseDirectory: import.meta.dirname,
|
|
@@ -91,7 +94,7 @@ pnpm add -D @eslint/eslintrc @next/eslint-plugin-next
|
|
|
91
94
|
+
|
|
92
95
|
|
|
93
96
|
// somewhat strict type checking
|
|
94
|
-
export default
|
|
97
|
+
export default defineConfig(
|
|
95
98
|
gitignore(import.meta.url),
|
|
96
99
|
+ ...compat.config({
|
|
97
100
|
+ extends: ["plugin:@next/next/recommended"],
|
|
@@ -133,9 +136,9 @@ The base config is automatically used by the [typescript](#typescript) config an
|
|
|
133
136
|
|
|
134
137
|
```js
|
|
135
138
|
// @ts-check
|
|
136
|
-
import {
|
|
139
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
137
140
|
|
|
138
|
-
export default
|
|
141
|
+
export default defineConfig(...configs.base);
|
|
139
142
|
```
|
|
140
143
|
|
|
141
144
|
### typescript
|
|
@@ -147,9 +150,9 @@ behavior and disabled strict rules in test files.
|
|
|
147
150
|
|
|
148
151
|
```js
|
|
149
152
|
// @ts-check
|
|
150
|
-
import {
|
|
153
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
151
154
|
|
|
152
|
-
export default
|
|
155
|
+
export default defineConfig(...configs.typescript);
|
|
153
156
|
```
|
|
154
157
|
|
|
155
158
|
### typescriptTypeChecking
|
|
@@ -160,9 +163,11 @@ This is the same as the [typescript](#typescript) config but also includes the `
|
|
|
160
163
|
|
|
161
164
|
```js
|
|
162
165
|
// @ts-check
|
|
163
|
-
import {
|
|
166
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
164
167
|
|
|
165
|
-
export default
|
|
168
|
+
export default defineConfig(
|
|
169
|
+
...configs.typescriptTypeChecking(import.meta.dirname)
|
|
170
|
+
);
|
|
166
171
|
```
|
|
167
172
|
|
|
168
173
|
### testing
|
|
@@ -171,12 +176,12 @@ This enables the [jest](#jest) or [vitest](#vitest) rules along with [jestDom](#
|
|
|
171
176
|
|
|
172
177
|
```js
|
|
173
178
|
// @ts-check
|
|
174
|
-
import {
|
|
179
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
175
180
|
|
|
176
|
-
export default
|
|
181
|
+
export default defineConfig(...configs.testing("jest"));
|
|
177
182
|
|
|
178
183
|
// or vitest
|
|
179
|
-
export default
|
|
184
|
+
export default defineConfig(...configs.testing("vitest"));
|
|
180
185
|
```
|
|
181
186
|
|
|
182
187
|
### jest
|
|
@@ -185,9 +190,9 @@ This only enables the `eslint-plugin-jest.configs['flat/recommended]` rules on t
|
|
|
185
190
|
|
|
186
191
|
```js
|
|
187
192
|
// @ts-check
|
|
188
|
-
import {
|
|
193
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
189
194
|
|
|
190
|
-
export default
|
|
195
|
+
export default defineConfig(...configs.jest);
|
|
191
196
|
```
|
|
192
197
|
|
|
193
198
|
### jestDom
|
|
@@ -196,9 +201,9 @@ This only enables the `eslint-plugin-jest-dom.configs['flat/recommended]` rules
|
|
|
196
201
|
|
|
197
202
|
```js
|
|
198
203
|
// @ts-check
|
|
199
|
-
import {
|
|
204
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
200
205
|
|
|
201
|
-
export default
|
|
206
|
+
export default defineConfig(...configs.jestDom);
|
|
202
207
|
```
|
|
203
208
|
|
|
204
209
|
### vitest
|
|
@@ -211,16 +216,16 @@ This enables the `eslint-plugin-testing-library/.configs["flat/react]` plugin an
|
|
|
211
216
|
|
|
212
217
|
```js
|
|
213
218
|
// @ts-check
|
|
214
|
-
import {
|
|
219
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
215
220
|
|
|
216
|
-
export default
|
|
221
|
+
export default defineConfig(...configs.vitest);
|
|
217
222
|
```
|
|
218
223
|
|
|
219
224
|
```js
|
|
220
225
|
// @ts-check
|
|
221
|
-
import {
|
|
226
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
222
227
|
|
|
223
|
-
export default
|
|
228
|
+
export default defineConfig(...configs.testingLibraryReact);
|
|
224
229
|
```
|
|
225
230
|
|
|
226
231
|
### testingLibraryDom
|
|
@@ -231,9 +236,9 @@ This enables the `eslint-plugin-testing-library/.configs["flat/dom]` plugin and
|
|
|
231
236
|
|
|
232
237
|
```js
|
|
233
238
|
// @ts-check
|
|
234
|
-
import {
|
|
239
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
235
240
|
|
|
236
|
-
export default
|
|
241
|
+
export default defineConfig(...configs.testingLibraryDom);
|
|
237
242
|
```
|
|
238
243
|
|
|
239
244
|
### react
|
|
@@ -242,9 +247,9 @@ This enables the `eslint-plugin-react` and `eslint-plugin-react-hooks`:
|
|
|
242
247
|
|
|
243
248
|
```js
|
|
244
249
|
// @ts-check
|
|
245
|
-
import {
|
|
250
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
246
251
|
|
|
247
|
-
export default
|
|
252
|
+
export default defineConfig(...configs.react);
|
|
248
253
|
```
|
|
249
254
|
|
|
250
255
|
### jsxA11y
|
|
@@ -253,9 +258,9 @@ This enables `eslint-plugin-jsx-a11y`:
|
|
|
253
258
|
|
|
254
259
|
```js
|
|
255
260
|
// @ts-check
|
|
256
|
-
import {
|
|
261
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
257
262
|
|
|
258
|
-
export default
|
|
263
|
+
export default defineConfig(...configs.jsxA11y);
|
|
259
264
|
```
|
|
260
265
|
|
|
261
266
|
### frontend
|
|
@@ -265,12 +270,12 @@ This is my normal frontend repo setup with `react`, `jsxA11y`, `jest` or
|
|
|
265
270
|
|
|
266
271
|
```js
|
|
267
272
|
// @ts-check
|
|
268
|
-
import {
|
|
273
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
269
274
|
|
|
270
|
-
export default
|
|
275
|
+
export default defineConfig(...configs.frontend("jest"));
|
|
271
276
|
|
|
272
277
|
// or with vitest
|
|
273
|
-
export default
|
|
278
|
+
export default defineConfig(...configs.frontend("vitest"));
|
|
274
279
|
```
|
|
275
280
|
|
|
276
281
|
### frontendTypeChecking
|
|
@@ -279,10 +284,10 @@ Same as the [frontend](#frontend), but enables the strict type checking.
|
|
|
279
284
|
|
|
280
285
|
```js
|
|
281
286
|
// @ts-check
|
|
282
|
-
import {
|
|
287
|
+
import { defineConfig, configs } from "@mlaursen/eslint-config";
|
|
283
288
|
|
|
284
|
-
export default
|
|
289
|
+
export default defineConfig(...configs.frontendTypeChecking(import.meta.dirname, "jest"));
|
|
285
290
|
|
|
286
291
|
// or with vitest
|
|
287
|
-
export default
|
|
292
|
+
export default defineConfig(...configs.frontendTypeChecking(import.meta.dirname, "vitest"));
|
|
288
293
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineConfig } from "eslint/config";
|
|
2
2
|
import { gitignore } from "./gitignore.js";
|
|
3
3
|
export * from "./constants.js";
|
|
4
|
-
export {
|
|
4
|
+
export { defineConfig, gitignore };
|
|
5
5
|
export declare const configs: {
|
|
6
6
|
readonly base: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
|
|
7
7
|
readonly jest: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
|
|
@@ -18,7 +18,7 @@ export declare const configs: {
|
|
|
18
18
|
readonly vitest: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
|
|
19
19
|
};
|
|
20
20
|
declare const _default: {
|
|
21
|
-
|
|
21
|
+
defineConfig: typeof defineConfig;
|
|
22
22
|
configs: {
|
|
23
23
|
readonly base: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
|
|
24
24
|
readonly jest: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineConfig } from "eslint/config";
|
|
2
2
|
import { base } from "./base.js";
|
|
3
3
|
import { frontend, frontendTypeChecking } from "./frontend.js";
|
|
4
4
|
import { gitignore } from "./gitignore.js";
|
|
@@ -8,7 +8,7 @@ import { testingLibraryDom, testingLibraryReact } from "./testing-library.js";
|
|
|
8
8
|
import { jest, jestDom, testing, vitest } from "./testing.js";
|
|
9
9
|
import { typescript, typescriptTypeChecking } from "./typescript.js";
|
|
10
10
|
export * from "./constants.js";
|
|
11
|
-
export {
|
|
11
|
+
export { defineConfig, gitignore };
|
|
12
12
|
export var configs = {
|
|
13
13
|
base: base,
|
|
14
14
|
jest: jest,
|
|
@@ -25,7 +25,7 @@ export var configs = {
|
|
|
25
25
|
vitest: vitest,
|
|
26
26
|
};
|
|
27
27
|
export default {
|
|
28
|
-
|
|
28
|
+
defineConfig: defineConfig,
|
|
29
29
|
configs: configs,
|
|
30
30
|
gitignore: gitignore,
|
|
31
31
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mlaursen/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "9.0.0",
|
|
5
5
|
"description": "An eslint config used by mlaursen for most projects.",
|
|
6
6
|
"repository": "https://github.com/mlaursen/eslint-config.git",
|
|
7
7
|
"author": "Mikkel Laursen <mlaursen03@gmail.com>",
|
|
@@ -21,32 +21,29 @@
|
|
|
21
21
|
"typescript"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@eslint/compat": "^1.
|
|
25
|
-
"@eslint/js": "^9.
|
|
24
|
+
"@eslint/compat": "^1.4.0",
|
|
25
|
+
"@eslint/js": "^9.36.0",
|
|
26
26
|
"@types/eslint-plugin-jsx-a11y": "^6.10.0",
|
|
27
|
-
"@typescript-eslint/utils": "^8.
|
|
28
|
-
"@vitest/eslint-plugin": "^1.3.
|
|
27
|
+
"@typescript-eslint/utils": "^8.44.1",
|
|
28
|
+
"@vitest/eslint-plugin": "^1.3.13",
|
|
29
29
|
"eslint-plugin-jest": "^29.0.1",
|
|
30
30
|
"eslint-plugin-jest-dom": "^5.5.0",
|
|
31
31
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
32
32
|
"eslint-plugin-react": "^7.37.5",
|
|
33
33
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
34
|
-
"eslint-plugin-testing-library": "^7.
|
|
35
|
-
"typescript-eslint": "^8.
|
|
34
|
+
"eslint-plugin-testing-library": "^7.10.0",
|
|
35
|
+
"typescript-eslint": "^8.44.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@changesets/cli": "^2.29.
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"
|
|
42
|
-
"dotenv": "^17.2.0",
|
|
43
|
-
"eslint": "^9.31.0",
|
|
38
|
+
"@changesets/cli": "^2.29.7",
|
|
39
|
+
"@mlaursen/release-script": "^0.0.5",
|
|
40
|
+
"@types/node": "^24.5.2",
|
|
41
|
+
"eslint": "^9.36.0",
|
|
44
42
|
"husky": "^9.1.7",
|
|
45
|
-
"
|
|
46
|
-
"lint-staged": "^16.1.2",
|
|
43
|
+
"lint-staged": "^16.2.1",
|
|
47
44
|
"prettier": "^3.6.2",
|
|
48
|
-
"tsx": "^4.20.
|
|
49
|
-
"typescript": "^5.
|
|
45
|
+
"tsx": "^4.20.6",
|
|
46
|
+
"typescript": "^5.9.2"
|
|
50
47
|
},
|
|
51
48
|
"peerDependencies": {
|
|
52
49
|
"eslint": ">= 9.0.0",
|