@lzear/eslint-config 4.0.3 → 4.1.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 +101 -0
- package/dist/index.js +0 -5
- package/package.json +2 -3
package/README.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# @lzear/eslint-config
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@lzear/eslint-config)
|
|
4
|
+
[](../../LICENSE)
|
|
5
|
+
|
|
6
|
+
Shared ESLint flat config for lzear repos. Includes rules for TypeScript, React, Node, Vitest, imports, accessibility, and more.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
npm install -D @lzear/eslint-config eslint
|
|
12
|
+
# or
|
|
13
|
+
yarn add -D @lzear/eslint-config eslint
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Requires Node ≥ 20, ESLint ≥ 9.
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
**Minimal `eslint.config.ts`:**
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import lzearConfig from '@lzear/eslint-config'
|
|
24
|
+
|
|
25
|
+
export default await lzearConfig()
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**With options** — disable feature sets you don't use:
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import lzearConfig from '@lzear/eslint-config'
|
|
32
|
+
|
|
33
|
+
export default await lzearConfig({
|
|
34
|
+
react: false, // not a React project
|
|
35
|
+
vitest: false, // no tests
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
| Option | Default | Description |
|
|
40
|
+
|--------------|---------|------------------------------------------|
|
|
41
|
+
| `typescript` | `true` | TypeScript rules via `typescript-eslint` |
|
|
42
|
+
| `react` | `true` | React, hooks, a11y, compiler rules |
|
|
43
|
+
| `node` | `true` | Node.js rules via `eslint-plugin-n` |
|
|
44
|
+
| `vitest` | `true` | Vitest rules via `@vitest/eslint-plugin` |
|
|
45
|
+
|
|
46
|
+
**Extend with extra rules, overrides, and ignores:**
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import type { Linter } from 'eslint'
|
|
50
|
+
import lzearConfig from '@lzear/eslint-config'
|
|
51
|
+
|
|
52
|
+
const base = await lzearConfig({ react: false })
|
|
53
|
+
|
|
54
|
+
const config: Linter.Config[] = [
|
|
55
|
+
...base,
|
|
56
|
+
|
|
57
|
+
// Extra rules applied to all files
|
|
58
|
+
{
|
|
59
|
+
rules: {
|
|
60
|
+
'no-console': 'error',
|
|
61
|
+
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
// Turn off or downgrade specific rules
|
|
66
|
+
{
|
|
67
|
+
rules: {
|
|
68
|
+
'sonarjs/cognitive-complexity': 'off',
|
|
69
|
+
'import-x/order': 'warn',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
// Override rules for specific files
|
|
74
|
+
{
|
|
75
|
+
files: ['scripts/**/*.ts'],
|
|
76
|
+
rules: {
|
|
77
|
+
'no-console': 'off',
|
|
78
|
+
'unicorn/no-process-exit': 'off',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
// Ignore generated files and specific folders
|
|
83
|
+
{
|
|
84
|
+
ignores: [
|
|
85
|
+
'src/generated/**',
|
|
86
|
+
'public/**',
|
|
87
|
+
'**/*.min.js',
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
export default config
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Included plugins
|
|
96
|
+
|
|
97
|
+
`@eslint/js` · `typescript-eslint` · `eslint-plugin-unicorn` · `eslint-plugin-sonarjs` · `eslint-plugin-import-x` · `eslint-plugin-promise` · `eslint-plugin-regexp` · `eslint-plugin-react` · `eslint-plugin-react-hooks` · `eslint-plugin-jsx-a11y` · `eslint-plugin-n` · `@vitest/eslint-plugin` · `eslint-plugin-package-json` · `eslint-config-prettier` · and more.
|
|
98
|
+
|
|
99
|
+
## Part of forge
|
|
100
|
+
|
|
101
|
+
This package is part of [forge](https://github.com/lzear/forge) — shared dev tooling for lzear repos.
|
package/dist/index.js
CHANGED
|
@@ -435,7 +435,6 @@ var react = async (config) => {
|
|
|
435
435
|
reactHooksPlugin,
|
|
436
436
|
reactPerfPlugin,
|
|
437
437
|
reactPlugin,
|
|
438
|
-
nextPlugin,
|
|
439
438
|
reactXPlugin,
|
|
440
439
|
reactDomPlugin,
|
|
441
440
|
reactWebApiPlugin
|
|
@@ -444,7 +443,6 @@ var react = async (config) => {
|
|
|
444
443
|
interopDefault(import("eslint-plugin-react-hooks")),
|
|
445
444
|
interopDefault(import("eslint-plugin-react-perf")),
|
|
446
445
|
interopDefault(import("eslint-plugin-react")),
|
|
447
|
-
interopDefault(import("@next/eslint-plugin-next")),
|
|
448
446
|
interopDefault(import("eslint-plugin-react-x")),
|
|
449
447
|
interopDefault(import("eslint-plugin-react-dom")),
|
|
450
448
|
interopDefault(import("eslint-plugin-react-web-api"))
|
|
@@ -457,7 +455,6 @@ var react = async (config) => {
|
|
|
457
455
|
name: "lzear/react",
|
|
458
456
|
files,
|
|
459
457
|
plugins: {
|
|
460
|
-
"@next/next": nextPlugin,
|
|
461
458
|
react: reactPlugin,
|
|
462
459
|
"react-compiler": reactCompilerPlugin,
|
|
463
460
|
"react-dom": reactDomPlugin,
|
|
@@ -473,8 +470,6 @@ var react = async (config) => {
|
|
|
473
470
|
"react-perf/jsx-no-new-function-as-prop": 0,
|
|
474
471
|
"react-perf/jsx-no-new-object-as-prop": 0,
|
|
475
472
|
...reactPlugin.configs.recommended.rules,
|
|
476
|
-
...nextPlugin.configs.recommended.rules,
|
|
477
|
-
...nextPlugin.configs["core-web-vitals"].rules,
|
|
478
473
|
"react/react-in-jsx-scope": 0,
|
|
479
474
|
"react/no-unknown-property": ["error", { ignore: ["jsx", "global"] }],
|
|
480
475
|
...config.typescript ? reactXPlugin.configs["recommended-typescript"].rules : reactXPlugin.configs.recommended.rules,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lzear/eslint-config",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Shared ESLint flat config for lzear repos",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@eslint-community/eslint-plugin-eslint-comments": "^4",
|
|
31
31
|
"@eslint/js": "^9",
|
|
32
|
-
"@next/eslint-plugin-next": "^16",
|
|
33
32
|
"@vitest/eslint-plugin": "^1",
|
|
34
33
|
"eslint-config-prettier": "^10",
|
|
35
34
|
"eslint-import-resolver-typescript": "^4",
|
|
@@ -58,7 +57,7 @@
|
|
|
58
57
|
"typescript-eslint": "^8"
|
|
59
58
|
},
|
|
60
59
|
"devDependencies": {
|
|
61
|
-
"@lzear/configs": "4.0
|
|
60
|
+
"@lzear/configs": "4.1.0",
|
|
62
61
|
"@vitest/coverage-v8": "^4",
|
|
63
62
|
"eslint": "^9",
|
|
64
63
|
"tsup": "^8",
|