Skip to content

Commit 7fae114

Browse files
committed
fix: disallow extra properties in rule options
1 parent f2869fd commit 7fae114

15 files changed

+48
-38
lines changed

lib/rules/forbid-component-props.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ module.exports = {
131131
},
132132
},
133133
},
134+
additionalProperties: false,
134135
}],
135136
},
136137

lib/rules/forbid-dom-props.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ module.exports = {
7474
type: 'string',
7575
},
7676
},
77+
additionalProperties: false,
7778
}],
7879
minLength: 1,
7980
},

lib/rules/forbid-prop-types.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ module.exports = {
5454
type: 'boolean',
5555
},
5656
},
57-
additionalProperties: true,
57+
additionalProperties: false,
5858
}],
5959
},
6060

lib/rules/function-component-definition.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ module.exports = {
167167
],
168168
},
169169
},
170+
additionalProperties: false,
170171
},
171172
],
172173
},

lib/rules/jsx-curly-spacing.js

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,28 @@ const messages = {
3535
spaceNeededBefore: 'A space is required before \'{{token}}\'',
3636
};
3737

38+
const BASIC_CONFIG_SCHEMA = {
39+
type: 'object',
40+
properties: {
41+
when: {
42+
enum: SPACING_VALUES,
43+
},
44+
allowMultiline: {
45+
type: 'boolean',
46+
},
47+
spacing: {
48+
type: 'object',
49+
properties: {
50+
objectLiterals: {
51+
enum: SPACING_VALUES,
52+
},
53+
},
54+
additionalProperties: false,
55+
},
56+
},
57+
additionalProperties: false,
58+
};
59+
3860
/** @type {import('eslint').Rule.RuleModule} */
3961
module.exports = {
4062
meta: {
@@ -50,49 +72,25 @@ module.exports = {
5072

5173
schema: {
5274
definitions: {
53-
basicConfig: {
54-
type: 'object',
55-
properties: {
56-
when: {
57-
enum: SPACING_VALUES,
58-
},
59-
allowMultiline: {
60-
type: 'boolean',
61-
},
62-
spacing: {
63-
type: 'object',
64-
properties: {
65-
objectLiterals: {
66-
enum: SPACING_VALUES,
67-
},
68-
},
69-
},
70-
},
71-
},
7275
basicConfigOrBoolean: {
73-
anyOf: [{
74-
$ref: '#/definitions/basicConfig',
75-
}, {
76+
anyOf: [BASIC_CONFIG_SCHEMA, {
7677
type: 'boolean',
7778
}],
7879
},
7980
},
8081
type: 'array',
8182
items: [{
8283
anyOf: [{
83-
allOf: [{
84-
$ref: '#/definitions/basicConfig',
85-
}, {
86-
type: 'object',
87-
properties: {
88-
attributes: {
89-
$ref: '#/definitions/basicConfigOrBoolean',
90-
},
91-
children: {
92-
$ref: '#/definitions/basicConfigOrBoolean',
93-
},
84+
type: 'object',
85+
properties: Object.assign(BASIC_CONFIG_SCHEMA.properties, {
86+
attributes: {
87+
$ref: '#/definitions/basicConfigOrBoolean',
9488
},
95-
}],
89+
children: {
90+
$ref: '#/definitions/basicConfigOrBoolean',
91+
},
92+
}),
93+
additionalProperties: false,
9694
}, {
9795
enum: SPACING_VALUES,
9896
}],
@@ -109,6 +107,7 @@ module.exports = {
109107
enum: SPACING_VALUES,
110108
},
111109
},
110+
additionalProperties: false,
112111
},
113112
},
114113
additionalProperties: false,

lib/rules/jsx-handler-names.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ module.exports = {
111111
items: { type: 'string' },
112112
},
113113
},
114+
additionalProperties: false,
114115
},
115116
],
116117
}],

lib/rules/jsx-indent-props.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ module.exports = {
7777
type: 'boolean',
7878
},
7979
},
80+
additionalProperties: false,
8081
}],
8182
}],
8283
},

lib/rules/jsx-max-props-per-line.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ module.exports = {
5353
minimum: 1,
5454
},
5555
},
56+
additionalProperties: false,
5657
},
5758
},
5859
additionalProperties: false,

lib/rules/jsx-no-literals.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ const elementOverrides = {
141141
{ applyToNestedElements: { type: 'boolean' } },
142142
commonPropertiesSchema
143143
),
144-
144+
additionalProperties: false,
145145
},
146146
},
147147
};

lib/rules/jsx-no-script-url.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ module.exports = {
8888
type: 'boolean',
8989
},
9090
},
91-
additionalItems: false,
91+
additionalProperties: false,
9292
},
9393
],
9494
additionalItems: false,
@@ -103,7 +103,7 @@ module.exports = {
103103
type: 'boolean',
104104
},
105105
},
106-
additionalItems: false,
106+
additionalProperties: false,
107107
},
108108
],
109109
additionalItems: false,

0 commit comments

Comments
 (0)