Skip to content

Commit 666e8ee

Browse files
authored
refactor: use defaultOptions in rules (#1105)
1 parent 55bbd1d commit 666e8ee

File tree

93 files changed

+498
-510
lines changed

Some content is hidden

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

93 files changed

+498
-510
lines changed

eslint.config.mjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ export default antfu(
8686
rules: {
8787
'eslint-plugin/meta-property-ordering': 'error',
8888
'eslint-plugin/no-meta-schema-default': 'off',
89-
'eslint-plugin/require-meta-default-options': 'off',
9089
'eslint-plugin/require-meta-schema-description': 'off',
9190
'perfectionist/sort-objects': [
9291
'error',

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ export default createRule<RuleOptions, MessageIds>({
3939
],
4040
},
4141
],
42+
// eslint-disable-next-line eslint-plugin/require-meta-default-options
43+
defaultOptions: [],
4244
messages: {
4345
unexpectedOpeningLinebreak: 'There should be no linebreak after \'[\'.',
4446
unexpectedClosingLinebreak: 'There should be no linebreak before \']\'.',

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,16 @@ export default createRule<RuleOptions, MessageIds>({
3737
additionalProperties: false,
3838
},
3939
],
40+
defaultOptions: ['never'],
4041
messages: {
4142
unexpectedSpaceAfter: 'There should be no space after \'{{tokenValue}}\'.',
4243
unexpectedSpaceBefore: 'There should be no space before \'{{tokenValue}}\'.',
4344
missingSpaceAfter: 'A space is required after \'{{tokenValue}}\'.',
4445
missingSpaceBefore: 'A space is required before \'{{tokenValue}}\'.',
4546
},
4647
},
47-
create(context) {
48-
const spaced = context.options[0] === 'always'
48+
create(context, [style]) {
49+
const spaced = style === 'always'
4950
const sourceCode = context.sourceCode
5051

5152
/**

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export default createRule<RuleOptions, MessageIds>({
6767
},
6868
],
6969
},
70+
defaultOptions: [],
7071
messages: {
7172
unexpectedLineBreak: 'There should be no linebreak here.',
7273
missingLineBreak: 'There should be a linebreak after this element.',

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ export default createRule<RuleOptions, MessageIds>({
4141
additionalProperties: false,
4242
},
4343
],
44+
defaultOptions: ['always'],
4445
messages: {
4546
unexpectedParens: 'Unexpected parentheses around single function argument.',
4647
expectedParens: 'Expected parentheses around arrow function argument.',
47-
4848
unexpectedParensInline: 'Unexpected parentheses around single function argument having a body with no curly braces.',
4949
expectedParensBlock: 'Expected parentheses around arrow function argument having a body with curly braces.',
5050
},
5151
},
52-
create(context) {
53-
const asNeeded = context.options[0] === 'as-needed'
54-
const requireForBlockBody = asNeeded && context.options[1] && context.options[1].requireForBlockBody === true
52+
create(context, [style, options]) {
53+
const asNeeded = style === 'as-needed'
54+
const requireForBlockBody = asNeeded && options?.requireForBlockBody === true
5555

5656
const sourceCode = context.sourceCode
5757

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export default createRule<RuleOptions, MessageIds>({
2929
additionalProperties: false,
3030
},
3131
],
32+
defaultOptions: [{ before: true, after: true }],
3233
messages: {
3334
expectedBefore: 'Missing space before =>.',
3435
unexpectedBefore: 'Unexpected space before =>.',
@@ -37,13 +38,7 @@ export default createRule<RuleOptions, MessageIds>({
3738
unexpectedAfter: 'Unexpected space after =>.',
3839
},
3940
},
40-
create(context) {
41-
// merge rules with default
42-
const rule = Object.assign({}, context.options[0])
43-
44-
rule.before = rule.before !== false
45-
rule.after = rule.after !== false
46-
41+
create(context, [option]) {
4742
const sourceCode = context.sourceCode
4843

4944
function getArrow(node: SupportedNode) {
@@ -67,7 +62,7 @@ export default createRule<RuleOptions, MessageIds>({
6762
const beforeToken = sourceCode.getTokenBefore(arrowToken, { includeComments: true })!
6863
const isSpacedBefore = sourceCode.isSpaceBetween(beforeToken, arrowToken)
6964

70-
if (rule.before) {
65+
if (option!.before) {
7166
// should be space(s) before arrow
7267
if (!isSpacedBefore) {
7368
context.report({
@@ -95,7 +90,7 @@ export default createRule<RuleOptions, MessageIds>({
9590
const afterToken = sourceCode.getTokenAfter(arrowToken, { includeComments: true })!
9691
const isSpacedAfter = sourceCode.isSpaceBetween(arrowToken, afterToken)
9792

98-
if (rule.after) {
93+
if (option!.after) {
9994
// should be space(s) after arrow
10095
if (!isSpacedAfter) {
10196
context.report({

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ export default createRule<RuleOptions, MessageIds>({
1717
schema: [
1818
{ type: 'string', enum: ['always', 'never'] },
1919
],
20+
defaultOptions: ['always'],
2021
messages: {
2122
missing: 'Requires a space {{location}} \'{{token}}\'.',
2223
extra: 'Unexpected space(s) {{location}} \'{{token}}\'.',
2324
},
2425
},
25-
defaultOptions: ['always'],
2626
create(context, [whenToApplyOption]) {
2727
const sourceCode = context.sourceCode
2828
const always = whenToApplyOption !== 'never'

packages/eslint-plugin/rules/brace-style/brace-style.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export default createRule<RuleOptions, MessageIds>({
2828
additionalProperties: false,
2929
},
3030
],
31+
defaultOptions: ['1tbs', { allowSingleLine: false }],
3132
messages: {
3233
nextLineOpen: 'Opening curly brace does not appear on the same line as controlling statement.',
3334
sameLineOpen: 'Opening curly brace appears on the same line as controlling statement.',
@@ -37,15 +38,14 @@ export default createRule<RuleOptions, MessageIds>({
3738
sameLineClose: 'Closing curly brace appears on the same line as the subsequent block.',
3839
},
3940
},
40-
defaultOptions: ['1tbs', { allowSingleLine: false }],
41-
create(context, optionsWithDefaults) {
42-
const [
43-
style,
44-
{ allowSingleLine } = { allowSingleLine: false },
45-
] = optionsWithDefaults
41+
create(context, [style, options]) {
42+
const sourceCode = context.sourceCode
43+
44+
const {
45+
allowSingleLine,
46+
} = options!
4647

4748
const isAllmanStyle = style === 'allman'
48-
const sourceCode = context.sourceCode
4949

5050
/**
5151
* Validates a pair of curly brackets based on the user's config

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,12 @@ export default createRule<RuleOptions, MessageIds>({
9898
],
9999
additionalItems: false,
100100
},
101+
defaultOptions: ['never'],
101102
messages: {
102103
unexpected: 'Unexpected trailing comma.',
103104
missing: 'Missing trailing comma.',
104105
},
105106
},
106-
defaultOptions: ['never'],
107107
create(context, [options]) {
108108
function normalizeOptions(options: Option = {}, ecmaVersion: EcmaVersion | 'latest' | undefined): NormalizedOptions {
109109
const DEFAULT_OPTION_VALUE = 'never'

packages/eslint-plugin/rules/comma-spacing/comma-spacing.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@ export default createRule<RuleOptions, MessageIds>({
3434
additionalProperties: false,
3535
},
3636
],
37+
defaultOptions: [
38+
{
39+
before: false,
40+
after: true,
41+
},
42+
],
3743
messages: {
3844
unexpected: `There should be no space {{loc}} ','.`,
3945
missing: `A space is required {{loc}} ','.`,
4046
},
4147
},
42-
defaultOptions: [
43-
{
44-
before: false,
45-
after: true,
46-
},
47-
],
48-
create(context, [options = {}]) {
49-
const { before: spaceBefore, after: spaceAfter } = options
48+
create(context, [options]) {
49+
const { before: spaceBefore, after: spaceAfter } = options!
5050
const sourceCode = context.sourceCode
5151
const tokensAndComments = sourceCode.tokensAndComments
5252
const ignoredTokens = new Set<Tree.PunctuatorToken>()

0 commit comments

Comments
 (0)