eslint-config-decent 4.2.34 → 4.2.35
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/dist/oxlint.cjs +36 -36
- package/dist/oxlint.mjs +36 -36
- package/package.json +7 -2
- package/src/oxlint.ts +36 -34
package/dist/oxlint.cjs
CHANGED
|
@@ -66,7 +66,6 @@ const eslintBaseRules = {
|
|
|
66
66
|
"eslint/prefer-exponentiation-operator": "off",
|
|
67
67
|
"eslint/prefer-numeric-literals": "error",
|
|
68
68
|
"eslint/prefer-object-spread": "error",
|
|
69
|
-
"eslint/prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
|
|
70
69
|
"eslint/prefer-template": "error",
|
|
71
70
|
"eslint/sort-imports": ["error", { ignoreCase: true, ignoreDeclarationSort: true, allowSeparatedGroups: true }],
|
|
72
71
|
"eslint/symbol-description": "error",
|
|
@@ -80,7 +79,6 @@ const eslintBaseRules = {
|
|
|
80
79
|
};
|
|
81
80
|
const eslintCjsEsmRules = {
|
|
82
81
|
"eslint/curly": ["error", "multi-line"],
|
|
83
|
-
"eslint/dot-notation": ["error", { allowKeywords: true }],
|
|
84
82
|
"eslint/getter-return": ["error", { allowImplicit: true }],
|
|
85
83
|
"eslint/no-array-constructor": "error",
|
|
86
84
|
"eslint/no-empty-function": ["error", { allow: ["arrowFunctions", "functions", "methods"] }],
|
|
@@ -105,7 +103,8 @@ const eslintCompatRules = {
|
|
|
105
103
|
],
|
|
106
104
|
"eslint-compat/no-restricted-syntax": ["error", "DebuggerStatement", "LabeledStatement", "WithStatement"],
|
|
107
105
|
"eslint-compat/no-undef-init": "error",
|
|
108
|
-
"eslint-compat/no-unreachable-loop": ["error", { ignore: [] }]
|
|
106
|
+
"eslint-compat/no-unreachable-loop": ["error", { ignore: [] }],
|
|
107
|
+
"eslint-compat/prefer-regex-literals": ["error", { disallowRedundantWrapping: true }]
|
|
109
108
|
};
|
|
110
109
|
const typescriptRules = {
|
|
111
110
|
// Disable base ESLint rules that TS extends
|
|
@@ -124,32 +123,6 @@ const typescriptRules = {
|
|
|
124
123
|
"typescript/default-param-last": "error",
|
|
125
124
|
"typescript/dot-notation": "error",
|
|
126
125
|
"typescript/explicit-function-return-type": "off",
|
|
127
|
-
"typescript/explicit-member-accessibility": "error",
|
|
128
|
-
"typescript/member-ordering": [
|
|
129
|
-
"error",
|
|
130
|
-
{
|
|
131
|
-
default: [
|
|
132
|
-
"signature",
|
|
133
|
-
"private-field",
|
|
134
|
-
"public-field",
|
|
135
|
-
"protected-field",
|
|
136
|
-
"public-constructor",
|
|
137
|
-
"protected-constructor",
|
|
138
|
-
"private-constructor",
|
|
139
|
-
"public-method",
|
|
140
|
-
"protected-method",
|
|
141
|
-
"private-method"
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
],
|
|
145
|
-
"typescript/naming-convention": [
|
|
146
|
-
"error",
|
|
147
|
-
{
|
|
148
|
-
selector: "enumMember",
|
|
149
|
-
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
150
|
-
trailingUnderscore: "forbid"
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
126
|
"typescript/no-array-delete": "error",
|
|
154
127
|
"typescript/no-base-to-string": "error",
|
|
155
128
|
"typescript/no-confusing-non-null-assertion": "error",
|
|
@@ -229,6 +202,34 @@ const typescriptRules = {
|
|
|
229
202
|
"typescript/unified-signatures": "error",
|
|
230
203
|
"typescript/use-unknown-in-catch-callback-variable": "off"
|
|
231
204
|
};
|
|
205
|
+
const typescriptCompatRules = {
|
|
206
|
+
"typescript-compat/explicit-member-accessibility": "error",
|
|
207
|
+
"typescript-compat/member-ordering": [
|
|
208
|
+
"error",
|
|
209
|
+
{
|
|
210
|
+
default: [
|
|
211
|
+
"signature",
|
|
212
|
+
"private-field",
|
|
213
|
+
"public-field",
|
|
214
|
+
"protected-field",
|
|
215
|
+
"public-constructor",
|
|
216
|
+
"protected-constructor",
|
|
217
|
+
"private-constructor",
|
|
218
|
+
"public-method",
|
|
219
|
+
"protected-method",
|
|
220
|
+
"private-method"
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
],
|
|
224
|
+
"typescript-compat/naming-convention": [
|
|
225
|
+
"error",
|
|
226
|
+
{
|
|
227
|
+
selector: "enumMember",
|
|
228
|
+
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
229
|
+
trailingUnderscore: "forbid"
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
};
|
|
232
233
|
const importRules = {
|
|
233
234
|
"import/consistent-type-specifier-style": ["error", "prefer-inline"],
|
|
234
235
|
"import/first": "error",
|
|
@@ -253,15 +254,12 @@ const promiseRules = {
|
|
|
253
254
|
};
|
|
254
255
|
const jsdocRules = {
|
|
255
256
|
// Explicitly configured
|
|
256
|
-
"jsdoc/check-param-names": "off",
|
|
257
257
|
"jsdoc/check-tag-names": "error",
|
|
258
|
-
"jsdoc/require-description": "off",
|
|
259
258
|
"jsdoc/require-param": ["error", { enableFixer: false, ignoreWhenAllParamsMissing: true, unnamedRootBase: ["args"] }],
|
|
260
259
|
"jsdoc/require-param-description": "off",
|
|
261
260
|
"jsdoc/require-param-name": "error",
|
|
262
261
|
"jsdoc/require-param-type": "error",
|
|
263
262
|
"jsdoc/require-returns-description": "off",
|
|
264
|
-
"jsdoc/require-jsdoc": "off",
|
|
265
263
|
"jsdoc/require-returns-type": "off",
|
|
266
264
|
// From flat/recommended inheritance
|
|
267
265
|
"jsdoc/check-access": "error",
|
|
@@ -274,16 +272,16 @@ const jsdocRules = {
|
|
|
274
272
|
"jsdoc/require-property-name": "error",
|
|
275
273
|
"jsdoc/require-property-type": "error",
|
|
276
274
|
"jsdoc/require-returns": "error",
|
|
277
|
-
"jsdoc/require-
|
|
278
|
-
"jsdoc/require-yields": "error",
|
|
279
|
-
"jsdoc/require-yields-check": "error",
|
|
280
|
-
"jsdoc/tag-lines": "error"
|
|
275
|
+
"jsdoc/require-yields": "error"
|
|
281
276
|
};
|
|
282
277
|
const jsdocCompatRules = {
|
|
283
278
|
"jsdoc-compat/check-alignment": "error",
|
|
284
279
|
"jsdoc-compat/check-indentation": "error",
|
|
285
280
|
"jsdoc-compat/check-types": "error",
|
|
286
281
|
"jsdoc-compat/require-hyphen-before-param-description": "error",
|
|
282
|
+
"jsdoc-compat/require-returns-check": "error",
|
|
283
|
+
"jsdoc-compat/require-yields-check": "error",
|
|
284
|
+
"jsdoc-compat/tag-lines": "error",
|
|
287
285
|
"jsdoc-compat/valid-types": "error"
|
|
288
286
|
};
|
|
289
287
|
const stylisticCompatRules = {
|
|
@@ -534,6 +532,7 @@ function oxlintConfig(options) {
|
|
|
534
532
|
{ name: "eslint-compat", specifier: "oxlint-plugin-eslint" },
|
|
535
533
|
{ name: "unicorn-compat", specifier: "eslint-plugin-unicorn" },
|
|
536
534
|
{ name: "jsdoc-compat", specifier: "eslint-plugin-jsdoc" },
|
|
535
|
+
{ name: "typescript-compat", specifier: "@typescript-eslint/eslint-plugin" },
|
|
537
536
|
{ name: "stylistic-compat", specifier: "@stylistic/eslint-plugin" },
|
|
538
537
|
...enableReact ? [{ name: "react-compat", specifier: "eslint-plugin-react" }] : [],
|
|
539
538
|
...enableVitest ? [{ name: "vitest-compat", specifier: "@vitest/eslint-plugin" }] : [],
|
|
@@ -548,6 +547,7 @@ function oxlintConfig(options) {
|
|
|
548
547
|
...eslintCjsEsmRules,
|
|
549
548
|
...eslintCompatRules,
|
|
550
549
|
...typescriptRules,
|
|
550
|
+
...typescriptCompatRules,
|
|
551
551
|
...importRules,
|
|
552
552
|
...unicornRules,
|
|
553
553
|
...unicornCompatRules,
|
package/dist/oxlint.mjs
CHANGED
|
@@ -64,7 +64,6 @@ const eslintBaseRules = {
|
|
|
64
64
|
"eslint/prefer-exponentiation-operator": "off",
|
|
65
65
|
"eslint/prefer-numeric-literals": "error",
|
|
66
66
|
"eslint/prefer-object-spread": "error",
|
|
67
|
-
"eslint/prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
|
|
68
67
|
"eslint/prefer-template": "error",
|
|
69
68
|
"eslint/sort-imports": ["error", { ignoreCase: true, ignoreDeclarationSort: true, allowSeparatedGroups: true }],
|
|
70
69
|
"eslint/symbol-description": "error",
|
|
@@ -78,7 +77,6 @@ const eslintBaseRules = {
|
|
|
78
77
|
};
|
|
79
78
|
const eslintCjsEsmRules = {
|
|
80
79
|
"eslint/curly": ["error", "multi-line"],
|
|
81
|
-
"eslint/dot-notation": ["error", { allowKeywords: true }],
|
|
82
80
|
"eslint/getter-return": ["error", { allowImplicit: true }],
|
|
83
81
|
"eslint/no-array-constructor": "error",
|
|
84
82
|
"eslint/no-empty-function": ["error", { allow: ["arrowFunctions", "functions", "methods"] }],
|
|
@@ -103,7 +101,8 @@ const eslintCompatRules = {
|
|
|
103
101
|
],
|
|
104
102
|
"eslint-compat/no-restricted-syntax": ["error", "DebuggerStatement", "LabeledStatement", "WithStatement"],
|
|
105
103
|
"eslint-compat/no-undef-init": "error",
|
|
106
|
-
"eslint-compat/no-unreachable-loop": ["error", { ignore: [] }]
|
|
104
|
+
"eslint-compat/no-unreachable-loop": ["error", { ignore: [] }],
|
|
105
|
+
"eslint-compat/prefer-regex-literals": ["error", { disallowRedundantWrapping: true }]
|
|
107
106
|
};
|
|
108
107
|
const typescriptRules = {
|
|
109
108
|
// Disable base ESLint rules that TS extends
|
|
@@ -122,32 +121,6 @@ const typescriptRules = {
|
|
|
122
121
|
"typescript/default-param-last": "error",
|
|
123
122
|
"typescript/dot-notation": "error",
|
|
124
123
|
"typescript/explicit-function-return-type": "off",
|
|
125
|
-
"typescript/explicit-member-accessibility": "error",
|
|
126
|
-
"typescript/member-ordering": [
|
|
127
|
-
"error",
|
|
128
|
-
{
|
|
129
|
-
default: [
|
|
130
|
-
"signature",
|
|
131
|
-
"private-field",
|
|
132
|
-
"public-field",
|
|
133
|
-
"protected-field",
|
|
134
|
-
"public-constructor",
|
|
135
|
-
"protected-constructor",
|
|
136
|
-
"private-constructor",
|
|
137
|
-
"public-method",
|
|
138
|
-
"protected-method",
|
|
139
|
-
"private-method"
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
],
|
|
143
|
-
"typescript/naming-convention": [
|
|
144
|
-
"error",
|
|
145
|
-
{
|
|
146
|
-
selector: "enumMember",
|
|
147
|
-
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
148
|
-
trailingUnderscore: "forbid"
|
|
149
|
-
}
|
|
150
|
-
],
|
|
151
124
|
"typescript/no-array-delete": "error",
|
|
152
125
|
"typescript/no-base-to-string": "error",
|
|
153
126
|
"typescript/no-confusing-non-null-assertion": "error",
|
|
@@ -227,6 +200,34 @@ const typescriptRules = {
|
|
|
227
200
|
"typescript/unified-signatures": "error",
|
|
228
201
|
"typescript/use-unknown-in-catch-callback-variable": "off"
|
|
229
202
|
};
|
|
203
|
+
const typescriptCompatRules = {
|
|
204
|
+
"typescript-compat/explicit-member-accessibility": "error",
|
|
205
|
+
"typescript-compat/member-ordering": [
|
|
206
|
+
"error",
|
|
207
|
+
{
|
|
208
|
+
default: [
|
|
209
|
+
"signature",
|
|
210
|
+
"private-field",
|
|
211
|
+
"public-field",
|
|
212
|
+
"protected-field",
|
|
213
|
+
"public-constructor",
|
|
214
|
+
"protected-constructor",
|
|
215
|
+
"private-constructor",
|
|
216
|
+
"public-method",
|
|
217
|
+
"protected-method",
|
|
218
|
+
"private-method"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"typescript-compat/naming-convention": [
|
|
223
|
+
"error",
|
|
224
|
+
{
|
|
225
|
+
selector: "enumMember",
|
|
226
|
+
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
227
|
+
trailingUnderscore: "forbid"
|
|
228
|
+
}
|
|
229
|
+
]
|
|
230
|
+
};
|
|
230
231
|
const importRules = {
|
|
231
232
|
"import/consistent-type-specifier-style": ["error", "prefer-inline"],
|
|
232
233
|
"import/first": "error",
|
|
@@ -251,15 +252,12 @@ const promiseRules = {
|
|
|
251
252
|
};
|
|
252
253
|
const jsdocRules = {
|
|
253
254
|
// Explicitly configured
|
|
254
|
-
"jsdoc/check-param-names": "off",
|
|
255
255
|
"jsdoc/check-tag-names": "error",
|
|
256
|
-
"jsdoc/require-description": "off",
|
|
257
256
|
"jsdoc/require-param": ["error", { enableFixer: false, ignoreWhenAllParamsMissing: true, unnamedRootBase: ["args"] }],
|
|
258
257
|
"jsdoc/require-param-description": "off",
|
|
259
258
|
"jsdoc/require-param-name": "error",
|
|
260
259
|
"jsdoc/require-param-type": "error",
|
|
261
260
|
"jsdoc/require-returns-description": "off",
|
|
262
|
-
"jsdoc/require-jsdoc": "off",
|
|
263
261
|
"jsdoc/require-returns-type": "off",
|
|
264
262
|
// From flat/recommended inheritance
|
|
265
263
|
"jsdoc/check-access": "error",
|
|
@@ -272,16 +270,16 @@ const jsdocRules = {
|
|
|
272
270
|
"jsdoc/require-property-name": "error",
|
|
273
271
|
"jsdoc/require-property-type": "error",
|
|
274
272
|
"jsdoc/require-returns": "error",
|
|
275
|
-
"jsdoc/require-
|
|
276
|
-
"jsdoc/require-yields": "error",
|
|
277
|
-
"jsdoc/require-yields-check": "error",
|
|
278
|
-
"jsdoc/tag-lines": "error"
|
|
273
|
+
"jsdoc/require-yields": "error"
|
|
279
274
|
};
|
|
280
275
|
const jsdocCompatRules = {
|
|
281
276
|
"jsdoc-compat/check-alignment": "error",
|
|
282
277
|
"jsdoc-compat/check-indentation": "error",
|
|
283
278
|
"jsdoc-compat/check-types": "error",
|
|
284
279
|
"jsdoc-compat/require-hyphen-before-param-description": "error",
|
|
280
|
+
"jsdoc-compat/require-returns-check": "error",
|
|
281
|
+
"jsdoc-compat/require-yields-check": "error",
|
|
282
|
+
"jsdoc-compat/tag-lines": "error",
|
|
285
283
|
"jsdoc-compat/valid-types": "error"
|
|
286
284
|
};
|
|
287
285
|
const stylisticCompatRules = {
|
|
@@ -532,6 +530,7 @@ function oxlintConfig(options) {
|
|
|
532
530
|
{ name: "eslint-compat", specifier: "oxlint-plugin-eslint" },
|
|
533
531
|
{ name: "unicorn-compat", specifier: "eslint-plugin-unicorn" },
|
|
534
532
|
{ name: "jsdoc-compat", specifier: "eslint-plugin-jsdoc" },
|
|
533
|
+
{ name: "typescript-compat", specifier: "@typescript-eslint/eslint-plugin" },
|
|
535
534
|
{ name: "stylistic-compat", specifier: "@stylistic/eslint-plugin" },
|
|
536
535
|
...enableReact ? [{ name: "react-compat", specifier: "eslint-plugin-react" }] : [],
|
|
537
536
|
...enableVitest ? [{ name: "vitest-compat", specifier: "@vitest/eslint-plugin" }] : [],
|
|
@@ -546,6 +545,7 @@ function oxlintConfig(options) {
|
|
|
546
545
|
...eslintCjsEsmRules,
|
|
547
546
|
...eslintCompatRules,
|
|
548
547
|
...typescriptRules,
|
|
548
|
+
...typescriptCompatRules,
|
|
549
549
|
...importRules,
|
|
550
550
|
...unicornRules,
|
|
551
551
|
...unicornCompatRules,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-config-decent",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.35",
|
|
4
4
|
"description": "A decent ESLint configuration",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "unbuild",
|
|
37
37
|
"test": "tsgo --noEmit --skipLibCheck",
|
|
38
|
+
"test:oxlint-rules": "node scripts/test-oxlint-rules.mjs",
|
|
38
39
|
"lint:markdown": "prettier --write '**/*.md' '!**/node_modules/**' '!**/dist/**' && markdownlint '**/*.md' --ignore '**/node_modules/**' --ignore '**/dist/**' --config=.github/linters/.markdown-lint.yml --fix",
|
|
39
40
|
"lint:code": "eslint --fix",
|
|
40
41
|
"prelint": "npm run build",
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
"oxlint-plugin-eslint": ">=1.52.0",
|
|
84
85
|
"@stylistic/eslint-plugin": ">=5.0.0",
|
|
85
86
|
"@vitest/eslint-plugin": ">=1.0.0",
|
|
87
|
+
"@typescript-eslint/eslint-plugin": ">=8.0.0",
|
|
86
88
|
"eslint-plugin-jsdoc": ">=62.0.0",
|
|
87
89
|
"eslint-plugin-react": ">=7.0.0",
|
|
88
90
|
"eslint-plugin-security": ">=4.0.0",
|
|
@@ -100,6 +102,9 @@
|
|
|
100
102
|
"oxlint-plugin-eslint": {
|
|
101
103
|
"optional": true
|
|
102
104
|
},
|
|
105
|
+
"@typescript-eslint/eslint-plugin": {
|
|
106
|
+
"optional": true
|
|
107
|
+
},
|
|
103
108
|
"@stylistic/eslint-plugin": {
|
|
104
109
|
"optional": true
|
|
105
110
|
},
|
|
@@ -163,7 +168,7 @@
|
|
|
163
168
|
"pinst": "3.0.0",
|
|
164
169
|
"prettier": "3.8.3",
|
|
165
170
|
"semantic-release": "25.0.3",
|
|
166
|
-
"typescript": "
|
|
171
|
+
"typescript": "6.0.3",
|
|
167
172
|
"unbuild": "3.6.1"
|
|
168
173
|
},
|
|
169
174
|
"overrides": {
|
package/src/oxlint.ts
CHANGED
|
@@ -79,7 +79,6 @@ const eslintBaseRules: Record<string, DummyRule> = {
|
|
|
79
79
|
'eslint/prefer-exponentiation-operator': 'off',
|
|
80
80
|
'eslint/prefer-numeric-literals': 'error',
|
|
81
81
|
'eslint/prefer-object-spread': 'error',
|
|
82
|
-
'eslint/prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
|
|
83
82
|
'eslint/prefer-template': 'error',
|
|
84
83
|
'eslint/sort-imports': ['error', { ignoreCase: true, ignoreDeclarationSort: true, allowSeparatedGroups: true }],
|
|
85
84
|
'eslint/symbol-description': 'error',
|
|
@@ -95,7 +94,6 @@ const eslintBaseRules: Record<string, DummyRule> = {
|
|
|
95
94
|
// CJS/ESM rules that also apply to TS files via typescript extensions
|
|
96
95
|
const eslintCjsEsmRules: Record<string, DummyRule> = {
|
|
97
96
|
'eslint/curly': ['error', 'multi-line'],
|
|
98
|
-
'eslint/dot-notation': ['error', { allowKeywords: true }],
|
|
99
97
|
'eslint/getter-return': ['error', { allowImplicit: true }],
|
|
100
98
|
'eslint/no-array-constructor': 'error',
|
|
101
99
|
'eslint/no-empty-function': ['error', { allow: ['arrowFunctions', 'functions', 'methods'] }],
|
|
@@ -123,6 +121,7 @@ const eslintCompatRules: Record<string, DummyRule> = {
|
|
|
123
121
|
'eslint-compat/no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],
|
|
124
122
|
'eslint-compat/no-undef-init': 'error',
|
|
125
123
|
'eslint-compat/no-unreachable-loop': ['error', { ignore: [] }],
|
|
124
|
+
'eslint-compat/prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
|
|
126
125
|
};
|
|
127
126
|
|
|
128
127
|
const typescriptRules: Record<string, DummyRule> = {
|
|
@@ -143,32 +142,6 @@ const typescriptRules: Record<string, DummyRule> = {
|
|
|
143
142
|
'typescript/default-param-last': 'error',
|
|
144
143
|
'typescript/dot-notation': 'error',
|
|
145
144
|
'typescript/explicit-function-return-type': 'off',
|
|
146
|
-
'typescript/explicit-member-accessibility': 'error',
|
|
147
|
-
'typescript/member-ordering': [
|
|
148
|
-
'error',
|
|
149
|
-
{
|
|
150
|
-
default: [
|
|
151
|
-
'signature',
|
|
152
|
-
'private-field',
|
|
153
|
-
'public-field',
|
|
154
|
-
'protected-field',
|
|
155
|
-
'public-constructor',
|
|
156
|
-
'protected-constructor',
|
|
157
|
-
'private-constructor',
|
|
158
|
-
'public-method',
|
|
159
|
-
'protected-method',
|
|
160
|
-
'private-method',
|
|
161
|
-
],
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
'typescript/naming-convention': [
|
|
165
|
-
'error',
|
|
166
|
-
{
|
|
167
|
-
selector: 'enumMember',
|
|
168
|
-
format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
|
|
169
|
-
trailingUnderscore: 'forbid',
|
|
170
|
-
},
|
|
171
|
-
],
|
|
172
145
|
'typescript/no-array-delete': 'error',
|
|
173
146
|
'typescript/no-base-to-string': 'error',
|
|
174
147
|
'typescript/no-confusing-non-null-assertion': 'error',
|
|
@@ -249,6 +222,36 @@ const typescriptRules: Record<string, DummyRule> = {
|
|
|
249
222
|
'typescript/use-unknown-in-catch-callback-variable': 'off',
|
|
250
223
|
};
|
|
251
224
|
|
|
225
|
+
// Gap rules not yet natively supported — covered via typescript-compat JS plugin (@typescript-eslint/eslint-plugin)
|
|
226
|
+
const typescriptCompatRules: Record<string, DummyRule> = {
|
|
227
|
+
'typescript-compat/explicit-member-accessibility': 'error',
|
|
228
|
+
'typescript-compat/member-ordering': [
|
|
229
|
+
'error',
|
|
230
|
+
{
|
|
231
|
+
default: [
|
|
232
|
+
'signature',
|
|
233
|
+
'private-field',
|
|
234
|
+
'public-field',
|
|
235
|
+
'protected-field',
|
|
236
|
+
'public-constructor',
|
|
237
|
+
'protected-constructor',
|
|
238
|
+
'private-constructor',
|
|
239
|
+
'public-method',
|
|
240
|
+
'protected-method',
|
|
241
|
+
'private-method',
|
|
242
|
+
],
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
'typescript-compat/naming-convention': [
|
|
246
|
+
'error',
|
|
247
|
+
{
|
|
248
|
+
selector: 'enumMember',
|
|
249
|
+
format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
|
|
250
|
+
trailingUnderscore: 'forbid',
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
};
|
|
254
|
+
|
|
252
255
|
const importRules: Record<string, DummyRule> = {
|
|
253
256
|
'import/consistent-type-specifier-style': ['error', 'prefer-inline'],
|
|
254
257
|
'import/first': 'error',
|
|
@@ -278,15 +281,12 @@ const promiseRules: Record<string, DummyRule> = {
|
|
|
278
281
|
|
|
279
282
|
const jsdocRules: Record<string, DummyRule> = {
|
|
280
283
|
// Explicitly configured
|
|
281
|
-
'jsdoc/check-param-names': 'off',
|
|
282
284
|
'jsdoc/check-tag-names': 'error',
|
|
283
|
-
'jsdoc/require-description': 'off',
|
|
284
285
|
'jsdoc/require-param': ['error', { enableFixer: false, ignoreWhenAllParamsMissing: true, unnamedRootBase: ['args'] }],
|
|
285
286
|
'jsdoc/require-param-description': 'off',
|
|
286
287
|
'jsdoc/require-param-name': 'error',
|
|
287
288
|
'jsdoc/require-param-type': 'error',
|
|
288
289
|
'jsdoc/require-returns-description': 'off',
|
|
289
|
-
'jsdoc/require-jsdoc': 'off',
|
|
290
290
|
'jsdoc/require-returns-type': 'off',
|
|
291
291
|
|
|
292
292
|
// From flat/recommended inheritance
|
|
@@ -300,10 +300,7 @@ const jsdocRules: Record<string, DummyRule> = {
|
|
|
300
300
|
'jsdoc/require-property-name': 'error',
|
|
301
301
|
'jsdoc/require-property-type': 'error',
|
|
302
302
|
'jsdoc/require-returns': 'error',
|
|
303
|
-
'jsdoc/require-returns-check': 'error',
|
|
304
303
|
'jsdoc/require-yields': 'error',
|
|
305
|
-
'jsdoc/require-yields-check': 'error',
|
|
306
|
-
'jsdoc/tag-lines': 'error',
|
|
307
304
|
};
|
|
308
305
|
|
|
309
306
|
// Gap rules not yet natively supported — covered via jsdoc-compat JS plugin
|
|
@@ -312,6 +309,9 @@ const jsdocCompatRules: Record<string, DummyRule> = {
|
|
|
312
309
|
'jsdoc-compat/check-indentation': 'error',
|
|
313
310
|
'jsdoc-compat/check-types': 'error',
|
|
314
311
|
'jsdoc-compat/require-hyphen-before-param-description': 'error',
|
|
312
|
+
'jsdoc-compat/require-returns-check': 'error',
|
|
313
|
+
'jsdoc-compat/require-yields-check': 'error',
|
|
314
|
+
'jsdoc-compat/tag-lines': 'error',
|
|
315
315
|
'jsdoc-compat/valid-types': 'error',
|
|
316
316
|
};
|
|
317
317
|
|
|
@@ -582,6 +582,7 @@ export function oxlintConfig(options?: OxlintConfigOptions): OxlintConfig {
|
|
|
582
582
|
{ name: 'eslint-compat', specifier: 'oxlint-plugin-eslint' },
|
|
583
583
|
{ name: 'unicorn-compat', specifier: 'eslint-plugin-unicorn' },
|
|
584
584
|
{ name: 'jsdoc-compat', specifier: 'eslint-plugin-jsdoc' },
|
|
585
|
+
{ name: 'typescript-compat', specifier: '@typescript-eslint/eslint-plugin' },
|
|
585
586
|
{ name: 'stylistic-compat', specifier: '@stylistic/eslint-plugin' },
|
|
586
587
|
...(enableReact ? [{ name: 'react-compat', specifier: 'eslint-plugin-react' }] : []),
|
|
587
588
|
...(enableVitest ? [{ name: 'vitest-compat', specifier: '@vitest/eslint-plugin' }] : []),
|
|
@@ -598,6 +599,7 @@ export function oxlintConfig(options?: OxlintConfigOptions): OxlintConfig {
|
|
|
598
599
|
...eslintCjsEsmRules,
|
|
599
600
|
...eslintCompatRules,
|
|
600
601
|
...typescriptRules,
|
|
602
|
+
...typescriptCompatRules,
|
|
601
603
|
...importRules,
|
|
602
604
|
...unicornRules,
|
|
603
605
|
...unicornCompatRules,
|