Skip to content

Commit 264a9cf

Browse files
committed
refactor: inline rules to make it explicit
1 parent 4a7200d commit 264a9cf

File tree

8 files changed

+80
-46
lines changed

8 files changed

+80
-46
lines changed

src/configs/comments.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { FlatESLintConfigItem } from 'eslint-define-config'
2-
import { OFF } from '../flags'
32
import { pluginComments } from '../plugins'
43

54
export const comments: FlatESLintConfigItem[] = [
@@ -8,8 +7,10 @@ export const comments: FlatESLintConfigItem[] = [
87
'eslint-comments': pluginComments,
98
},
109
rules: {
11-
...pluginComments.configs.recommended.rules,
12-
'eslint-comments/disable-enable-pair': OFF,
10+
'eslint-comments/no-aggregating-enable': 'error',
11+
'eslint-comments/no-duplicate-disable': 'error',
12+
'eslint-comments/no-unlimited-disable': 'error',
13+
'eslint-comments/no-unused-enable': 'error',
1314
},
1415
},
1516
]

src/configs/jsdoc.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,25 @@ export const jsdoc: FlatESLintConfigItem[] = [
88
jsdoc: pluginJsdoc,
99
},
1010
rules: {
11-
...pluginJsdoc.configs['flat/recommended-typescript'].rules,
12-
'jsdoc/check-tag-names': OFF,
13-
'jsdoc/check-values': OFF,
14-
'jsdoc/no-undefined-types': OFF,
15-
'jsdoc/require-jsdoc': OFF,
16-
'jsdoc/require-param': OFF,
17-
'jsdoc/require-param-description': OFF,
18-
'jsdoc/require-param-type': OFF,
19-
'jsdoc/require-returns': OFF,
20-
'jsdoc/require-returns-type': OFF,
21-
'jsdoc/require-throws': OFF,
22-
'jsdoc/require-yields': OFF,
23-
'jsdoc/tag-lines': OFF,
11+
'jsdoc/check-access': 'warn',
12+
'jsdoc/check-alignment': 'warn',
13+
'jsdoc/check-param-names': 'warn',
14+
'jsdoc/check-property-names': 'warn',
15+
'jsdoc/check-types': 'warn',
16+
'jsdoc/empty-tags': 'warn',
17+
'jsdoc/implements-on-classes': 'warn',
18+
'jsdoc/multiline-blocks': 'warn',
19+
'jsdoc/no-defaults': 'warn',
20+
'jsdoc/no-multi-asterisks': 'warn',
21+
'jsdoc/no-types': 'warn',
22+
'jsdoc/require-param-name': 'warn',
23+
'jsdoc/require-property': 'warn',
24+
'jsdoc/require-property-description': 'warn',
25+
'jsdoc/require-property-name': 'warn',
26+
'jsdoc/require-returns-check': 'warn',
27+
'jsdoc/require-returns-description': 'warn',
28+
'jsdoc/require-yields-check': 'warn',
29+
'jsdoc/valid-types': 'warn',
2430
},
2531
},
2632
]

src/configs/jsonc.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,42 @@ export const jsonc: FlatESLintConfigItem[] = [
1212
jsonc: pluginJsonc as any,
1313
},
1414
rules: {
15-
...pluginJsonc.configs['recommended-with-jsonc'].rules as any,
1615
'jsonc/array-bracket-spacing': ['error', 'never'],
1716
'jsonc/comma-dangle': ['error', 'never'],
1817
'jsonc/comma-style': ['error', 'last'],
1918
'jsonc/indent': ['error', 2],
2019
'jsonc/key-spacing': ['error', { afterColon: true, beforeColon: false }],
20+
'jsonc/no-bigint-literals': 'error',
21+
'jsonc/no-binary-expression': 'error',
22+
'jsonc/no-binary-numeric-literals': 'error',
23+
'jsonc/no-dupe-keys': 'error',
24+
'jsonc/no-escape-sequence-in-identifier': 'error',
25+
'jsonc/no-floating-decimal': 'error',
26+
'jsonc/no-hexadecimal-numeric-literals': 'error',
27+
'jsonc/no-infinity': 'error',
28+
'jsonc/no-multi-str': 'error',
29+
'jsonc/no-nan': 'error',
30+
'jsonc/no-number-props': 'error',
31+
'jsonc/no-numeric-separators': 'error',
32+
'jsonc/no-octal': 'error',
2133
'jsonc/no-octal-escape': 'error',
34+
'jsonc/no-octal-numeric-literals': 'error',
35+
'jsonc/no-parenthesized': 'error',
36+
'jsonc/no-plus-sign': 'error',
37+
'jsonc/no-regexp-literals': 'error',
38+
'jsonc/no-sparse-arrays': 'error',
39+
'jsonc/no-template-literals': 'error',
40+
'jsonc/no-undefined-value': 'error',
41+
'jsonc/no-unicode-codepoint-escapes': 'error',
42+
'jsonc/no-useless-escape': 'error',
2243
'jsonc/object-curly-newline': ['error', { consistent: true, multiline: true }],
2344
'jsonc/object-curly-spacing': ['error', 'always'],
2445
'jsonc/object-property-newline': ['error', { allowMultiplePropertiesPerLine: true }],
46+
'jsonc/quote-props': 'error',
47+
'jsonc/quotes': 'error',
48+
'jsonc/space-unary-ops': 'error',
49+
'jsonc/valid-json-number': 'error',
50+
'jsonc/vue-custom-block/no-parsing-error': 'error',
2551
},
2652
},
2753
]

src/configs/markdown.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,18 @@ export function markdown(options: OptionsComponentExts = {}): FlatESLintConfigIt
3333
ts: pluginTs as any,
3434
},
3535
rules: {
36-
...pluginMarkdown.configs.recommended.overrides[1].rules,
37-
3836
'antfu/no-cjs-exports': OFF,
3937
'antfu/no-ts-export-equal': OFF,
4038

41-
'import/no-unresolved': OFF,
42-
39+
'eol-last': OFF,
4340
'no-alert': OFF,
4441
'no-console': OFF,
45-
'no-restricted-imports': OFF,
4642
'no-undef': OFF,
4743
'no-unused-expressions': OFF,
4844
'no-unused-vars': OFF,
4945

5046
'node/prefer-global/process': OFF,
5147

52-
'ts/comma-dangle': OFF,
5348
'ts/consistent-type-imports': OFF,
5449
'ts/no-namespace': OFF,
5550
'ts/no-redeclare': OFF,
@@ -58,6 +53,8 @@ export function markdown(options: OptionsComponentExts = {}): FlatESLintConfigIt
5853
'ts/no-use-before-define': OFF,
5954
'ts/no-var-requires': OFF,
6055

56+
'unicode-bom': 'off',
57+
6158
'unused-imports/no-unused-imports': OFF,
6259
'unused-imports/no-unused-vars': OFF,
6360
},

src/configs/stylistic.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { FlatESLintConfigItem } from 'eslint-define-config'
22
import { pluginStylistic } from '../plugins'
33

4-
export const javascriptStylistic: FlatESLintConfigItem[] = [
4+
export const stylistic: FlatESLintConfigItem[] = [
55
{
66
plugins: {
77
style: pluginStylistic,

src/configs/typescript.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,10 @@ export function typescript(options?: OptionsComponentExts): FlatESLintConfigItem
5757

5858
// TS
5959
'ts/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }],
60-
'ts/ban-ts-ignore': OFF,
61-
'ts/consistent-indexed-object-style': OFF,
6260
'ts/consistent-type-definitions': ['error', 'interface'],
6361
'ts/consistent-type-imports': ['error', { disallowTypeAnnotations: false, prefer: 'type-imports' }],
64-
'ts/explicit-function-return-type': OFF,
65-
'ts/explicit-member-accessibility': OFF,
66-
'ts/explicit-module-boundary-types': OFF,
67-
'ts/naming-convention': OFF,
6862
'ts/no-dupe-class-members': 'error',
6963
'ts/no-dynamic-delete': OFF,
70-
'ts/no-empty-function': OFF,
71-
'ts/no-empty-interface': OFF,
7264
'ts/no-explicit-any': OFF,
7365
'ts/no-extra-parens': ['error', 'functions'],
7466
'ts/no-invalid-this': 'error',
@@ -79,7 +71,6 @@ export function typescript(options?: OptionsComponentExts): FlatESLintConfigItem
7971
'ts/no-require-imports': 'error',
8072
'ts/no-unused-vars': OFF,
8173
'ts/no-use-before-define': ['error', { classes: false, functions: false, variables: true }],
82-
'ts/parameter-properties': OFF,
8374
'ts/prefer-ts-expect-error': 'error',
8475
'ts/triple-slash-reference': OFF,
8576
},

src/configs/yml.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,28 @@ export const yml: FlatESLintConfigItem[] = [
1313
yml: pluginYml as any,
1414
},
1515
rules: {
16-
...pluginYml.configs.standard.rules as any,
17-
1816
'style/spaced-comment': OFF,
19-
'yml/no-empty-document': OFF,
20-
'yml/no-empty-mapping-value': OFF,
17+
18+
'yml/block-mapping': 'error',
19+
'yml/block-mapping-question-indicator-newline': 'error',
20+
'yml/block-sequence': 'error',
21+
'yml/block-sequence-hyphen-indicator-newline': 'error',
22+
'yml/flow-mapping-curly-newline': 'error',
23+
'yml/flow-mapping-curly-spacing': 'error',
24+
'yml/flow-sequence-bracket-newline': 'error',
25+
'yml/flow-sequence-bracket-spacing': 'error',
26+
'yml/indent': ['error', 2],
27+
'yml/key-spacing': 'error',
28+
'yml/no-empty-key': 'error',
29+
'yml/no-empty-sequence-entry': 'error',
30+
'yml/no-irregular-whitespace': 'error',
31+
'yml/no-tab-indent': 'error',
32+
'yml/plain-scalar': 'error',
2133

2234
'yml/quotes': ['error', { avoidEscape: false, prefer: 'single' }],
35+
'yml/spaced-comment': 'error',
36+
37+
'yml/vue-custom-block/no-parsing-error': 'error',
2338
},
2439
},
2540
]

src/factory.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@ import {
99
ignores,
1010
imports,
1111
javascript,
12-
javascriptStylistic,
1312
jsdoc,
1413
jsonc,
1514
markdown,
1615
node,
1716
react,
1817
sortPackageJson,
1918
sortTsconfig,
19+
stylistic,
2020
test,
2121
typescript,
22-
typescriptStylistic,
2322
typescriptWithLanguageServer,
2423
unicorn,
2524
vue, yml,
@@ -79,9 +78,6 @@ export function coderwyd(options: OptionsConfig & FlatESLintConfigItem = {}, ...
7978
if (enableVue)
8079
componentExts.push('vue')
8180

82-
if (enableStylistic)
83-
configs.push(javascriptStylistic)
84-
8581
if (enableTypeScript) {
8682
configs.push(typescript({ componentExts }))
8783

@@ -91,11 +87,11 @@ export function coderwyd(options: OptionsConfig & FlatESLintConfigItem = {}, ...
9187
componentExts,
9288
}))
9389
}
94-
95-
if (enableStylistic)
96-
configs.push(typescriptStylistic)
9790
}
9891

92+
if (enableStylistic)
93+
configs.push(stylistic)
94+
9995
if (options.test ?? true)
10096
configs.push(test({ isInEditor }))
10197

@@ -132,8 +128,10 @@ export function coderwyd(options: OptionsConfig & FlatESLintConfigItem = {}, ...
132128
if (Object.keys(fusedConfig).length)
133129
configs.push([fusedConfig])
134130

135-
return combine(
131+
const merged = combine(
136132
...configs,
137133
...userConfigs,
138134
)
135+
136+
return merged
139137
}

0 commit comments

Comments
 (0)