Skip to content

Commit b250f84

Browse files
authored
chore: setup eslint-plugin-eslint-plugin, sort meta & createRule (#1107)
1 parent f9d8a21 commit b250f84

81 files changed

Lines changed: 266 additions & 471 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎eslint.config.mjs‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// @ts-check
33

44
import antfu from '@antfu/eslint-config'
5+
import eslintPlugin from 'eslint-plugin-eslint-plugin'
56
import stylistic from './stub.mjs'
67

78
const stylisticConfig = stylistic.configs.customize({
@@ -79,6 +80,40 @@ export default antfu(
7980
'style/no-trailing-spaces': 'off',
8081
},
8182
},
83+
eslintPlugin.configs.recommended,
84+
{
85+
files: ['packages/eslint-plugin/rules/**/*.ts'],
86+
rules: {
87+
'eslint-plugin/meta-property-ordering': 'error',
88+
'eslint-plugin/no-meta-schema-default': 'off',
89+
'eslint-plugin/require-meta-default-options': 'off',
90+
'eslint-plugin/require-meta-schema-description': 'off',
91+
'perfectionist/sort-objects': [
92+
'error',
93+
{
94+
customGroups: [
95+
{ elementNamePattern: 'defaultOptions', groupName: 'bottom' },
96+
],
97+
groups: ['unknown', 'multiline-property', 'bottom', 'method'],
98+
newlinesBetween: 0,
99+
type: 'subgroup-order',
100+
useConfigurationIf: {
101+
callingFunctionNamePattern: '^createRule$',
102+
},
103+
},
104+
{
105+
newlinesBetween: 0,
106+
type: 'unsorted',
107+
useConfigurationIf: {
108+
declarationMatchesPattern: '^meta$',
109+
},
110+
},
111+
{
112+
type: 'unsorted',
113+
},
114+
],
115+
},
116+
},
82117
{
83118
files: [
84119
'packages/eslint-plugin/{rules,utils}/**/*.ts',

‎package.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"change-case": "catalog:dev",
4949
"escape-string-regexp": "catalog:dev",
5050
"eslint": "catalog:dev",
51+
"eslint-plugin-eslint-plugin": "catalog:dev",
5152
"eslint-plugin-format": "catalog:dev",
5253
"eslint-visitor-keys": "catalog:prod",
5354
"eslint-vitest-rule-tester": "catalog:test",

‎packages/eslint-plugin/rules/array-bracket-newline/array-bracket-newline.ts‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@ export default createRule<RuleOptions, MessageIds>({
1212
name: 'array-bracket-newline',
1313
meta: {
1414
type: 'layout',
15-
1615
docs: {
1716
description: 'Enforce linebreaks after opening and before closing array brackets',
1817
},
19-
2018
fixable: 'whitespace',
21-
2219
schema: [
2320
{
2421
oneOf: [
@@ -42,15 +39,13 @@ export default createRule<RuleOptions, MessageIds>({
4239
],
4340
},
4441
],
45-
4642
messages: {
4743
unexpectedOpeningLinebreak: 'There should be no linebreak after \'[\'.',
4844
unexpectedClosingLinebreak: 'There should be no linebreak before \']\'.',
4945
missingOpeningLinebreak: 'A linebreak is required after \'[\'.',
5046
missingClosingLinebreak: 'A linebreak is required before \']\'.',
5147
},
5248
},
53-
5449
create(context) {
5550
const sourceCode = context.sourceCode
5651

‎packages/eslint-plugin/rules/array-bracket-spacing/array-bracket-spacing.ts‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@ export default createRule<RuleOptions, MessageIds>({
1212
name: 'array-bracket-spacing',
1313
meta: {
1414
type: 'layout',
15-
1615
docs: {
1716
description: 'Enforce consistent spacing inside array brackets',
1817
},
19-
2018
fixable: 'whitespace',
21-
2219
schema: [
2320
{
2421
type: 'string',
@@ -40,7 +37,6 @@ export default createRule<RuleOptions, MessageIds>({
4037
additionalProperties: false,
4138
},
4239
],
43-
4440
messages: {
4541
unexpectedSpaceAfter: 'There should be no space after \'{{tokenValue}}\'.',
4642
unexpectedSpaceBefore: 'There should be no space before \'{{tokenValue}}\'.',

‎packages/eslint-plugin/rules/array-element-newline/array-element-newline.ts‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@ export default createRule<RuleOptions, MessageIds>({
1212
name: 'array-element-newline',
1313
meta: {
1414
type: 'layout',
15-
1615
docs: {
1716
description: 'Enforce line breaks after each array element',
1817
},
19-
2018
fixable: 'whitespace',
21-
2219
schema: {
2320
definitions: {
2421
basicConfig: {
@@ -70,13 +67,11 @@ export default createRule<RuleOptions, MessageIds>({
7067
},
7168
],
7269
},
73-
7470
messages: {
7571
unexpectedLineBreak: 'There should be no linebreak here.',
7672
missingLineBreak: 'There should be a linebreak after this element.',
7773
},
7874
},
79-
8075
create(context) {
8176
const sourceCode = context.sourceCode
8277

‎packages/eslint-plugin/rules/arrow-parens/arrow-parens.ts‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,10 @@ export default createRule<RuleOptions, MessageIds>({
2121
name: 'arrow-parens',
2222
meta: {
2323
type: 'layout',
24-
2524
docs: {
2625
description: 'Require parentheses around arrow function arguments',
2726
},
28-
2927
fixable: 'code',
30-
3128
schema: [
3229
{
3330
type: 'string',
@@ -44,7 +41,6 @@ export default createRule<RuleOptions, MessageIds>({
4441
additionalProperties: false,
4542
},
4643
],
47-
4844
messages: {
4945
unexpectedParens: 'Unexpected parentheses around single function argument.',
5046
expectedParens: 'Expected parentheses around arrow function argument.',
@@ -53,7 +49,6 @@ export default createRule<RuleOptions, MessageIds>({
5349
expectedParensBlock: 'Expected parentheses around arrow function argument having a body with curly braces.',
5450
},
5551
},
56-
5752
create(context) {
5853
const asNeeded = context.options[0] === 'as-needed'
5954
const requireForBlockBody = asNeeded && context.options[1] && context.options[1].requireForBlockBody === true

‎packages/eslint-plugin/rules/arrow-spacing/arrow-spacing.ts‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@ export default createRule<RuleOptions, MessageIds>({
99
name: 'arrow-spacing',
1010
meta: {
1111
type: 'layout',
12-
1312
docs: {
1413
description: 'Enforce consistent spacing before and after the arrow in arrow functions',
1514
},
16-
1715
fixable: 'whitespace',
18-
1916
schema: [
2017
{
2118
type: 'object',
@@ -32,7 +29,6 @@ export default createRule<RuleOptions, MessageIds>({
3229
additionalProperties: false,
3330
},
3431
],
35-
3632
messages: {
3733
expectedBefore: 'Missing space before =>.',
3834
unexpectedBefore: 'Unexpected space before =>.',
@@ -41,7 +37,6 @@ export default createRule<RuleOptions, MessageIds>({
4137
unexpectedAfter: 'Unexpected space after =>.',
4238
},
4339
},
44-
4540
create(context) {
4641
// merge rules with default
4742
const rule = Object.assign({}, context.options[0])

‎packages/eslint-plugin/rules/block-spacing/block-spacing.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ export default createRule<RuleOptions, MessageIds>({
2323
},
2424
},
2525
defaultOptions: ['always'],
26-
2726
create(context, [whenToApplyOption]) {
2827
const sourceCode = context.sourceCode
2928
const always = whenToApplyOption !== 'never'

‎packages/eslint-plugin/rules/comma-dangle/comma-dangle.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export default createRule<RuleOptions, MessageIds>({
5858
docs: {
5959
description: 'Require or disallow trailing commas',
6060
},
61+
fixable: 'code',
6162
schema: {
6263
$defs: {
6364
value: {
@@ -97,7 +98,6 @@ export default createRule<RuleOptions, MessageIds>({
9798
],
9899
additionalItems: false,
99100
},
100-
fixable: 'code',
101101
messages: {
102102
unexpected: 'Unexpected trailing comma.',
103103
missing: 'Missing trailing comma.',

‎packages/eslint-plugin/rules/comma-style/comma-style.ts‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ export default createRule<RuleOptions, MessageIds>({
2020
name: 'comma-style',
2121
meta: {
2222
type: 'layout',
23-
2423
docs: {
2524
description: 'Enforce consistent comma style',
2625
},
27-
2826
fixable: 'code',
29-
3027
schema: [
3128
{
3229
type: 'string',
@@ -45,14 +42,12 @@ export default createRule<RuleOptions, MessageIds>({
4542
additionalProperties: false,
4643
},
4744
],
48-
4945
messages: {
5046
unexpectedLineBeforeAndAfterComma: 'Bad line breaking before and after \',\'.',
5147
expectedCommaFirst: '\',\' should be placed first.',
5248
expectedCommaLast: '\',\' should be placed last.',
5349
},
5450
},
55-
5651
create(context) {
5752
const style = context.options[0] || 'last'
5853
const sourceCode = context.sourceCode

0 commit comments

Comments
 (0)