eslint-plugin-react-x 1.28.1-next.4 → 1.28.1-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +42 -38
- package/dist/index.mjs +44 -40
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -137,25 +137,9 @@ var settings3 = {
|
|
|
137
137
|
|
|
138
138
|
// package.json
|
|
139
139
|
var name4 = "eslint-plugin-react-x";
|
|
140
|
-
var version = "1.28.1-next.
|
|
140
|
+
var version = "1.28.1-next.6";
|
|
141
141
|
var createRule = shared.createRuleForPlugin("x");
|
|
142
142
|
|
|
143
|
-
// src/utils/get-associated-tokens.ts
|
|
144
|
-
function getAssociatedTokens(context, node) {
|
|
145
|
-
{
|
|
146
|
-
const tokenBefore = context.sourceCode.getTokenBefore(node);
|
|
147
|
-
const tokenAfter = context.sourceCode.getTokenAfter(node);
|
|
148
|
-
const tokens = [];
|
|
149
|
-
if (tokenAfter?.value !== "," && tokenBefore?.value === ",") {
|
|
150
|
-
tokens.push(tokenBefore);
|
|
151
|
-
}
|
|
152
|
-
if (tokenAfter?.value === ",") {
|
|
153
|
-
tokens.push(tokenAfter);
|
|
154
|
-
}
|
|
155
|
-
return tokens;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
143
|
// src/rules/avoid-shorthand-boolean.ts
|
|
160
144
|
var RULE_NAME = "avoid-shorthand-boolean";
|
|
161
145
|
var RULE_FEATURES = [
|
|
@@ -268,6 +252,9 @@ var RULE_NAME4 = "no-access-state-in-setstate";
|
|
|
268
252
|
var RULE_FEATURES4 = [
|
|
269
253
|
"CHK"
|
|
270
254
|
];
|
|
255
|
+
function isKeyLiteral(node, key) {
|
|
256
|
+
return tsPattern.match(key).with({ type: types.AST_NODE_TYPES.Literal }, eff.constTrue).with({ type: types.AST_NODE_TYPES.TemplateLiteral, expressions: [] }, eff.constTrue).with({ type: types.AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(eff.constFalse);
|
|
257
|
+
}
|
|
271
258
|
function getName(node) {
|
|
272
259
|
if (AST11__namespace.isTsOnlyExpression(node)) {
|
|
273
260
|
return getName(node.expression);
|
|
@@ -378,7 +365,7 @@ var no_access_state_in_setstate_default = createRule({
|
|
|
378
365
|
return;
|
|
379
366
|
}
|
|
380
367
|
const hasState = node.id.properties.some(
|
|
381
|
-
(prop) => prop.type === types.AST_NODE_TYPES.Property &&
|
|
368
|
+
(prop) => prop.type === types.AST_NODE_TYPES.Property && isKeyLiteral(prop, prop.key) && getName(prop.key) === "state"
|
|
382
369
|
);
|
|
383
370
|
if (!hasState) {
|
|
384
371
|
return;
|
|
@@ -952,7 +939,7 @@ var RULE_FEATURES16 = [
|
|
|
952
939
|
"MOD"
|
|
953
940
|
];
|
|
954
941
|
function isComponentWillMount(node) {
|
|
955
|
-
return AST11__namespace.
|
|
942
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentWillMount";
|
|
956
943
|
}
|
|
957
944
|
var no_component_will_mount_default = createRule({
|
|
958
945
|
meta: {
|
|
@@ -1005,7 +992,7 @@ var RULE_FEATURES17 = [
|
|
|
1005
992
|
"MOD"
|
|
1006
993
|
];
|
|
1007
994
|
function isComponentWillUpdate(node) {
|
|
1008
|
-
return AST11__namespace.
|
|
995
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentWillReceiveProps";
|
|
1009
996
|
}
|
|
1010
997
|
var no_component_will_receive_props_default = createRule({
|
|
1011
998
|
meta: {
|
|
@@ -1058,7 +1045,7 @@ var RULE_FEATURES18 = [
|
|
|
1058
1045
|
"MOD"
|
|
1059
1046
|
];
|
|
1060
1047
|
function isComponentWillUpdate2(node) {
|
|
1061
|
-
return AST11__namespace.
|
|
1048
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
1062
1049
|
}
|
|
1063
1050
|
var no_component_will_update_default = createRule({
|
|
1064
1051
|
meta: {
|
|
@@ -1265,7 +1252,7 @@ function isAssignmentToThisState(node) {
|
|
|
1265
1252
|
return left.type === types.AST_NODE_TYPES.MemberExpression && AST11__namespace.isThisExpression(left.object) && getName2(left.property) === "state";
|
|
1266
1253
|
}
|
|
1267
1254
|
function isConstructorFunction(node) {
|
|
1268
|
-
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.FunctionDeclaration, types.AST_NODE_TYPES.FunctionExpression])(node) && AST11__namespace.
|
|
1255
|
+
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.FunctionDeclaration, types.AST_NODE_TYPES.FunctionExpression])(node) && AST11__namespace.isMethodOrProperty(node.parent) && node.parent.key.type === types.AST_NODE_TYPES.Identifier && node.parent.key.name === "constructor";
|
|
1269
1256
|
}
|
|
1270
1257
|
var no_direct_mutation_state_default = createRule({
|
|
1271
1258
|
meta: {
|
|
@@ -1821,7 +1808,7 @@ var no_missing_context_display_name_default = createRule({
|
|
|
1821
1808
|
},
|
|
1822
1809
|
"Program:exit"() {
|
|
1823
1810
|
for (const call of createCalls) {
|
|
1824
|
-
const id =
|
|
1811
|
+
const id = core.getInstanceId(call);
|
|
1825
1812
|
if (id == null) {
|
|
1826
1813
|
context.report({
|
|
1827
1814
|
messageId: "noMissingContextDisplayName",
|
|
@@ -1833,10 +1820,7 @@ var no_missing_context_display_name_default = createRule({
|
|
|
1833
1820
|
const left = node.left;
|
|
1834
1821
|
if (left.type !== types.AST_NODE_TYPES.MemberExpression) return false;
|
|
1835
1822
|
const object = left.object;
|
|
1836
|
-
return
|
|
1837
|
-
context.sourceCode.getScope(id),
|
|
1838
|
-
context.sourceCode.getScope(object)
|
|
1839
|
-
]);
|
|
1823
|
+
return core.isInstanceIdEqual(context, id, object);
|
|
1840
1824
|
});
|
|
1841
1825
|
if (!hasDisplayNameAssignment) {
|
|
1842
1826
|
context.report({
|
|
@@ -2166,7 +2150,7 @@ var RULE_FEATURES33 = [
|
|
|
2166
2150
|
"CHK"
|
|
2167
2151
|
];
|
|
2168
2152
|
function isShouldComponentUpdate(node) {
|
|
2169
|
-
return AST11__namespace.
|
|
2153
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "shouldComponentUpdate";
|
|
2170
2154
|
}
|
|
2171
2155
|
var no_redundant_should_component_update_default = createRule({
|
|
2172
2156
|
meta: {
|
|
@@ -2217,7 +2201,7 @@ var RULE_FEATURES34 = [
|
|
|
2217
2201
|
"CHK"
|
|
2218
2202
|
];
|
|
2219
2203
|
function isComponentDidMount(node) {
|
|
2220
|
-
return AST11__namespace.
|
|
2204
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentDidMount";
|
|
2221
2205
|
}
|
|
2222
2206
|
var no_set_state_in_component_did_mount_default = createRule({
|
|
2223
2207
|
meta: {
|
|
@@ -2262,7 +2246,7 @@ var RULE_FEATURES35 = [
|
|
|
2262
2246
|
"CHK"
|
|
2263
2247
|
];
|
|
2264
2248
|
function isComponentDidUpdate(node) {
|
|
2265
|
-
return AST11__namespace.
|
|
2249
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentDidUpdate";
|
|
2266
2250
|
}
|
|
2267
2251
|
var no_set_state_in_component_did_update_default = createRule({
|
|
2268
2252
|
meta: {
|
|
@@ -2307,7 +2291,7 @@ var RULE_FEATURES36 = [
|
|
|
2307
2291
|
"CHK"
|
|
2308
2292
|
];
|
|
2309
2293
|
function isComponentWillUpdate3(node) {
|
|
2310
|
-
return AST11__namespace.
|
|
2294
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
2311
2295
|
}
|
|
2312
2296
|
var no_set_state_in_component_will_update_default = createRule({
|
|
2313
2297
|
meta: {
|
|
@@ -2398,7 +2382,7 @@ var RULE_FEATURES38 = [
|
|
|
2398
2382
|
"CHK"
|
|
2399
2383
|
];
|
|
2400
2384
|
function isUnsafeComponentWillMount(node) {
|
|
2401
|
-
return AST11__namespace.
|
|
2385
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillMount";
|
|
2402
2386
|
}
|
|
2403
2387
|
var no_unsafe_component_will_mount_default = createRule({
|
|
2404
2388
|
meta: {
|
|
@@ -2443,7 +2427,7 @@ var RULE_FEATURES39 = [
|
|
|
2443
2427
|
"CHK"
|
|
2444
2428
|
];
|
|
2445
2429
|
function isUnsafeComponentWillReceiveProps(node) {
|
|
2446
|
-
return AST11__namespace.
|
|
2430
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillReceiveProps";
|
|
2447
2431
|
}
|
|
2448
2432
|
var no_unsafe_component_will_receive_props_default = createRule({
|
|
2449
2433
|
meta: {
|
|
@@ -2488,7 +2472,7 @@ var RULE_FEATURES40 = [
|
|
|
2488
2472
|
"CHK"
|
|
2489
2473
|
];
|
|
2490
2474
|
function isUnsafeComponentWillUpdate(node) {
|
|
2491
|
-
return AST11__namespace.
|
|
2475
|
+
return AST11__namespace.isMethodOrProperty(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillUpdate";
|
|
2492
2476
|
}
|
|
2493
2477
|
var no_unsafe_component_will_update_default = createRule({
|
|
2494
2478
|
meta: {
|
|
@@ -2692,6 +2676,9 @@ var LIFECYCLE_METHODS = /* @__PURE__ */ new Set([
|
|
|
2692
2676
|
"UNSAFE_componentWillReceiveProps",
|
|
2693
2677
|
"UNSAFE_componentWillUpdate"
|
|
2694
2678
|
]);
|
|
2679
|
+
function isKeyLiteral2(node, key) {
|
|
2680
|
+
return tsPattern.match(key).with({ type: types.AST_NODE_TYPES.Literal }, eff.constTrue).with({ type: types.AST_NODE_TYPES.TemplateLiteral, expressions: [] }, eff.constTrue).with({ type: types.AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(eff.constFalse);
|
|
2681
|
+
}
|
|
2695
2682
|
function getName3(node) {
|
|
2696
2683
|
if (AST11__namespace.isTsOnlyExpression(node)) {
|
|
2697
2684
|
return getName3(node.expression);
|
|
@@ -2771,7 +2758,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2771
2758
|
if (node.static) {
|
|
2772
2759
|
return;
|
|
2773
2760
|
}
|
|
2774
|
-
if (
|
|
2761
|
+
if (isKeyLiteral2(node, node.key)) {
|
|
2775
2762
|
propertyDefs.get(currentClass)?.add(node.key);
|
|
2776
2763
|
}
|
|
2777
2764
|
}
|
|
@@ -2792,7 +2779,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2792
2779
|
if (!core.isClassComponent(currentClass) || currentMethod.static) {
|
|
2793
2780
|
return;
|
|
2794
2781
|
}
|
|
2795
|
-
if (!AST11__namespace.isThisExpression(node.object) || !
|
|
2782
|
+
if (!AST11__namespace.isThisExpression(node.object) || !isKeyLiteral2(node, node.property)) {
|
|
2796
2783
|
return;
|
|
2797
2784
|
}
|
|
2798
2785
|
if (node.parent.type === types.AST_NODE_TYPES.AssignmentExpression && node.parent.left === node) {
|
|
@@ -2819,7 +2806,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2819
2806
|
}
|
|
2820
2807
|
if (node.init != null && AST11__namespace.isThisExpression(node.init) && node.id.type === types.AST_NODE_TYPES.ObjectPattern) {
|
|
2821
2808
|
for (const prop of node.id.properties) {
|
|
2822
|
-
if (prop.type === types.AST_NODE_TYPES.Property &&
|
|
2809
|
+
if (prop.type === types.AST_NODE_TYPES.Property && isKeyLiteral2(prop, prop.key)) {
|
|
2823
2810
|
const keyName = getName3(prop.key);
|
|
2824
2811
|
if (keyName != null) {
|
|
2825
2812
|
propertyUsages.get(currentClass)?.add(keyName);
|
|
@@ -2836,6 +2823,9 @@ var RULE_NAME44 = "no-unused-state";
|
|
|
2836
2823
|
var RULE_FEATURES44 = [
|
|
2837
2824
|
"CHK"
|
|
2838
2825
|
];
|
|
2826
|
+
function isKeyLiteral3(node, key) {
|
|
2827
|
+
return tsPattern.match(key).with({ type: types.AST_NODE_TYPES.Literal }, eff.constTrue).with({ type: types.AST_NODE_TYPES.TemplateLiteral, expressions: [] }, eff.constTrue).with({ type: types.AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(eff.constFalse);
|
|
2828
|
+
}
|
|
2839
2829
|
function getName4(node) {
|
|
2840
2830
|
if (AST11__namespace.isTsOnlyExpression(node)) {
|
|
2841
2831
|
return getName4(node.expression);
|
|
@@ -2989,7 +2979,7 @@ var no_unused_state_default = createRule({
|
|
|
2989
2979
|
return;
|
|
2990
2980
|
}
|
|
2991
2981
|
const hasState = node.id.properties.some((prop) => {
|
|
2992
|
-
if (prop.type === types.AST_NODE_TYPES.Property &&
|
|
2982
|
+
if (prop.type === types.AST_NODE_TYPES.Property && isKeyLiteral3(prop, prop.key)) {
|
|
2993
2983
|
return getName4(prop.key) === "state";
|
|
2994
2984
|
}
|
|
2995
2985
|
return false;
|
|
@@ -3089,6 +3079,20 @@ var no_use_context_default = createRule({
|
|
|
3089
3079
|
},
|
|
3090
3080
|
defaultOptions: []
|
|
3091
3081
|
});
|
|
3082
|
+
function getAssociatedTokens(context, node) {
|
|
3083
|
+
{
|
|
3084
|
+
const tokenBefore = context.sourceCode.getTokenBefore(node);
|
|
3085
|
+
const tokenAfter = context.sourceCode.getTokenAfter(node);
|
|
3086
|
+
const tokens = [];
|
|
3087
|
+
if (tokenAfter?.value !== "," && tokenBefore?.value === ",") {
|
|
3088
|
+
tokens.push(tokenBefore);
|
|
3089
|
+
}
|
|
3090
|
+
if (tokenAfter?.value === ",") {
|
|
3091
|
+
tokens.push(tokenAfter);
|
|
3092
|
+
}
|
|
3093
|
+
return tokens;
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3092
3096
|
var RULE_NAME46 = "no-useless-fragment";
|
|
3093
3097
|
var defaultOptions = [{
|
|
3094
3098
|
allowExpressions: true
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRuleForPlugin, getSettingsFromContext, unsafeDecodeSettings, DEFAULT_ESLINT_REACT_SETTINGS } from '@eslint-react/shared';
|
|
2
2
|
import * as JSX7 from '@eslint-react/jsx';
|
|
3
3
|
import * as AST11 from '@eslint-react/ast';
|
|
4
|
-
import { isForwardRefCall, isClassComponent, isThisSetState, isChildrenCount, isChildrenForEach, isChildrenMap, isChildrenOnly, isChildrenToArray, useComponentCollectorLegacy, isComponentDidCatch, isGetDerivedStateFromError, isCloneElementCall, isCreateRefCall, isComponentName, useComponentCollector, DEFAULT_COMPONENT_HINT, ERComponentFlag, DISPLAY_NAME_ASSIGNMENT_SELECTOR, isCreateContextCall, isChildrenToArrayCall, ERComponentHint, isDirectValueOfRenderPropertyLoose, isDeclaredInRenderPropLoose, isInsideRenderMethod, isCreateElementCall, isReactHookCall, isReactHookCallWithNameAlias, isGetDerivedStateFromProps, isInitializedFromReact } from '@eslint-react/core';
|
|
5
|
-
import { _, getOrUpdate, identity } from '@eslint-react/eff';
|
|
4
|
+
import { isForwardRefCall, isClassComponent, isThisSetState, isChildrenCount, isChildrenForEach, isChildrenMap, isChildrenOnly, isChildrenToArray, useComponentCollectorLegacy, isComponentDidCatch, isGetDerivedStateFromError, isCloneElementCall, isCreateRefCall, isComponentName, useComponentCollector, DEFAULT_COMPONENT_HINT, ERComponentFlag, getInstanceId, isInstanceIdEqual, DISPLAY_NAME_ASSIGNMENT_SELECTOR, isCreateContextCall, isChildrenToArrayCall, ERComponentHint, isDirectValueOfRenderPropertyLoose, isDeclaredInRenderPropLoose, isInsideRenderMethod, isCreateElementCall, isReactHookCall, isReactHookCallWithNameAlias, isGetDerivedStateFromProps, isInitializedFromReact } from '@eslint-react/core';
|
|
5
|
+
import { _, getOrUpdate, constTrue, constFalse, identity } from '@eslint-react/eff';
|
|
6
6
|
import { AST_NODE_TYPES } from '@typescript-eslint/types';
|
|
7
7
|
import { isMatching, match, P } from 'ts-pattern';
|
|
8
8
|
import { compare } from 'compare-versions';
|
|
@@ -110,25 +110,9 @@ var settings3 = {
|
|
|
110
110
|
|
|
111
111
|
// package.json
|
|
112
112
|
var name4 = "eslint-plugin-react-x";
|
|
113
|
-
var version = "1.28.1-next.
|
|
113
|
+
var version = "1.28.1-next.6";
|
|
114
114
|
var createRule = createRuleForPlugin("x");
|
|
115
115
|
|
|
116
|
-
// src/utils/get-associated-tokens.ts
|
|
117
|
-
function getAssociatedTokens(context, node) {
|
|
118
|
-
{
|
|
119
|
-
const tokenBefore = context.sourceCode.getTokenBefore(node);
|
|
120
|
-
const tokenAfter = context.sourceCode.getTokenAfter(node);
|
|
121
|
-
const tokens = [];
|
|
122
|
-
if (tokenAfter?.value !== "," && tokenBefore?.value === ",") {
|
|
123
|
-
tokens.push(tokenBefore);
|
|
124
|
-
}
|
|
125
|
-
if (tokenAfter?.value === ",") {
|
|
126
|
-
tokens.push(tokenAfter);
|
|
127
|
-
}
|
|
128
|
-
return tokens;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
116
|
// src/rules/avoid-shorthand-boolean.ts
|
|
133
117
|
var RULE_NAME = "avoid-shorthand-boolean";
|
|
134
118
|
var RULE_FEATURES = [
|
|
@@ -241,6 +225,9 @@ var RULE_NAME4 = "no-access-state-in-setstate";
|
|
|
241
225
|
var RULE_FEATURES4 = [
|
|
242
226
|
"CHK"
|
|
243
227
|
];
|
|
228
|
+
function isKeyLiteral(node, key) {
|
|
229
|
+
return match(key).with({ type: AST_NODE_TYPES.Literal }, constTrue).with({ type: AST_NODE_TYPES.TemplateLiteral, expressions: [] }, constTrue).with({ type: AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(constFalse);
|
|
230
|
+
}
|
|
244
231
|
function getName(node) {
|
|
245
232
|
if (AST11.isTsOnlyExpression(node)) {
|
|
246
233
|
return getName(node.expression);
|
|
@@ -351,7 +338,7 @@ var no_access_state_in_setstate_default = createRule({
|
|
|
351
338
|
return;
|
|
352
339
|
}
|
|
353
340
|
const hasState = node.id.properties.some(
|
|
354
|
-
(prop) => prop.type === AST_NODE_TYPES.Property &&
|
|
341
|
+
(prop) => prop.type === AST_NODE_TYPES.Property && isKeyLiteral(prop, prop.key) && getName(prop.key) === "state"
|
|
355
342
|
);
|
|
356
343
|
if (!hasState) {
|
|
357
344
|
return;
|
|
@@ -925,7 +912,7 @@ var RULE_FEATURES16 = [
|
|
|
925
912
|
"MOD"
|
|
926
913
|
];
|
|
927
914
|
function isComponentWillMount(node) {
|
|
928
|
-
return AST11.
|
|
915
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentWillMount";
|
|
929
916
|
}
|
|
930
917
|
var no_component_will_mount_default = createRule({
|
|
931
918
|
meta: {
|
|
@@ -978,7 +965,7 @@ var RULE_FEATURES17 = [
|
|
|
978
965
|
"MOD"
|
|
979
966
|
];
|
|
980
967
|
function isComponentWillUpdate(node) {
|
|
981
|
-
return AST11.
|
|
968
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentWillReceiveProps";
|
|
982
969
|
}
|
|
983
970
|
var no_component_will_receive_props_default = createRule({
|
|
984
971
|
meta: {
|
|
@@ -1031,7 +1018,7 @@ var RULE_FEATURES18 = [
|
|
|
1031
1018
|
"MOD"
|
|
1032
1019
|
];
|
|
1033
1020
|
function isComponentWillUpdate2(node) {
|
|
1034
|
-
return AST11.
|
|
1021
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
1035
1022
|
}
|
|
1036
1023
|
var no_component_will_update_default = createRule({
|
|
1037
1024
|
meta: {
|
|
@@ -1238,7 +1225,7 @@ function isAssignmentToThisState(node) {
|
|
|
1238
1225
|
return left.type === AST_NODE_TYPES.MemberExpression && AST11.isThisExpression(left.object) && getName2(left.property) === "state";
|
|
1239
1226
|
}
|
|
1240
1227
|
function isConstructorFunction(node) {
|
|
1241
|
-
return AST11.isOneOf([AST_NODE_TYPES.FunctionDeclaration, AST_NODE_TYPES.FunctionExpression])(node) && AST11.
|
|
1228
|
+
return AST11.isOneOf([AST_NODE_TYPES.FunctionDeclaration, AST_NODE_TYPES.FunctionExpression])(node) && AST11.isMethodOrProperty(node.parent) && node.parent.key.type === AST_NODE_TYPES.Identifier && node.parent.key.name === "constructor";
|
|
1242
1229
|
}
|
|
1243
1230
|
var no_direct_mutation_state_default = createRule({
|
|
1244
1231
|
meta: {
|
|
@@ -1794,7 +1781,7 @@ var no_missing_context_display_name_default = createRule({
|
|
|
1794
1781
|
},
|
|
1795
1782
|
"Program:exit"() {
|
|
1796
1783
|
for (const call of createCalls) {
|
|
1797
|
-
const id =
|
|
1784
|
+
const id = getInstanceId(call);
|
|
1798
1785
|
if (id == null) {
|
|
1799
1786
|
context.report({
|
|
1800
1787
|
messageId: "noMissingContextDisplayName",
|
|
@@ -1806,10 +1793,7 @@ var no_missing_context_display_name_default = createRule({
|
|
|
1806
1793
|
const left = node.left;
|
|
1807
1794
|
if (left.type !== AST_NODE_TYPES.MemberExpression) return false;
|
|
1808
1795
|
const object = left.object;
|
|
1809
|
-
return
|
|
1810
|
-
context.sourceCode.getScope(id),
|
|
1811
|
-
context.sourceCode.getScope(object)
|
|
1812
|
-
]);
|
|
1796
|
+
return isInstanceIdEqual(context, id, object);
|
|
1813
1797
|
});
|
|
1814
1798
|
if (!hasDisplayNameAssignment) {
|
|
1815
1799
|
context.report({
|
|
@@ -2139,7 +2123,7 @@ var RULE_FEATURES33 = [
|
|
|
2139
2123
|
"CHK"
|
|
2140
2124
|
];
|
|
2141
2125
|
function isShouldComponentUpdate(node) {
|
|
2142
|
-
return AST11.
|
|
2126
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "shouldComponentUpdate";
|
|
2143
2127
|
}
|
|
2144
2128
|
var no_redundant_should_component_update_default = createRule({
|
|
2145
2129
|
meta: {
|
|
@@ -2190,7 +2174,7 @@ var RULE_FEATURES34 = [
|
|
|
2190
2174
|
"CHK"
|
|
2191
2175
|
];
|
|
2192
2176
|
function isComponentDidMount(node) {
|
|
2193
|
-
return AST11.
|
|
2177
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentDidMount";
|
|
2194
2178
|
}
|
|
2195
2179
|
var no_set_state_in_component_did_mount_default = createRule({
|
|
2196
2180
|
meta: {
|
|
@@ -2235,7 +2219,7 @@ var RULE_FEATURES35 = [
|
|
|
2235
2219
|
"CHK"
|
|
2236
2220
|
];
|
|
2237
2221
|
function isComponentDidUpdate(node) {
|
|
2238
|
-
return AST11.
|
|
2222
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentDidUpdate";
|
|
2239
2223
|
}
|
|
2240
2224
|
var no_set_state_in_component_did_update_default = createRule({
|
|
2241
2225
|
meta: {
|
|
@@ -2280,7 +2264,7 @@ var RULE_FEATURES36 = [
|
|
|
2280
2264
|
"CHK"
|
|
2281
2265
|
];
|
|
2282
2266
|
function isComponentWillUpdate3(node) {
|
|
2283
|
-
return AST11.
|
|
2267
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
2284
2268
|
}
|
|
2285
2269
|
var no_set_state_in_component_will_update_default = createRule({
|
|
2286
2270
|
meta: {
|
|
@@ -2371,7 +2355,7 @@ var RULE_FEATURES38 = [
|
|
|
2371
2355
|
"CHK"
|
|
2372
2356
|
];
|
|
2373
2357
|
function isUnsafeComponentWillMount(node) {
|
|
2374
|
-
return AST11.
|
|
2358
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillMount";
|
|
2375
2359
|
}
|
|
2376
2360
|
var no_unsafe_component_will_mount_default = createRule({
|
|
2377
2361
|
meta: {
|
|
@@ -2416,7 +2400,7 @@ var RULE_FEATURES39 = [
|
|
|
2416
2400
|
"CHK"
|
|
2417
2401
|
];
|
|
2418
2402
|
function isUnsafeComponentWillReceiveProps(node) {
|
|
2419
|
-
return AST11.
|
|
2403
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillReceiveProps";
|
|
2420
2404
|
}
|
|
2421
2405
|
var no_unsafe_component_will_receive_props_default = createRule({
|
|
2422
2406
|
meta: {
|
|
@@ -2461,7 +2445,7 @@ var RULE_FEATURES40 = [
|
|
|
2461
2445
|
"CHK"
|
|
2462
2446
|
];
|
|
2463
2447
|
function isUnsafeComponentWillUpdate(node) {
|
|
2464
|
-
return AST11.
|
|
2448
|
+
return AST11.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillUpdate";
|
|
2465
2449
|
}
|
|
2466
2450
|
var no_unsafe_component_will_update_default = createRule({
|
|
2467
2451
|
meta: {
|
|
@@ -2665,6 +2649,9 @@ var LIFECYCLE_METHODS = /* @__PURE__ */ new Set([
|
|
|
2665
2649
|
"UNSAFE_componentWillReceiveProps",
|
|
2666
2650
|
"UNSAFE_componentWillUpdate"
|
|
2667
2651
|
]);
|
|
2652
|
+
function isKeyLiteral2(node, key) {
|
|
2653
|
+
return match(key).with({ type: AST_NODE_TYPES.Literal }, constTrue).with({ type: AST_NODE_TYPES.TemplateLiteral, expressions: [] }, constTrue).with({ type: AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(constFalse);
|
|
2654
|
+
}
|
|
2668
2655
|
function getName3(node) {
|
|
2669
2656
|
if (AST11.isTsOnlyExpression(node)) {
|
|
2670
2657
|
return getName3(node.expression);
|
|
@@ -2744,7 +2731,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2744
2731
|
if (node.static) {
|
|
2745
2732
|
return;
|
|
2746
2733
|
}
|
|
2747
|
-
if (
|
|
2734
|
+
if (isKeyLiteral2(node, node.key)) {
|
|
2748
2735
|
propertyDefs.get(currentClass)?.add(node.key);
|
|
2749
2736
|
}
|
|
2750
2737
|
}
|
|
@@ -2765,7 +2752,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2765
2752
|
if (!isClassComponent(currentClass) || currentMethod.static) {
|
|
2766
2753
|
return;
|
|
2767
2754
|
}
|
|
2768
|
-
if (!AST11.isThisExpression(node.object) || !
|
|
2755
|
+
if (!AST11.isThisExpression(node.object) || !isKeyLiteral2(node, node.property)) {
|
|
2769
2756
|
return;
|
|
2770
2757
|
}
|
|
2771
2758
|
if (node.parent.type === AST_NODE_TYPES.AssignmentExpression && node.parent.left === node) {
|
|
@@ -2792,7 +2779,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2792
2779
|
}
|
|
2793
2780
|
if (node.init != null && AST11.isThisExpression(node.init) && node.id.type === AST_NODE_TYPES.ObjectPattern) {
|
|
2794
2781
|
for (const prop of node.id.properties) {
|
|
2795
|
-
if (prop.type === AST_NODE_TYPES.Property &&
|
|
2782
|
+
if (prop.type === AST_NODE_TYPES.Property && isKeyLiteral2(prop, prop.key)) {
|
|
2796
2783
|
const keyName = getName3(prop.key);
|
|
2797
2784
|
if (keyName != null) {
|
|
2798
2785
|
propertyUsages.get(currentClass)?.add(keyName);
|
|
@@ -2809,6 +2796,9 @@ var RULE_NAME44 = "no-unused-state";
|
|
|
2809
2796
|
var RULE_FEATURES44 = [
|
|
2810
2797
|
"CHK"
|
|
2811
2798
|
];
|
|
2799
|
+
function isKeyLiteral3(node, key) {
|
|
2800
|
+
return match(key).with({ type: AST_NODE_TYPES.Literal }, constTrue).with({ type: AST_NODE_TYPES.TemplateLiteral, expressions: [] }, constTrue).with({ type: AST_NODE_TYPES.Identifier }, () => !node.computed).otherwise(constFalse);
|
|
2801
|
+
}
|
|
2812
2802
|
function getName4(node) {
|
|
2813
2803
|
if (AST11.isTsOnlyExpression(node)) {
|
|
2814
2804
|
return getName4(node.expression);
|
|
@@ -2962,7 +2952,7 @@ var no_unused_state_default = createRule({
|
|
|
2962
2952
|
return;
|
|
2963
2953
|
}
|
|
2964
2954
|
const hasState = node.id.properties.some((prop) => {
|
|
2965
|
-
if (prop.type === AST_NODE_TYPES.Property &&
|
|
2955
|
+
if (prop.type === AST_NODE_TYPES.Property && isKeyLiteral3(prop, prop.key)) {
|
|
2966
2956
|
return getName4(prop.key) === "state";
|
|
2967
2957
|
}
|
|
2968
2958
|
return false;
|
|
@@ -3062,6 +3052,20 @@ var no_use_context_default = createRule({
|
|
|
3062
3052
|
},
|
|
3063
3053
|
defaultOptions: []
|
|
3064
3054
|
});
|
|
3055
|
+
function getAssociatedTokens(context, node) {
|
|
3056
|
+
{
|
|
3057
|
+
const tokenBefore = context.sourceCode.getTokenBefore(node);
|
|
3058
|
+
const tokenAfter = context.sourceCode.getTokenAfter(node);
|
|
3059
|
+
const tokens = [];
|
|
3060
|
+
if (tokenAfter?.value !== "," && tokenBefore?.value === ",") {
|
|
3061
|
+
tokens.push(tokenBefore);
|
|
3062
|
+
}
|
|
3063
|
+
if (tokenAfter?.value === ",") {
|
|
3064
|
+
tokens.push(tokenAfter);
|
|
3065
|
+
}
|
|
3066
|
+
return tokens;
|
|
3067
|
+
}
|
|
3068
|
+
}
|
|
3065
3069
|
var RULE_NAME46 = "no-useless-fragment";
|
|
3066
3070
|
var defaultOptions = [{
|
|
3067
3071
|
allowExpressions: true
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-x",
|
|
3
|
-
"version": "1.28.1-next.
|
|
3
|
+
"version": "1.28.1-next.6",
|
|
4
4
|
"description": "A set of composable linting rules for libraries and frameworks that use React as a UI runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"is-immutable-type": "^5.0.1",
|
|
51
51
|
"string-ts": "^2.2.1",
|
|
52
52
|
"ts-pattern": "^5.6.2",
|
|
53
|
-
"@eslint-react/ast": "1.28.1-next.
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/
|
|
56
|
-
"@eslint-react/
|
|
57
|
-
"@eslint-react/shared": "1.28.1-next.
|
|
58
|
-
"@eslint-react/var": "1.28.1-next.
|
|
53
|
+
"@eslint-react/ast": "1.28.1-next.6",
|
|
54
|
+
"@eslint-react/core": "1.28.1-next.6",
|
|
55
|
+
"@eslint-react/eff": "1.28.1-next.6",
|
|
56
|
+
"@eslint-react/jsx": "1.28.1-next.6",
|
|
57
|
+
"@eslint-react/shared": "1.28.1-next.6",
|
|
58
|
+
"@eslint-react/var": "1.28.1-next.6"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/react": "^19.0.10",
|