Skip to content

Commit c519470

Browse files
committed
add consts
1 parent 43b7d11 commit c519470

File tree

3 files changed

+37
-28
lines changed

3 files changed

+37
-28
lines changed

src/common/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,6 @@ export const SUPPORTED_PREPROCESSOR_DIRECTIVES = new Set([
215215
INCLUDE_DIRECTIVE,
216216
SAFARI_CB_AFFINITY_DIRECTIVE,
217217
]);
218+
219+
export const REMOVE_PROPERTY = 'remove';
220+
export const REMOVE_VALUE = 'true';

src/rules/no-invalid-cosmetic-separator.ts

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from '@adguard/agtree';
88
import { type DeclarationPlain, type PseudoClassSelectorPlain } from '@adguard/ecss-tree';
99

10+
import { REMOVE_PROPERTY, REMOVE_VALUE } from '../common/constants';
1011
import { defineRule, LinterRuleType } from '../linter/rule';
1112

1213
import { SUPPORTED_EXT_CSS_PSEUDO_CLASSES } from './no-unsupported-css-pseudo-class';
@@ -32,6 +33,10 @@ export default defineRule({
3233
name: 'Element hiding with extended selector',
3334
code: '#?#div:contains(a)',
3435
},
36+
{
37+
name: '`remove: true` with extended CSS injection separator',
38+
code: '#?$#a[href^="/bnlink/?bnid="] { remove: true; }',
39+
},
3540
],
3641
incorrectExamples: [
3742
{
@@ -71,14 +76,14 @@ export default defineRule({
7176
const currentSeparatorValue = currentRuleSeparator.value;
7277

7378
if (hasExtendedDeclarations) {
74-
let suggested: string;
79+
let suggestedSeparator: string;
7580

7681
switch (currentSeparatorValue) {
7782
case CosmeticRuleSeparator.AdgExtendedCssInjection:
78-
suggested = CosmeticRuleSeparator.AdgExtendedCssInjection;
83+
suggestedSeparator = CosmeticRuleSeparator.AdgExtendedCssInjection;
7984
break;
8085
case CosmeticRuleSeparator.AdgExtendedCssInjectionException:
81-
suggested = CosmeticRuleSeparator.AdgExtendedCssInjectionException;
86+
suggestedSeparator = CosmeticRuleSeparator.AdgExtendedCssInjectionException;
8287
break;
8388
default:
8489
return;
@@ -92,28 +97,28 @@ export default defineRule({
9297
context.report({
9398
messageId: 'removeOnlyWithExtended',
9499
data: {
95-
required: suggested,
100+
required: suggestedSeparator,
96101
},
97102
node,
98103
suggest: [
99104
{
100105
messageId: 'changeSeparator',
101106
data: {
102-
suggested,
107+
suggested: suggestedSeparator,
103108
},
104-
fix: (fixer) => fixer.replaceWithText(separatorRange, suggested),
109+
fix: (fixer) => fixer.replaceWithText(separatorRange, suggestedSeparator),
105110
},
106111
],
107112
});
108113
return;
109114
}
110115

111116
if (hasPseudoClassSelectors) {
112-
const suggested = currentRuleException
117+
const suggestedSeparator = currentRuleException
113118
? CosmeticRuleSeparator.ExtendedElementHidingException
114119
: CosmeticRuleSeparator.ExtendedElementHiding;
115120

116-
if (currentSeparatorValue === suggested) {
121+
if (currentSeparatorValue === suggestedSeparator) {
117122
return;
118123
}
119124

@@ -126,22 +131,22 @@ export default defineRule({
126131
messageId: 'useExtendedSeparator',
127132
data: {
128133
current: currentSeparatorValue,
129-
suggested,
134+
suggested: suggestedSeparator,
130135
},
131136
node,
132137
suggest: [
133138
{
134139
messageId: 'changeSeparator',
135140
data: {
136-
suggested,
141+
suggested: suggestedSeparator,
137142
},
138-
fix: (fixer) => fixer.replaceWithText(separatorRange, suggested),
143+
fix: (fixer) => fixer.replaceWithText(separatorRange, suggestedSeparator),
139144
},
140145
],
141146
});
142147
} else if (currentSeparatorValue === CosmeticRuleSeparator.ExtendedElementHiding
143148
|| currentSeparatorValue === CosmeticRuleSeparator.ExtendedElementHidingException) {
144-
const suggested = currentRuleException
149+
const suggestedSeparator = currentRuleException
145150
? CosmeticRuleSeparator.ElementHidingException
146151
: CosmeticRuleSeparator.ElementHiding;
147152

@@ -154,16 +159,16 @@ export default defineRule({
154159
messageId: 'useNativeSeparator',
155160
data: {
156161
current: currentSeparatorValue,
157-
suggested,
162+
suggested: suggestedSeparator,
158163
},
159164
node,
160165
suggest: [
161166
{
162167
messageId: 'changeSeparator',
163168
data: {
164-
suggested,
169+
suggested: suggestedSeparator,
165170
},
166-
fix: (fixer) => fixer.replaceWithText(separatorRange, suggested),
171+
fix: (fixer) => fixer.replaceWithText(separatorRange, suggestedSeparator),
167172
},
168173
],
169174
});
@@ -186,11 +191,11 @@ export default defineRule({
186191

187192
// Check if CSS injection rule needs extended separator
188193
if (needsExtended) {
189-
const suggested = currentRuleException
194+
const suggestedSeparator = currentRuleException
190195
? CosmeticRuleSeparator.AdgExtendedCssInjectionException
191196
: CosmeticRuleSeparator.AdgExtendedCssInjection;
192197

193-
if (currentRuleSeparator.value === suggested) {
198+
if (currentRuleSeparator.value === suggestedSeparator) {
194199
return;
195200
}
196201

@@ -205,23 +210,23 @@ export default defineRule({
205210
context.report({
206211
messageId,
207212
data: {
208-
[dataKey]: suggested,
213+
[dataKey]: suggestedSeparator,
209214
...(messageId === 'useExtendedSeparator' && { current: currentRuleSeparator.value }),
210215
},
211216
node,
212217
suggest: [
213218
{
214219
messageId: 'changeSeparator',
215-
data: { suggested },
216-
fix: (fixer) => fixer.replaceWithText(separatorRange, suggested),
220+
data: { suggested: suggestedSeparator },
221+
fix: (fixer) => fixer.replaceWithText(separatorRange, suggestedSeparator),
217222
},
218223
],
219224
});
220225
} else if (
221226
currentRuleSeparator.value === CosmeticRuleSeparator.AdgExtendedCssInjection
222227
|| currentRuleSeparator.value === CosmeticRuleSeparator.AdgExtendedCssInjectionException
223228
) {
224-
const suggested = currentRuleException
229+
const suggestedSeparator = currentRuleException
225230
? CosmeticRuleSeparator.AdgCssInjectionException
226231
: CosmeticRuleSeparator.AdgCssInjection;
227232

@@ -232,13 +237,13 @@ export default defineRule({
232237

233238
context.report({
234239
messageId: 'useNativeSeparator',
235-
data: { current: currentRuleSeparator.value, suggested },
240+
data: { current: currentRuleSeparator.value, suggested: suggestedSeparator },
236241
node,
237242
suggest: [
238243
{
239244
messageId: 'changeSeparator',
240-
data: { suggested },
241-
fix: (fixer) => fixer.replaceWithText(separatorRange, suggested),
245+
data: { suggested: suggestedSeparator },
246+
fix: (fixer) => fixer.replaceWithText(separatorRange, suggestedSeparator),
242247
},
243248
],
244249
});
@@ -253,15 +258,15 @@ export default defineRule({
253258
},
254259

255260
Declaration: (node: DeclarationPlain) => {
256-
if (node.property !== 'remove') {
261+
if (node.property !== REMOVE_PROPERTY) {
257262
return;
258263
}
259264

260265
if (
261266
node.value?.type === 'Value'
262267
&& node.value?.children.length === 1
263268
&& node.value.children[0]?.type === 'Identifier'
264-
&& node.value.children[0].name === 'true'
269+
&& node.value.children[0].name === REMOVE_VALUE
265270
) {
266271
hasExtendedDeclarations = true;
267272
}

src/rules/no-invalid-css-declaration.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { type DeclarationPlain } from '@adguard/ecss-tree';
22

3+
import { REMOVE_PROPERTY, REMOVE_VALUE } from '../common/constants';
34
import { defineRule, LinterRuleType } from '../linter/rule';
45
import { validateDeclaration } from '../utils/css-utils/css-validator';
56
import { getBuiltInRuleDocumentationUrl } from '../utils/repo-url';
@@ -36,13 +37,13 @@ export default defineRule({
3637
return {
3738
Declaration: (node: DeclarationPlain) => {
3839
// special case: `remove` property
39-
if (node.property === 'remove') {
40+
if (node.property === REMOVE_VALUE) {
4041
// its value should be `true`
4142
if (
4243
node.value?.type !== 'Value'
4344
|| node.value?.children.length !== 1
4445
|| node.value.children[0]?.type !== 'Identifier'
45-
|| node.value.children[0].name !== 'true'
46+
|| node.value.children[0].name !== REMOVE_PROPERTY
4647
) {
4748
const position = context.sourceCode.getLinterPositionRangeFromOffsetRange([
4849
node.loc!.start.offset,

0 commit comments

Comments
 (0)