@dhzh/eslint-config 2.0.1 → 2.0.2
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 +74 -33
- package/dist/cli/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,52 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@dhzh/eslint-config)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An ESLint flat config preset for TypeScript-first projects with built-in support for React, Vue, JSON, YAML, TOML, Tailwind CSS, UnoCSS, and formatting rules.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Included Configs
|
|
8
|
+
|
|
9
|
+
| Config | Source | Powered by |
|
|
8
10
|
|---|---|---|
|
|
9
|
-
| [react](./src/configs/react.ts) | [`
|
|
10
|
-
| [vue](./src/configs/vue.ts) | [`eslint-plugin-vue`](https://
|
|
11
|
-
| [stylistic](./src/configs/stylistic.ts) | [`
|
|
12
|
-
| [typescript](./src/configs/typescript.ts) | [`typescript-eslint`](https://typescript-eslint.io/) |
|
|
13
|
-
| [javascript](./src/configs/javascript.ts) | [`@eslint/js`](https://eslint.
|
|
14
|
-
| [node](./src/configs/node.ts) | [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n) |
|
|
15
|
-
| [json](./src/configs/json.ts) | [`eslint-plugin-jsonc`](https://ota-meshi.github.io/eslint-plugin-jsonc/) [`eslint-plugin-package-json`](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json) |
|
|
16
|
-
| [unicorn](./src/configs/unicorn.ts) | [`eslint-plugin-unicorn`](https://www.npmjs.com/package/eslint-plugin-unicorn) |
|
|
17
|
-
| [imports](./src/configs/imports.ts) | [`eslint-plugin-import-x`](https://www.npmjs.com/package/eslint-plugin-import-x) [`eslint-plugin-unused-imports`](https://github.com/sweepline/eslint-plugin-unused-imports) [`eslint-plugin-simple-import-sort`](https://github.com/lydell/eslint-plugin-simple-import-sort) |
|
|
18
|
-
| [
|
|
19
|
-
| [tailwindcss](./src/configs/tailwindcss.ts) | [`eslint-plugin-tailwindcss`](https://github.com/francoismassart/eslint-plugin-tailwindcss) |
|
|
20
|
-
| [unocss](./src/configs/unocss.ts) | [`@unocss/eslint-config`](https://unocss.dev/integrations/eslint) |
|
|
21
|
-
| [yml](./src/configs/yml.ts) | [`eslint-plugin-yml`](https://ota-meshi.github.io/eslint-plugin-yml/)
|
|
22
|
-
| [toml](./src/configs/toml.ts) | [`eslint-plugin-toml`](https://
|
|
23
|
-
|
|
|
24
|
-
| [
|
|
25
|
-
| [eslint-
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
11
|
+
| React | [src/configs/react.ts](./src/configs/react.ts) | [`@eslint-react/eslint-plugin`](https://www.npmjs.com/package/@eslint-react/eslint-plugin) [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) [`eslint-plugin-react-refresh`](https://www.npmjs.com/package/eslint-plugin-react-refresh) [`eslint-plugin-react-compiler`](https://www.npmjs.com/package/eslint-plugin-react-compiler) [`eslint-plugin-react-google-translate`](https://www.npmjs.com/package/eslint-plugin-react-google-translate) |
|
|
12
|
+
| Vue | [src/configs/vue.ts](./src/configs/vue.ts) | [`@eslint/js`](https://www.npmjs.com/package/@eslint/js) [`typescript-eslint`](https://www.npmjs.com/package/typescript-eslint) [`eslint-plugin-vue`](https://www.npmjs.com/package/eslint-plugin-vue) [`eslint-merge-processors`](https://www.npmjs.com/package/eslint-merge-processors) [`eslint-processor-vue-blocks`](https://www.npmjs.com/package/eslint-processor-vue-blocks) |
|
|
13
|
+
| Stylistic | [src/configs/stylistic.ts](./src/configs/stylistic.ts) | [`@stylistic/eslint-plugin`](https://www.npmjs.com/package/@stylistic/eslint-plugin) [`eslint-plugin-antfu`](https://www.npmjs.com/package/eslint-plugin-antfu) |
|
|
14
|
+
| TypeScript | [src/configs/typescript.ts](./src/configs/typescript.ts) | [`typescript-eslint`](https://typescript-eslint.io/) |
|
|
15
|
+
| JavaScript | [src/configs/javascript.ts](./src/configs/javascript.ts) | [`@eslint/js`](https://www.npmjs.com/package/@eslint/js) [`eslint-plugin-antfu`](https://www.npmjs.com/package/eslint-plugin-antfu) |
|
|
16
|
+
| Node.js | [src/configs/node.ts](./src/configs/node.ts) | [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n) |
|
|
17
|
+
| JSON and package.json | [src/configs/json.ts](./src/configs/json.ts) | [`eslint-plugin-jsonc`](https://ota-meshi.github.io/eslint-plugin-jsonc/) [`eslint-plugin-package-json`](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json) |
|
|
18
|
+
| Unicorn | [src/configs/unicorn.ts](./src/configs/unicorn.ts) | [`eslint-plugin-unicorn`](https://www.npmjs.com/package/eslint-plugin-unicorn) |
|
|
19
|
+
| Imports | [src/configs/imports.ts](./src/configs/imports.ts) | [`eslint-plugin-import-x`](https://www.npmjs.com/package/eslint-plugin-import-x) [`eslint-plugin-unused-imports`](https://github.com/sweepline/eslint-plugin-unused-imports) [`eslint-plugin-simple-import-sort`](https://github.com/lydell/eslint-plugin-simple-import-sort) [`eslint-plugin-antfu`](https://github.com/antfu/eslint-plugin-antfu) |
|
|
20
|
+
| Format | [src/configs/format.ts](./src/configs/format.ts) | [`eslint-plugin-format`](https://www.npmjs.com/package/eslint-plugin-format) [`@prettier/plugin-xml`](https://www.npmjs.com/package/@prettier/plugin-xml) |
|
|
21
|
+
| Tailwind CSS | [src/configs/tailwindcss.ts](./src/configs/tailwindcss.ts) | [`eslint-plugin-tailwindcss`](https://github.com/francoismassart/eslint-plugin-tailwindcss) |
|
|
22
|
+
| UnoCSS | [src/configs/unocss.ts](./src/configs/unocss.ts) | [`@unocss/eslint-config`](https://unocss.dev/integrations/eslint) |
|
|
23
|
+
| YAML | [src/configs/yml.ts](./src/configs/yml.ts) | [`eslint-plugin-yml`](https://ota-meshi.github.io/eslint-plugin-yml/) |
|
|
24
|
+
| TOML | [src/configs/toml.ts](./src/configs/toml.ts) | [`eslint-plugin-toml`](https://www.npmjs.com/package/eslint-plugin-toml) [`toml-eslint-parser`](https://www.npmjs.com/package/toml-eslint-parser) |
|
|
25
|
+
| RegExp | [src/configs/regexp.ts](./src/configs/regexp.ts) | [`eslint-plugin-regexp`](https://ota-meshi.github.io/eslint-plugin-regexp/) |
|
|
26
|
+
| ESLint comments | [src/configs/eslint-comments.ts](./src/configs/eslint-comments.ts) | [`@eslint-community/eslint-plugin-eslint-comments`](https://eslint-community.github.io/eslint-plugin-eslint-comments/) |
|
|
27
|
+
| Testing | Planned | [`eslint-plugin-vitest`](https://github.com/vitest-dev/eslint-plugin-vitest) [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest) [`eslint-plugin-no-only-tests`](https://github.com/levibuzolic/eslint-plugin-no-only-tests) |
|
|
28
|
+
| Markdown | Planned | [`@eslint/markdown`](https://github.com/eslint/markdown) |
|
|
29
|
+
| JSDoc | Planned | [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) |
|
|
30
|
+
| Ignores and language options | [src/configs/ignores.ts](./src/configs/ignores.ts), [src/configs/language-options.ts](./src/configs/language-options.ts) | Built-in config composition |
|
|
31
|
+
|
|
32
|
+
## Requirements
|
|
33
|
+
|
|
34
|
+
- Node.js `^22.13.0 || >=24`
|
|
35
|
+
- ESLint `^10.2.1`
|
|
36
|
+
- ESM-only package consumption
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
### CLI Wizard
|
|
41
|
+
|
|
42
|
+
Use the CLI to create or migrate your flat config setup:
|
|
37
43
|
|
|
38
44
|
```shell
|
|
39
45
|
pnpm dlx @dhzh/eslint-config@latest
|
|
40
46
|
```
|
|
41
47
|
|
|
42
|
-
|
|
48
|
+
The wizard updates:
|
|
49
|
+
|
|
50
|
+
- `package.json`
|
|
51
|
+
- `eslint.config.*`
|
|
52
|
+
- `.vscode/settings.json`
|
|
53
|
+
- `.npmignore`
|
|
43
54
|
|
|
44
|
-
|
|
55
|
+
### Manual Setup
|
|
56
|
+
|
|
57
|
+
Install the package and ESLint:
|
|
45
58
|
|
|
46
59
|
```bash
|
|
47
60
|
pnpm i -D eslint @dhzh/eslint-config
|
|
48
61
|
```
|
|
49
62
|
|
|
50
|
-
|
|
63
|
+
Then create `eslint.config.mjs`:
|
|
51
64
|
|
|
52
65
|
```js
|
|
53
66
|
// eslint.config.mjs
|
|
@@ -56,6 +69,34 @@ import { defineConfig } from '@dhzh/eslint-config';
|
|
|
56
69
|
export default defineConfig();
|
|
57
70
|
```
|
|
58
71
|
|
|
72
|
+
## Customization
|
|
73
|
+
|
|
74
|
+
`defineConfig()` accepts `configs`, `ignorePatterns`, and `sourceType`.
|
|
75
|
+
|
|
76
|
+
```js
|
|
77
|
+
// eslint.config.mjs
|
|
78
|
+
import { defineConfig } from '@dhzh/eslint-config';
|
|
79
|
+
|
|
80
|
+
export default defineConfig({
|
|
81
|
+
ignorePatterns: ['dist', 'coverage'],
|
|
82
|
+
configs: {
|
|
83
|
+
json: {
|
|
84
|
+
packageJsonRequireType: false,
|
|
85
|
+
},
|
|
86
|
+
yml: {
|
|
87
|
+
quotes: 'double',
|
|
88
|
+
},
|
|
89
|
+
imports: {
|
|
90
|
+
closeOrder: false,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For the full option surface, check [src/types/index.ts](./src/types/index.ts) and the config implementations under [src/configs](./src/configs).
|
|
97
|
+
|
|
98
|
+
Rows marked as `Planned` are not wired into the current published config yet.
|
|
99
|
+
|
|
59
100
|
## License
|
|
60
101
|
|
|
61
102
|
[MIT](./LICENSE) License © 2022 [Lyle Zheng](https://github.com/tinywaves)
|
package/dist/cli/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import fsp from "node:fs/promises";
|
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
//#region package.json
|
|
9
|
-
var version = "2.0.
|
|
9
|
+
var version = "2.0.2";
|
|
10
10
|
var devDependencies = {
|
|
11
11
|
"@eslint/config-inspector": "^2.0.0",
|
|
12
12
|
"@prettier/plugin-xml": "^3.4.2",
|