@stdex/presets-eslint-base 0.0.0-stage → 1.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/index.mjs +121 -0
- package/package.json +25 -4
- package/README.md +0 -3
package/index.mjs
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import eslintJs from '@eslint/js'
|
|
2
|
+
import { defineConfig } from 'eslint/config'
|
|
3
|
+
import eslintConfigPrettier from 'eslint-config-prettier'
|
|
4
|
+
import eslintImportX from 'eslint-plugin-import-x'
|
|
5
|
+
import globals from 'globals'
|
|
6
|
+
|
|
7
|
+
export default defineConfig([
|
|
8
|
+
eslintJs.configs.recommended,
|
|
9
|
+
eslintImportX.flatConfigs.recommended,
|
|
10
|
+
eslintConfigPrettier,
|
|
11
|
+
|
|
12
|
+
{
|
|
13
|
+
name: '@stdex/base',
|
|
14
|
+
rules: {
|
|
15
|
+
// Possible Problems
|
|
16
|
+
'array-callback-return': 'error',
|
|
17
|
+
'no-constructor-return': 'error',
|
|
18
|
+
'no-control-regex': 'off',
|
|
19
|
+
'no-duplicate-imports': ['error', { includeExports: true }],
|
|
20
|
+
'no-new-native-nonconstructor': 'error',
|
|
21
|
+
'no-promise-executor-return': ['error', { allowVoid: true }],
|
|
22
|
+
'no-self-compare': 'error',
|
|
23
|
+
'no-template-curly-in-string': 'error',
|
|
24
|
+
'no-unreachable-loop': 'error',
|
|
25
|
+
'no-unused-vars': [
|
|
26
|
+
'error',
|
|
27
|
+
{
|
|
28
|
+
varsIgnorePattern: 'React',
|
|
29
|
+
argsIgnorePattern: '^_',
|
|
30
|
+
destructuredArrayIgnorePattern: '^_',
|
|
31
|
+
caughtErrors: 'none',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
'require-atomic-updates': ['error', { allowProperties: true }],
|
|
35
|
+
|
|
36
|
+
// Suggestions
|
|
37
|
+
'accessor-pairs': 'error',
|
|
38
|
+
'block-scoped-var': 'error',
|
|
39
|
+
curly: ['error', 'multi-line'],
|
|
40
|
+
'default-case': 'error',
|
|
41
|
+
'default-case-last': 'error',
|
|
42
|
+
'default-param-last': 'off', // 此规则有缺陷:后面有其他可选参数的情况下,有默认值的参数应可以不在最后
|
|
43
|
+
eqeqeq: 'error',
|
|
44
|
+
'grouped-accessor-pairs': 'error',
|
|
45
|
+
'guard-for-in': 'error',
|
|
46
|
+
'no-alert': 'warn',
|
|
47
|
+
'no-caller': 'error',
|
|
48
|
+
'no-eq-null': 'error',
|
|
49
|
+
'no-eval': 'error',
|
|
50
|
+
'no-extend-native': 'error',
|
|
51
|
+
'no-extra-bind': 'error',
|
|
52
|
+
'no-extra-label': 'error',
|
|
53
|
+
'no-floating-decimal': 'error',
|
|
54
|
+
'no-implicit-globals': 'error',
|
|
55
|
+
'no-implied-eval': 'error',
|
|
56
|
+
'no-label-var': 'error',
|
|
57
|
+
'no-labels': 'error',
|
|
58
|
+
'no-lone-blocks': 'error',
|
|
59
|
+
'no-mixed-operators': 'error',
|
|
60
|
+
'no-multi-assign': 'error',
|
|
61
|
+
'no-multi-str': 'error',
|
|
62
|
+
'no-new-func': 'error',
|
|
63
|
+
'no-new-wrappers': 'error',
|
|
64
|
+
'no-octal-escape': 'error',
|
|
65
|
+
'no-proto': 'error',
|
|
66
|
+
'no-restricted-imports': 'error',
|
|
67
|
+
'no-return-assign': 'error',
|
|
68
|
+
'no-return-await': 'error',
|
|
69
|
+
'no-script-url': 'error',
|
|
70
|
+
'no-sequences': 'error',
|
|
71
|
+
'no-throw-literal': 'error',
|
|
72
|
+
'no-undef-init': 'error',
|
|
73
|
+
'no-unneeded-ternary': 'error',
|
|
74
|
+
'no-unused-expressions': 'error',
|
|
75
|
+
'no-useless-call': 'error',
|
|
76
|
+
'no-useless-computed-key': 'error',
|
|
77
|
+
'no-useless-concat': 'error',
|
|
78
|
+
'no-useless-constructor': 'error',
|
|
79
|
+
'no-useless-rename': 'error',
|
|
80
|
+
'no-useless-return': 'error',
|
|
81
|
+
'no-var': 'error',
|
|
82
|
+
'no-void': ['error', { allowAsStatement: true }],
|
|
83
|
+
'object-shorthand': 'error',
|
|
84
|
+
'prefer-const': 'error',
|
|
85
|
+
'prefer-numeric-literals': 'error',
|
|
86
|
+
'prefer-object-has-own': 'error',
|
|
87
|
+
'prefer-object-spread': 'error',
|
|
88
|
+
'prefer-promise-reject-errors': 'error',
|
|
89
|
+
'prefer-rest-params': 'error',
|
|
90
|
+
'prefer-spread': 'error',
|
|
91
|
+
'prefer-template': 'off', // 自行选择要不要用 template string
|
|
92
|
+
'quote-props': ['error', 'as-needed'],
|
|
93
|
+
radix: 'error',
|
|
94
|
+
'spaced-comment': ['error', 'always'],
|
|
95
|
+
'symbol-description': 'error',
|
|
96
|
+
yoda: 'error',
|
|
97
|
+
|
|
98
|
+
// Import
|
|
99
|
+
'import-x/extensions': ['error', 'ignorePackages', { ts: 'never' }], // TODO: 暂没找到强制要求 .ts 代码里的引用带 `.js` 后缀又不报缺少 `.ts` 后缀的错的办法
|
|
100
|
+
'import-x/no-useless-path-segments': ['error', { noUselessIndex: false }], // Node.js ES6 Module 里需要把 noUselessIndex 设为 false
|
|
101
|
+
'import-x/no-named-as-default-member': 'off',
|
|
102
|
+
'import-x/no-duplicates': ['error', { considerQueryString: true }],
|
|
103
|
+
'import-x/order': [
|
|
104
|
+
'error',
|
|
105
|
+
{
|
|
106
|
+
groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object'],
|
|
107
|
+
alphabetize: { order: 'asc' },
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
// ESLint 配置文件中允许使用 Node.js 环境下的内容
|
|
114
|
+
{
|
|
115
|
+
name: '@stdex/base/config-file-self',
|
|
116
|
+
files: ['**/eslint.config.{js,cjs,mjs}'],
|
|
117
|
+
languageOptions: {
|
|
118
|
+
globals: globals.node,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
])
|
package/package.json
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stdex/presets-eslint-base",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "公共 ESLint 配置",
|
|
5
|
+
"homepage": "https://github.com/anjianshi/stdex-packages/presets-eslint/",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/anjianshi/stdex-packages/issues",
|
|
8
|
+
"email": "anjianshi@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "anjianshi <anjianshi@gmail.com>",
|
|
12
|
+
"repository": "github:anjianshi/stdex-packages",
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"registry": "https://registry.npmjs.org/",
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"main": "index.mjs",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@eslint/js": "^10.0.1",
|
|
20
|
+
"eslint-config-prettier": "^10.1.8",
|
|
21
|
+
"eslint-plugin-import-x": "^4.17.1",
|
|
22
|
+
"globals": "^17.7.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"eslint": "^10.6.0"
|
|
26
|
+
}
|
|
27
|
+
}
|
package/README.md
DELETED