@agilebot/eslint-plugin 0.3.9 → 0.3.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +94 -77
- package/package.json +4 -5
package/dist/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license @agilebot/eslint-plugin v0.3.
|
2
|
+
* @license @agilebot/eslint-plugin v0.3.10
|
3
3
|
*
|
4
4
|
* Copyright (c) Agilebot, Inc. and its affiliates.
|
5
5
|
*
|
@@ -11,7 +11,6 @@
|
|
11
11
|
var eslintUtils = require('@agilebot/eslint-utils');
|
12
12
|
var fs = require('node:fs');
|
13
13
|
var path = require('node:path');
|
14
|
-
var utils = require('@typescript-eslint/utils');
|
15
14
|
|
16
15
|
function _interopNamespaceDefault(e) {
|
17
16
|
var n = Object.create(null);
|
@@ -33,12 +32,12 @@ function _interopNamespaceDefault(e) {
|
|
33
32
|
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
34
33
|
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
35
34
|
|
36
|
-
var enforceMuiIconAlias = {
|
35
|
+
var enforceMuiIconAlias = eslintUtils.createESLintRule({
|
37
36
|
meta: {
|
38
37
|
type: 'problem',
|
39
38
|
docs: {
|
40
39
|
description: 'Enforce alias for @mui/icons-material imports',
|
41
|
-
recommended:
|
40
|
+
recommended: 'recommended'
|
42
41
|
},
|
43
42
|
fixable: 'code',
|
44
43
|
schema: [],
|
@@ -46,6 +45,7 @@ var enforceMuiIconAlias = {
|
|
46
45
|
iconAlias: 'Import for {{ name }} should be aliased.'
|
47
46
|
}
|
48
47
|
},
|
48
|
+
defaultOptions: [],
|
49
49
|
create(context) {
|
50
50
|
return {
|
51
51
|
ImportDeclaration(node) {
|
@@ -70,10 +70,11 @@ var enforceMuiIconAlias = {
|
|
70
70
|
}
|
71
71
|
};
|
72
72
|
}
|
73
|
-
};
|
73
|
+
});
|
74
74
|
|
75
|
-
var funcNaming = {
|
75
|
+
var funcNaming = eslintUtils.createESLintRule({
|
76
76
|
meta: {
|
77
|
+
type: 'problem',
|
77
78
|
docs: {
|
78
79
|
description: 'Enforce function naming convention'
|
79
80
|
},
|
@@ -81,6 +82,7 @@ var funcNaming = {
|
|
81
82
|
type: 'object',
|
82
83
|
properties: {
|
83
84
|
format: {
|
85
|
+
type: 'string',
|
84
86
|
"enum": ['camelCase', 'PascalCase']
|
85
87
|
}
|
86
88
|
}
|
@@ -90,6 +92,7 @@ var funcNaming = {
|
|
90
92
|
invalidReactFCNaming: 'Invalid naming convention for React functional component, expected PascalCase'
|
91
93
|
}
|
92
94
|
},
|
95
|
+
defaultOptions: [],
|
93
96
|
create(context) {
|
94
97
|
if (!context.options[0]) {
|
95
98
|
throw new Error('Missing options');
|
@@ -169,7 +172,8 @@ var funcNaming = {
|
|
169
172
|
const typeAnnotation = node.id.typeAnnotation.typeAnnotation;
|
170
173
|
if (typeAnnotation.type === 'TSTypeReference' && typeAnnotation.typeName.type === 'Identifier') {
|
171
174
|
const typeName = typeAnnotation.typeName.name;
|
172
|
-
|
175
|
+
const typeNameLast = typeName.split('.').pop();
|
176
|
+
if (['FC', 'FunctionComponent', 'VFC', 'VoidFunctionComponent'].includes(typeNameLast)) {
|
173
177
|
isReactComponent = true;
|
174
178
|
}
|
175
179
|
}
|
@@ -187,7 +191,7 @@ var funcNaming = {
|
|
187
191
|
}
|
188
192
|
};
|
189
193
|
}
|
190
|
-
};
|
194
|
+
});
|
191
195
|
|
192
196
|
function getSetting(context, name) {
|
193
197
|
return context.settings["agilebot/".concat(name)];
|
@@ -202,12 +206,12 @@ function warnOnce(message) {
|
|
202
206
|
console.warn("Warning: ".concat(message));
|
203
207
|
}
|
204
208
|
|
205
|
-
var importMonorepo = {
|
209
|
+
var importMonorepo = eslintUtils.createESLintRule({
|
206
210
|
meta: {
|
207
211
|
type: 'problem',
|
208
212
|
docs: {
|
209
213
|
description: 'Enforce import styles for monorepo',
|
210
|
-
recommended:
|
214
|
+
recommended: 'recommended'
|
211
215
|
},
|
212
216
|
fixable: 'code',
|
213
217
|
schema: [],
|
@@ -215,6 +219,7 @@ var importMonorepo = {
|
|
215
219
|
monorepoImport: 'Import for {{ module }} should not contains src folder.'
|
216
220
|
}
|
217
221
|
},
|
222
|
+
defaultOptions: [],
|
218
223
|
create(context) {
|
219
224
|
return {
|
220
225
|
ImportDeclaration(node) {
|
@@ -247,7 +252,7 @@ var importMonorepo = {
|
|
247
252
|
}
|
248
253
|
};
|
249
254
|
}
|
250
|
-
};
|
255
|
+
});
|
251
256
|
|
252
257
|
function findFormatMessageAttrNode(node, attrName) {
|
253
258
|
if (node.type === 'CallExpression' && (node.callee.name === 'formatMessage' || node.callee.name === '$t') && node.arguments.length > 0 && node.arguments[0].properties) {
|
@@ -317,13 +322,12 @@ function getIntlIds(context) {
|
|
317
322
|
return results;
|
318
323
|
}
|
319
324
|
|
320
|
-
var intlIdMissing = {
|
325
|
+
var intlIdMissing = eslintUtils.createESLintRule({
|
321
326
|
meta: {
|
327
|
+
type: 'problem',
|
322
328
|
docs: {
|
323
|
-
description: 'Validates intl message ids are in locale file'
|
324
|
-
category: 'Intl'
|
329
|
+
description: 'Validates intl message ids are in locale file'
|
325
330
|
},
|
326
|
-
fixable: undefined,
|
327
331
|
schema: [],
|
328
332
|
messages: {
|
329
333
|
missingId: 'Missing id: {{value}}',
|
@@ -331,6 +335,7 @@ var intlIdMissing = {
|
|
331
335
|
disallowInvoke: 'Do not invoke intl by {{value}}'
|
332
336
|
}
|
333
337
|
},
|
338
|
+
defaultOptions: [],
|
334
339
|
create: function (context) {
|
335
340
|
const translatedIds = getIntlIds(context);
|
336
341
|
const translatedIdSet = new Set(translatedIds);
|
@@ -403,19 +408,19 @@ var intlIdMissing = {
|
|
403
408
|
}
|
404
409
|
};
|
405
410
|
}
|
406
|
-
};
|
411
|
+
});
|
407
412
|
|
408
|
-
var intlIdNaming = {
|
413
|
+
var intlIdNaming = eslintUtils.createESLintRule({
|
409
414
|
meta: {
|
415
|
+
type: 'problem',
|
410
416
|
docs: {
|
411
|
-
description: 'Validates intl message ids naming convention'
|
412
|
-
category: 'Intl'
|
417
|
+
description: 'Validates intl message ids naming convention'
|
413
418
|
},
|
414
|
-
fixable: undefined,
|
415
419
|
schema: [{
|
416
420
|
type: 'object',
|
417
421
|
properties: {
|
418
422
|
format: {
|
423
|
+
type: 'string',
|
419
424
|
"enum": ['camelCase', 'PascalCase']
|
420
425
|
}
|
421
426
|
}
|
@@ -424,6 +429,7 @@ var intlIdNaming = {
|
|
424
429
|
invalidIdNaming: "Invalid id naming, expected {{format}}"
|
425
430
|
}
|
426
431
|
},
|
432
|
+
defaultOptions: [],
|
427
433
|
create: function (context) {
|
428
434
|
if (!context.options[0]) {
|
429
435
|
throw new Error('Missing options');
|
@@ -495,15 +501,14 @@ var intlIdNaming = {
|
|
495
501
|
}
|
496
502
|
};
|
497
503
|
}
|
498
|
-
};
|
504
|
+
});
|
499
505
|
|
500
|
-
var intlIdPrefix = {
|
506
|
+
var intlIdPrefix = eslintUtils.createESLintRule({
|
501
507
|
meta: {
|
508
|
+
type: 'problem',
|
502
509
|
docs: {
|
503
|
-
description: 'Validates intl message ids has correct prefixes'
|
504
|
-
category: 'Intl'
|
510
|
+
description: 'Validates intl message ids has correct prefixes'
|
505
511
|
},
|
506
|
-
fixable: undefined,
|
507
512
|
schema: [{
|
508
513
|
type: 'array',
|
509
514
|
items: {
|
@@ -514,6 +519,7 @@ var intlIdPrefix = {
|
|
514
519
|
invalidIdPrefix: 'Invalid id prefix: {{value}}'
|
515
520
|
}
|
516
521
|
},
|
522
|
+
defaultOptions: [],
|
517
523
|
create: function (context) {
|
518
524
|
if (context.options[0].length === 0) {
|
519
525
|
throw new Error('Prefixes are required in settings');
|
@@ -569,18 +575,19 @@ var intlIdPrefix = {
|
|
569
575
|
}
|
570
576
|
};
|
571
577
|
}
|
572
|
-
};
|
578
|
+
});
|
573
579
|
|
574
580
|
const usedIds = new Map();
|
575
|
-
var intlIdUnused = {
|
581
|
+
var intlIdUnused = eslintUtils.createESLintRule({
|
576
582
|
meta: {
|
583
|
+
type: 'problem',
|
577
584
|
docs: {
|
578
|
-
description: 'Finds unused intl message ids in locale file'
|
579
|
-
category: 'Intl'
|
585
|
+
description: 'Finds unused intl message ids in locale file'
|
580
586
|
},
|
581
|
-
|
582
|
-
|
587
|
+
schema: [],
|
588
|
+
messages: {}
|
583
589
|
},
|
590
|
+
defaultOptions: [],
|
584
591
|
create: function (context) {
|
585
592
|
const projectRoot = getSetting(context, 'project-root');
|
586
593
|
if (!projectRoot) {
|
@@ -645,20 +652,20 @@ var intlIdUnused = {
|
|
645
652
|
}
|
646
653
|
};
|
647
654
|
}
|
648
|
-
};
|
655
|
+
});
|
649
656
|
|
650
|
-
var intlNoDefault = {
|
657
|
+
var intlNoDefault = eslintUtils.createESLintRule({
|
651
658
|
meta: {
|
659
|
+
type: 'problem',
|
652
660
|
docs: {
|
653
|
-
description: 'Validates defaultMessage is not used with react-intl'
|
654
|
-
category: 'Intl'
|
661
|
+
description: 'Validates defaultMessage is not used with react-intl'
|
655
662
|
},
|
656
|
-
fixable: undefined,
|
657
663
|
schema: [],
|
658
664
|
messages: {
|
659
665
|
noDefaultMessage: 'Do not use defaultMessage'
|
660
666
|
}
|
661
667
|
},
|
668
|
+
defaultOptions: [],
|
662
669
|
create: function (context) {
|
663
670
|
function processAttrNode(node) {
|
664
671
|
context.report({
|
@@ -687,21 +694,21 @@ var intlNoDefault = {
|
|
687
694
|
}
|
688
695
|
};
|
689
696
|
}
|
690
|
-
};
|
697
|
+
});
|
691
698
|
|
692
|
-
var noAsyncArrayMethods = {
|
699
|
+
var noAsyncArrayMethods = eslintUtils.createESLintRule({
|
693
700
|
meta: {
|
701
|
+
type: 'problem',
|
694
702
|
docs: {
|
695
703
|
description: 'No async callback for Array methods forEach, map, filter, reduce, some, every, etc.',
|
696
|
-
|
697
|
-
recommended: true
|
704
|
+
recommended: 'recommended'
|
698
705
|
},
|
699
|
-
fixable: undefined,
|
700
706
|
schema: [],
|
701
707
|
messages: {
|
702
708
|
noAsyncArrayMethods: "No async function in method '{{ methodName }}'"
|
703
709
|
}
|
704
710
|
},
|
711
|
+
defaultOptions: [],
|
705
712
|
create: function (context) {
|
706
713
|
return {
|
707
714
|
ExpressionStatement: function (node) {
|
@@ -729,21 +736,21 @@ var noAsyncArrayMethods = {
|
|
729
736
|
}
|
730
737
|
};
|
731
738
|
}
|
732
|
-
};
|
739
|
+
});
|
733
740
|
|
734
|
-
var noImportCss = {
|
741
|
+
var noImportCss = eslintUtils.createESLintRule({
|
735
742
|
meta: {
|
736
743
|
type: 'problem',
|
737
744
|
docs: {
|
738
745
|
description: 'Prevent importing CSS',
|
739
|
-
recommended:
|
746
|
+
recommended: 'recommended'
|
740
747
|
},
|
741
|
-
fixable: 'code',
|
742
748
|
schema: [],
|
743
749
|
messages: {
|
744
750
|
noImportCSS: 'Do not import CSS files. Use CSS-in-JS instead.'
|
745
751
|
}
|
746
752
|
},
|
753
|
+
defaultOptions: [],
|
747
754
|
create(context) {
|
748
755
|
return {
|
749
756
|
ImportDeclaration(node) {
|
@@ -760,9 +767,9 @@ var noImportCss = {
|
|
760
767
|
}
|
761
768
|
};
|
762
769
|
}
|
763
|
-
};
|
770
|
+
});
|
764
771
|
|
765
|
-
var noThenCatchFinally = {
|
772
|
+
var noThenCatchFinally = eslintUtils.createESLintRule({
|
766
773
|
meta: {
|
767
774
|
type: 'suggestion',
|
768
775
|
docs: {
|
@@ -784,6 +791,7 @@ var noThenCatchFinally = {
|
|
784
791
|
forbiddenThenCatchFinally: "then()/catch()/finally() is forbidden when invoke {{ name }}()."
|
785
792
|
}
|
786
793
|
},
|
794
|
+
defaultOptions: [],
|
787
795
|
create(context) {
|
788
796
|
const configuration = context.options[0] || {};
|
789
797
|
const restrictedFunctions = configuration.restrictedFunctions || [];
|
@@ -814,14 +822,14 @@ var noThenCatchFinally = {
|
|
814
822
|
}
|
815
823
|
};
|
816
824
|
}
|
817
|
-
};
|
825
|
+
});
|
818
826
|
|
819
|
-
var noUnnecessaryTemplateLiterals = {
|
827
|
+
var noUnnecessaryTemplateLiterals = eslintUtils.createESLintRule({
|
820
828
|
meta: {
|
821
829
|
type: 'problem',
|
822
830
|
docs: {
|
823
831
|
description: 'Check if a template string contains only one ${}',
|
824
|
-
recommended:
|
832
|
+
recommended: 'recommended'
|
825
833
|
},
|
826
834
|
fixable: 'code',
|
827
835
|
schema: [],
|
@@ -829,6 +837,7 @@ var noUnnecessaryTemplateLiterals = {
|
|
829
837
|
unnecessaryTemplateString: 'Unnecessary template string with only one ${}.'
|
830
838
|
}
|
831
839
|
},
|
840
|
+
defaultOptions: [],
|
832
841
|
create(context) {
|
833
842
|
return {
|
834
843
|
TemplateLiteral(node) {
|
@@ -845,7 +854,7 @@ var noUnnecessaryTemplateLiterals = {
|
|
845
854
|
}
|
846
855
|
};
|
847
856
|
}
|
848
|
-
};
|
857
|
+
});
|
849
858
|
|
850
859
|
var reactBetterExhaustiveDeps = {
|
851
860
|
meta: {
|
@@ -2039,19 +2048,20 @@ function isAncestorNodeOf(a, b) {
|
|
2039
2048
|
}
|
2040
2049
|
|
2041
2050
|
const Components = require('eslint-plugin-react/lib/util/Components');
|
2042
|
-
var reactHookUseRef = {
|
2051
|
+
var reactHookUseRef = eslintUtils.createESLintRule({
|
2043
2052
|
meta: {
|
2053
|
+
type: 'suggestion',
|
2044
2054
|
docs: {
|
2045
2055
|
description: 'Ensure naming of useRef hook value.',
|
2046
|
-
recommended:
|
2056
|
+
recommended: 'recommended'
|
2047
2057
|
},
|
2048
2058
|
schema: [],
|
2049
|
-
type: 'suggestion',
|
2050
2059
|
hasSuggestions: true,
|
2051
2060
|
messages: {
|
2052
2061
|
useRefName: 'useRef call is not end with "Ref"'
|
2053
2062
|
}
|
2054
2063
|
},
|
2064
|
+
defaultOptions: [],
|
2055
2065
|
create: Components.detect((context, component, util) => ({
|
2056
2066
|
CallExpression(node) {
|
2057
2067
|
const isImmediateReturn = node.parent && node.parent.type === 'ReturnStatement';
|
@@ -2070,7 +2080,7 @@ var reactHookUseRef = {
|
|
2070
2080
|
}
|
2071
2081
|
}
|
2072
2082
|
}))
|
2073
|
-
};
|
2083
|
+
});
|
2074
2084
|
|
2075
2085
|
function* updateImportStatement(context, fixer, key) {
|
2076
2086
|
const sourceCode = context.sourceCode;
|
@@ -2089,10 +2099,9 @@ function* updateImportStatement(context, fixer, key) {
|
|
2089
2099
|
}
|
2090
2100
|
yield fixer.insertTextAfter([...importNode.specifiers].pop(), ", ".concat(key));
|
2091
2101
|
}
|
2092
|
-
var reactPreferNamedPropertyAccess =
|
2093
|
-
defaultOptions: [],
|
2102
|
+
var reactPreferNamedPropertyAccess = eslintUtils.createESLintRule({
|
2094
2103
|
meta: {
|
2095
|
-
type: '
|
2104
|
+
type: 'problem',
|
2096
2105
|
fixable: 'code',
|
2097
2106
|
docs: {
|
2098
2107
|
description: 'Enforce importing each member of React namespace separately instead of accessing them through React namespace',
|
@@ -2104,6 +2113,7 @@ var reactPreferNamedPropertyAccess = utils.ESLintUtils.RuleCreator.withoutDocs({
|
|
2104
2113
|
},
|
2105
2114
|
schema: []
|
2106
2115
|
},
|
2116
|
+
defaultOptions: [],
|
2107
2117
|
create(context) {
|
2108
2118
|
return {
|
2109
2119
|
TSQualifiedName(node) {
|
@@ -2155,12 +2165,12 @@ var reactPreferNamedPropertyAccess = utils.ESLintUtils.RuleCreator.withoutDocs({
|
|
2155
2165
|
}
|
2156
2166
|
});
|
2157
2167
|
|
2158
|
-
var reactPreferSxProp = {
|
2168
|
+
var reactPreferSxProp = eslintUtils.createESLintRule({
|
2159
2169
|
meta: {
|
2170
|
+
type: 'problem',
|
2160
2171
|
docs: {
|
2161
2172
|
description: 'Prefer using sx prop instead of inline styles',
|
2162
|
-
|
2163
|
-
recommended: true
|
2173
|
+
recommended: 'recommended'
|
2164
2174
|
},
|
2165
2175
|
messages: {
|
2166
2176
|
preferSxProp: 'Avoid using inline styles, use sx prop or tss-react or styled-component instead'
|
@@ -2178,6 +2188,7 @@ var reactPreferSxProp = {
|
|
2178
2188
|
}
|
2179
2189
|
}]
|
2180
2190
|
},
|
2191
|
+
defaultOptions: [],
|
2181
2192
|
create(context) {
|
2182
2193
|
const configuration = context.options[0] || {};
|
2183
2194
|
const allowedFor = configuration.allowedFor || [];
|
@@ -2222,7 +2233,7 @@ var reactPreferSxProp = {
|
|
2222
2233
|
}
|
2223
2234
|
};
|
2224
2235
|
}
|
2225
|
-
};
|
2236
|
+
});
|
2226
2237
|
|
2227
2238
|
function getBasicIdentifier(node) {
|
2228
2239
|
if (node.type === 'Identifier') {
|
@@ -2313,18 +2324,19 @@ function loopStylesObj(node, callback) {
|
|
2313
2324
|
}
|
2314
2325
|
}
|
2315
2326
|
|
2316
|
-
var tssClassNaming = {
|
2327
|
+
var tssClassNaming = eslintUtils.createESLintRule({
|
2317
2328
|
meta: {
|
2318
2329
|
type: 'problem',
|
2319
2330
|
docs: {
|
2320
2331
|
description: 'Enforce camelCase class names in TSS',
|
2321
|
-
|
2322
|
-
recommended: true
|
2332
|
+
recommended: 'recommended'
|
2323
2333
|
},
|
2334
|
+
schema: [],
|
2324
2335
|
messages: {
|
2325
2336
|
camelCase: 'Class `{{ className }}` must be camelCase in TSS.'
|
2326
2337
|
}
|
2327
2338
|
},
|
2339
|
+
defaultOptions: [],
|
2328
2340
|
create: function rule(context) {
|
2329
2341
|
return {
|
2330
2342
|
CallExpression(node) {
|
@@ -2353,7 +2365,7 @@ var tssClassNaming = {
|
|
2353
2365
|
}
|
2354
2366
|
};
|
2355
2367
|
}
|
2356
|
-
};
|
2368
|
+
});
|
2357
2369
|
|
2358
2370
|
var colors = {
|
2359
2371
|
aliceblue: [240, 248, 255],
|
@@ -2506,17 +2518,19 @@ var colors = {
|
|
2506
2518
|
yellowgreen: [154, 205, 50]
|
2507
2519
|
};
|
2508
2520
|
|
2509
|
-
var tssNoColorName = {
|
2521
|
+
var tssNoColorName = eslintUtils.createESLintRule({
|
2510
2522
|
meta: {
|
2511
2523
|
type: 'suggestion',
|
2512
2524
|
docs: {
|
2513
2525
|
description: 'Enforce the use of color variables instead of color name within TSS',
|
2514
|
-
recommended:
|
2526
|
+
recommended: 'recommended'
|
2515
2527
|
},
|
2528
|
+
schema: [],
|
2516
2529
|
messages: {
|
2517
2530
|
disallowColorName: 'Disallowed color name. Use color from `@mui/material/colors` or `theme.palette`.'
|
2518
2531
|
}
|
2519
2532
|
},
|
2533
|
+
defaultOptions: [],
|
2520
2534
|
create: function (context) {
|
2521
2535
|
return {
|
2522
2536
|
CallExpression(node) {
|
@@ -2536,19 +2550,21 @@ var tssNoColorName = {
|
|
2536
2550
|
}
|
2537
2551
|
};
|
2538
2552
|
}
|
2539
|
-
};
|
2553
|
+
});
|
2540
2554
|
|
2541
|
-
var tssNoColorValue = {
|
2555
|
+
var tssNoColorValue = eslintUtils.createESLintRule({
|
2542
2556
|
meta: {
|
2543
2557
|
type: 'problem',
|
2544
2558
|
docs: {
|
2545
2559
|
description: 'Enforce the use of color variables instead of color codes within TSS',
|
2546
|
-
recommended:
|
2560
|
+
recommended: 'recommended'
|
2547
2561
|
},
|
2562
|
+
schema: [],
|
2548
2563
|
messages: {
|
2549
2564
|
preferMuiColor: 'Prefer use color from `@mui/material/colors` or `theme.palette`.'
|
2550
2565
|
}
|
2551
2566
|
},
|
2567
|
+
defaultOptions: [],
|
2552
2568
|
create: function (context) {
|
2553
2569
|
return {
|
2554
2570
|
CallExpression(node) {
|
@@ -2571,20 +2587,21 @@ var tssNoColorValue = {
|
|
2571
2587
|
}
|
2572
2588
|
};
|
2573
2589
|
}
|
2574
|
-
};
|
2590
|
+
});
|
2575
2591
|
|
2576
|
-
var tssUnusedClasses = {
|
2592
|
+
var tssUnusedClasses = eslintUtils.createESLintRule({
|
2577
2593
|
meta: {
|
2578
2594
|
type: 'suggestion',
|
2579
2595
|
docs: {
|
2580
2596
|
description: 'Disallow unused classes in tss',
|
2581
|
-
|
2582
|
-
recommended: true
|
2597
|
+
recommended: 'recommended'
|
2583
2598
|
},
|
2599
|
+
schema: [],
|
2584
2600
|
messages: {
|
2585
2601
|
unusedClass: 'Class `{{ className }}` is unused in JSX'
|
2586
2602
|
}
|
2587
2603
|
},
|
2604
|
+
defaultOptions: [],
|
2588
2605
|
create: function rule(context) {
|
2589
2606
|
const usedClasses = {};
|
2590
2607
|
const definedClasses = {};
|
@@ -2660,7 +2677,7 @@ var tssUnusedClasses = {
|
|
2660
2677
|
}
|
2661
2678
|
};
|
2662
2679
|
}
|
2663
|
-
};
|
2680
|
+
});
|
2664
2681
|
|
2665
2682
|
var ruleFiles = /*#__PURE__*/Object.freeze({
|
2666
2683
|
__proto__: null,
|
@@ -2706,7 +2723,7 @@ Object.keys(ruleFiles).forEach(key => {
|
|
2706
2723
|
const rule = ruleFiles[key];
|
2707
2724
|
plugin.rules[finalKey] = rule;
|
2708
2725
|
if (rule.meta && rule.meta.docs && rule.meta.docs.recommended) {
|
2709
|
-
plugin.configs.recommended.rules["@agilebot/".concat(finalKey)] = rule.meta.type === '
|
2726
|
+
plugin.configs.recommended.rules["@agilebot/".concat(finalKey)] = rule.meta.type === 'problem' ? 'error' : 'warn';
|
2710
2727
|
}
|
2711
2728
|
});
|
2712
2729
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@agilebot/eslint-plugin",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.10",
|
4
4
|
"description": "Agilebot's ESLint plugin",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -18,9 +18,8 @@
|
|
18
18
|
"node": "^18.18.0 || >=20.0.0"
|
19
19
|
},
|
20
20
|
"dependencies": {
|
21
|
-
"
|
22
|
-
"eslint-
|
23
|
-
"@agilebot/eslint-utils": "0.3.9"
|
21
|
+
"eslint-plugin-react": "^7.34.3",
|
22
|
+
"@agilebot/eslint-utils": "0.3.10"
|
24
23
|
},
|
25
24
|
"peerDependencies": {
|
26
25
|
"eslint": "^7.0.0 || ^8.0.0"
|
@@ -33,7 +32,7 @@
|
|
33
32
|
"@types/estree": "^1.0.5",
|
34
33
|
"color-name": "^2.0.0",
|
35
34
|
"eslint-vitest-rule-tester": "^0.3.2",
|
36
|
-
"typescript-eslint": "^7.
|
35
|
+
"typescript-eslint": "^7.16.0"
|
37
36
|
},
|
38
37
|
"scripts": {
|
39
38
|
"build": "rollup -c rollup.config.mjs",
|