eslint-plugin-react-x 1.17.4-next.1 → 1.17.4-next.11
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/README.md +2 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +80 -52
- package/dist/index.mjs +80 -52
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -48,6 +48,7 @@ export default [
|
|
|
48
48
|
"react-x/no-default-props": "error",
|
|
49
49
|
"react-x/no-direct-mutation-state": "error",
|
|
50
50
|
"react-x/no-duplicate-key": "error",
|
|
51
|
+
"react-x/no-forward-ref": "warn",
|
|
51
52
|
"react-x/no-implicit-key": "warn",
|
|
52
53
|
"react-x/no-missing-key": "error",
|
|
53
54
|
"react-x/no-nested-components": "warn",
|
|
@@ -97,6 +98,7 @@ export default [
|
|
|
97
98
|
| `no-default-props` | Prevents using `defaultProps` property in favor of ES6 default parameters. | ✔️ | | |
|
|
98
99
|
| `no-direct-mutation-state` | Prevents direct mutation of `this.state`. | ✔️ | | |
|
|
99
100
|
| `no-duplicate-key` | Prevents duplicate `key` on elements in the same array or a list of `children`. | ✔️ | | |
|
|
101
|
+
| `no-forward-ref` | Prevents using `forwardRef`. | 🧐 | | |
|
|
100
102
|
| `no-implicit-key` | Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects). | 🧐 | | |
|
|
101
103
|
| `no-leaked-conditional-rendering` | Prevents problematic leaked values from being rendered. | 🧐 | 💭 | |
|
|
102
104
|
| `no-missing-component-display-name` | Enforces that all components have a `displayName` which can be used in devtools. | 🐞 | | |
|
package/dist/index.d.mts
CHANGED
|
@@ -38,6 +38,7 @@ declare const _default: {
|
|
|
38
38
|
"no-default-props": _typescript_eslint_utils_ts_eslint.RuleModule<"noDefaultProps", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
39
39
|
"no-direct-mutation-state": _typescript_eslint_utils_ts_eslint.RuleModule<"noDirectMutationState", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
40
40
|
"no-duplicate-key": _typescript_eslint_utils_ts_eslint.RuleModule<"noDuplicateKey", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
41
|
+
"no-forward-ref": _typescript_eslint_utils_ts_eslint.RuleModule<"noForwardRef", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
41
42
|
"no-implicit-key": _typescript_eslint_utils_ts_eslint.RuleModule<"noImplicitKey", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
42
43
|
"no-leaked-conditional-rendering": _typescript_eslint_utils_ts_eslint.RuleModule<"noLeakedConditionalRendering", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
43
44
|
"no-missing-component-display-name": _typescript_eslint_utils_ts_eslint.RuleModule<"noMissingComponentDisplayName", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ declare const _default: {
|
|
|
38
38
|
"no-default-props": _typescript_eslint_utils_ts_eslint.RuleModule<"noDefaultProps", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
39
39
|
"no-direct-mutation-state": _typescript_eslint_utils_ts_eslint.RuleModule<"noDirectMutationState", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
40
40
|
"no-duplicate-key": _typescript_eslint_utils_ts_eslint.RuleModule<"noDuplicateKey", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
41
|
+
"no-forward-ref": _typescript_eslint_utils_ts_eslint.RuleModule<"noForwardRef", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
41
42
|
"no-implicit-key": _typescript_eslint_utils_ts_eslint.RuleModule<"noImplicitKey", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
42
43
|
"no-leaked-conditional-rendering": _typescript_eslint_utils_ts_eslint.RuleModule<"noLeakedConditionalRendering", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
43
44
|
"no-missing-component-display-name": _typescript_eslint_utils_ts_eslint.RuleModule<"noMissingComponentDisplayName", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
package/dist/index.js
CHANGED
|
@@ -8,10 +8,9 @@ var core = require('@eslint-react/core');
|
|
|
8
8
|
var types = require('@typescript-eslint/types');
|
|
9
9
|
var tsPattern = require('ts-pattern');
|
|
10
10
|
var VAR = require('@eslint-react/var');
|
|
11
|
+
var compareVersions = require('compare-versions');
|
|
11
12
|
var typeUtils = require('@typescript-eslint/type-utils');
|
|
12
13
|
var utils = require('@typescript-eslint/utils');
|
|
13
|
-
var astUtils = require('@typescript-eslint/utils/ast-utils');
|
|
14
|
-
var compareVersions = require('compare-versions');
|
|
15
14
|
var ts = require('typescript');
|
|
16
15
|
var isImmutableType = require('is-immutable-type');
|
|
17
16
|
|
|
@@ -42,7 +41,7 @@ var ts__default = /*#__PURE__*/_interopDefault(ts);
|
|
|
42
41
|
|
|
43
42
|
// package.json
|
|
44
43
|
var name = "eslint-plugin-react-x";
|
|
45
|
-
var version = "1.17.4-next.
|
|
44
|
+
var version = "1.17.4-next.11";
|
|
46
45
|
var createRule = shared.createRuleForPlugin("x");
|
|
47
46
|
|
|
48
47
|
// src/rules/avoid-shorthand-boolean.ts
|
|
@@ -1119,7 +1118,35 @@ var no_duplicate_key_default = createRule({
|
|
|
1119
1118
|
},
|
|
1120
1119
|
defaultOptions: []
|
|
1121
1120
|
});
|
|
1122
|
-
var RULE_NAME25 = "no-
|
|
1121
|
+
var RULE_NAME25 = "no-forward-ref";
|
|
1122
|
+
var no_forward_ref_default = createRule({
|
|
1123
|
+
meta: {
|
|
1124
|
+
type: "problem",
|
|
1125
|
+
docs: {
|
|
1126
|
+
description: "disallow the use of 'forwardRef'"
|
|
1127
|
+
},
|
|
1128
|
+
messages: {
|
|
1129
|
+
noForwardRef: "In React 19, 'forwardRef' is no longer necessary. Pass 'ref' as a prop instead."
|
|
1130
|
+
},
|
|
1131
|
+
schema: []
|
|
1132
|
+
},
|
|
1133
|
+
name: RULE_NAME25,
|
|
1134
|
+
create(context) {
|
|
1135
|
+
const { version: version2 } = shared.normalizeSettings(shared.decodeSettings(context.settings));
|
|
1136
|
+
if (compareVersions.compare(version2, "19.0.0", "<")) return {};
|
|
1137
|
+
return {
|
|
1138
|
+
CallExpression(node) {
|
|
1139
|
+
if (!core.isForwardRefCall(node, context)) return;
|
|
1140
|
+
context.report({
|
|
1141
|
+
messageId: "noForwardRef",
|
|
1142
|
+
node
|
|
1143
|
+
});
|
|
1144
|
+
}
|
|
1145
|
+
};
|
|
1146
|
+
},
|
|
1147
|
+
defaultOptions: []
|
|
1148
|
+
});
|
|
1149
|
+
var RULE_NAME26 = "no-implicit-key";
|
|
1123
1150
|
var no_implicit_key_default = createRule({
|
|
1124
1151
|
meta: {
|
|
1125
1152
|
type: "problem",
|
|
@@ -1131,7 +1158,7 @@ var no_implicit_key_default = createRule({
|
|
|
1131
1158
|
},
|
|
1132
1159
|
schema: []
|
|
1133
1160
|
},
|
|
1134
|
-
name:
|
|
1161
|
+
name: RULE_NAME26,
|
|
1135
1162
|
create(context) {
|
|
1136
1163
|
function getReportDescriptor(node) {
|
|
1137
1164
|
const initialScope = context.sourceCode.getScope(node);
|
|
@@ -1174,7 +1201,7 @@ function isTrueLiteralType(type) {
|
|
|
1174
1201
|
function unionTypeParts(type) {
|
|
1175
1202
|
return isUnionType(type) ? type.types : [type];
|
|
1176
1203
|
}
|
|
1177
|
-
var
|
|
1204
|
+
var RULE_NAME27 = "no-leaked-conditional-rendering";
|
|
1178
1205
|
var tsHelpers = {
|
|
1179
1206
|
isAnyType: (type) => isTypeFlagSet(type, ts__default.default.TypeFlags.TypeParameter | ts__default.default.TypeFlags.Any),
|
|
1180
1207
|
isBigIntType: (type) => isTypeFlagSet(type, ts__default.default.TypeFlags.BigIntLike),
|
|
@@ -1278,7 +1305,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1278
1305
|
},
|
|
1279
1306
|
schema: []
|
|
1280
1307
|
},
|
|
1281
|
-
name:
|
|
1308
|
+
name: RULE_NAME27,
|
|
1282
1309
|
create(context) {
|
|
1283
1310
|
if (!context.sourceCode.text.includes("&&") && !context.sourceCode.text.includes("?")) return {};
|
|
1284
1311
|
const { version: version2 } = shared.normalizeSettings(shared.decodeSettings(context.settings));
|
|
@@ -1300,7 +1327,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1300
1327
|
const isLeftUnaryNot = tsPattern.isMatching({ type: types.AST_NODE_TYPES.UnaryExpression, operator: "!" }, left);
|
|
1301
1328
|
if (isLeftUnaryNot) return getReportDescriptor(right);
|
|
1302
1329
|
const initialScope = context.sourceCode.getScope(left);
|
|
1303
|
-
const isLeftNan = tsPattern.isMatching({ type: types.AST_NODE_TYPES.Identifier, name: "NaN" }, left) ||
|
|
1330
|
+
const isLeftNan = tsPattern.isMatching({ type: types.AST_NODE_TYPES.Identifier, name: "NaN" }, left) || tools.O.exists(VAR__namespace.getStaticValue(left, initialScope), (v) => v === "NaN");
|
|
1304
1331
|
if (isLeftNan) {
|
|
1305
1332
|
return tools.O.some({
|
|
1306
1333
|
messageId: "noLeakedConditionalRendering",
|
|
@@ -1335,7 +1362,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1335
1362
|
},
|
|
1336
1363
|
defaultOptions: []
|
|
1337
1364
|
});
|
|
1338
|
-
var
|
|
1365
|
+
var RULE_NAME28 = "no-missing-component-display-name";
|
|
1339
1366
|
var no_missing_component_display_name_default = createRule({
|
|
1340
1367
|
meta: {
|
|
1341
1368
|
type: "problem",
|
|
@@ -1347,7 +1374,7 @@ var no_missing_component_display_name_default = createRule({
|
|
|
1347
1374
|
},
|
|
1348
1375
|
schema: []
|
|
1349
1376
|
},
|
|
1350
|
-
name:
|
|
1377
|
+
name: RULE_NAME28,
|
|
1351
1378
|
create(context) {
|
|
1352
1379
|
if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
|
|
1353
1380
|
const { ctx, listeners } = core.useComponentCollector(context);
|
|
@@ -1371,7 +1398,7 @@ var no_missing_component_display_name_default = createRule({
|
|
|
1371
1398
|
},
|
|
1372
1399
|
defaultOptions: []
|
|
1373
1400
|
});
|
|
1374
|
-
var
|
|
1401
|
+
var RULE_NAME29 = "no-missing-key";
|
|
1375
1402
|
var no_missing_key_default = createRule({
|
|
1376
1403
|
meta: {
|
|
1377
1404
|
type: "problem",
|
|
@@ -1384,7 +1411,7 @@ var no_missing_key_default = createRule({
|
|
|
1384
1411
|
},
|
|
1385
1412
|
schema: []
|
|
1386
1413
|
},
|
|
1387
|
-
name:
|
|
1414
|
+
name: RULE_NAME29,
|
|
1388
1415
|
create(context) {
|
|
1389
1416
|
const isWithinChildrenToArrayRef = tools.MutRef.make(false);
|
|
1390
1417
|
function checkIteratorElement(node) {
|
|
@@ -1488,7 +1515,7 @@ var no_missing_key_default = createRule({
|
|
|
1488
1515
|
},
|
|
1489
1516
|
defaultOptions: []
|
|
1490
1517
|
});
|
|
1491
|
-
var
|
|
1518
|
+
var RULE_NAME30 = "no-nested-components";
|
|
1492
1519
|
var no_nested_components_default = createRule({
|
|
1493
1520
|
meta: {
|
|
1494
1521
|
type: "problem",
|
|
@@ -1501,7 +1528,7 @@ var no_nested_components_default = createRule({
|
|
|
1501
1528
|
},
|
|
1502
1529
|
schema: []
|
|
1503
1530
|
},
|
|
1504
|
-
name:
|
|
1531
|
+
name: RULE_NAME30,
|
|
1505
1532
|
create(context) {
|
|
1506
1533
|
const hint = core.ERComponentHint.SkipMapCallback | core.ERComponentHint.SkipNullLiteral | core.ERComponentHint.SkipUndefinedLiteral | core.ERComponentHint.SkipBooleanLiteral | core.ERComponentHint.SkipStringLiteral | core.ERComponentHint.SkipNumberLiteral | core.ERComponentHint.StrictLogical | core.ERComponentHint.StrictConditional;
|
|
1507
1534
|
const collector = core.useComponentCollector(context, hint);
|
|
@@ -1585,7 +1612,7 @@ var no_nested_components_default = createRule({
|
|
|
1585
1612
|
},
|
|
1586
1613
|
defaultOptions: []
|
|
1587
1614
|
});
|
|
1588
|
-
var
|
|
1615
|
+
var RULE_NAME31 = "no-prop-types";
|
|
1589
1616
|
var no_prop_types_default = createRule({
|
|
1590
1617
|
meta: {
|
|
1591
1618
|
type: "problem",
|
|
@@ -1597,7 +1624,7 @@ var no_prop_types_default = createRule({
|
|
|
1597
1624
|
},
|
|
1598
1625
|
schema: []
|
|
1599
1626
|
},
|
|
1600
|
-
name:
|
|
1627
|
+
name: RULE_NAME31,
|
|
1601
1628
|
create(context) {
|
|
1602
1629
|
if (!context.sourceCode.text.includes("propTypes")) return {};
|
|
1603
1630
|
return {
|
|
@@ -1624,7 +1651,7 @@ var no_prop_types_default = createRule({
|
|
|
1624
1651
|
},
|
|
1625
1652
|
defaultOptions: []
|
|
1626
1653
|
});
|
|
1627
|
-
var
|
|
1654
|
+
var RULE_NAME32 = "no-redundant-should-component-update";
|
|
1628
1655
|
function isShouldComponentUpdate(node) {
|
|
1629
1656
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "shouldComponentUpdate";
|
|
1630
1657
|
}
|
|
@@ -1639,7 +1666,7 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
1639
1666
|
},
|
|
1640
1667
|
schema: []
|
|
1641
1668
|
},
|
|
1642
|
-
name:
|
|
1669
|
+
name: RULE_NAME32,
|
|
1643
1670
|
create(context) {
|
|
1644
1671
|
if (!context.sourceCode.text.includes("shouldComponentUpdate")) return {};
|
|
1645
1672
|
const { ctx, listeners } = core.useComponentCollectorLegacy();
|
|
@@ -1667,7 +1694,7 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
1667
1694
|
},
|
|
1668
1695
|
defaultOptions: []
|
|
1669
1696
|
});
|
|
1670
|
-
var
|
|
1697
|
+
var RULE_NAME33 = "no-set-state-in-component-did-mount";
|
|
1671
1698
|
function isComponentDidMount(node) {
|
|
1672
1699
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentDidMount";
|
|
1673
1700
|
}
|
|
@@ -1682,7 +1709,7 @@ var no_set_state_in_component_did_mount_default = createRule({
|
|
|
1682
1709
|
},
|
|
1683
1710
|
schema: []
|
|
1684
1711
|
},
|
|
1685
|
-
name:
|
|
1712
|
+
name: RULE_NAME33,
|
|
1686
1713
|
create(context) {
|
|
1687
1714
|
if (!context.sourceCode.text.includes("componentDidMount")) return {};
|
|
1688
1715
|
function getReportDescriptor(node) {
|
|
@@ -1710,7 +1737,7 @@ var no_set_state_in_component_did_mount_default = createRule({
|
|
|
1710
1737
|
},
|
|
1711
1738
|
defaultOptions: []
|
|
1712
1739
|
});
|
|
1713
|
-
var
|
|
1740
|
+
var RULE_NAME34 = "no-set-state-in-component-did-update";
|
|
1714
1741
|
function isComponentDidUpdate(node) {
|
|
1715
1742
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentDidUpdate";
|
|
1716
1743
|
}
|
|
@@ -1725,7 +1752,7 @@ var no_set_state_in_component_did_update_default = createRule({
|
|
|
1725
1752
|
},
|
|
1726
1753
|
schema: []
|
|
1727
1754
|
},
|
|
1728
|
-
name:
|
|
1755
|
+
name: RULE_NAME34,
|
|
1729
1756
|
create(context) {
|
|
1730
1757
|
if (!context.sourceCode.text.includes("componentDidUpdate")) return {};
|
|
1731
1758
|
function getReportDescriptor(node) {
|
|
@@ -1753,7 +1780,7 @@ var no_set_state_in_component_did_update_default = createRule({
|
|
|
1753
1780
|
},
|
|
1754
1781
|
defaultOptions: []
|
|
1755
1782
|
});
|
|
1756
|
-
var
|
|
1783
|
+
var RULE_NAME35 = "no-set-state-in-component-will-update";
|
|
1757
1784
|
function isComponentWillUpdate3(node) {
|
|
1758
1785
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
1759
1786
|
}
|
|
@@ -1768,7 +1795,7 @@ var no_set_state_in_component_will_update_default = createRule({
|
|
|
1768
1795
|
},
|
|
1769
1796
|
schema: []
|
|
1770
1797
|
},
|
|
1771
|
-
name:
|
|
1798
|
+
name: RULE_NAME35,
|
|
1772
1799
|
create(context) {
|
|
1773
1800
|
if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
|
|
1774
1801
|
function getReportDescriptor(node) {
|
|
@@ -1796,7 +1823,7 @@ var no_set_state_in_component_will_update_default = createRule({
|
|
|
1796
1823
|
},
|
|
1797
1824
|
defaultOptions: []
|
|
1798
1825
|
});
|
|
1799
|
-
var
|
|
1826
|
+
var RULE_NAME36 = "no-string-refs";
|
|
1800
1827
|
function containsStringLiteral({ value }) {
|
|
1801
1828
|
return value?.type === types.AST_NODE_TYPES.Literal && tools.isString(value.value);
|
|
1802
1829
|
}
|
|
@@ -1816,7 +1843,7 @@ var no_string_refs_default = createRule({
|
|
|
1816
1843
|
},
|
|
1817
1844
|
schema: []
|
|
1818
1845
|
},
|
|
1819
|
-
name:
|
|
1846
|
+
name: RULE_NAME36,
|
|
1820
1847
|
create(context) {
|
|
1821
1848
|
return {
|
|
1822
1849
|
JSXAttribute(node) {
|
|
@@ -1832,7 +1859,7 @@ var no_string_refs_default = createRule({
|
|
|
1832
1859
|
},
|
|
1833
1860
|
defaultOptions: []
|
|
1834
1861
|
});
|
|
1835
|
-
var
|
|
1862
|
+
var RULE_NAME37 = "no-unsafe-component-will-mount";
|
|
1836
1863
|
function isUnsafeComponentWillMount(node) {
|
|
1837
1864
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillMount";
|
|
1838
1865
|
}
|
|
@@ -1847,7 +1874,7 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
1847
1874
|
},
|
|
1848
1875
|
schema: []
|
|
1849
1876
|
},
|
|
1850
|
-
name:
|
|
1877
|
+
name: RULE_NAME37,
|
|
1851
1878
|
create(context) {
|
|
1852
1879
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
|
|
1853
1880
|
const { ctx, listeners } = core.useComponentCollectorLegacy();
|
|
@@ -1871,7 +1898,7 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
1871
1898
|
},
|
|
1872
1899
|
defaultOptions: []
|
|
1873
1900
|
});
|
|
1874
|
-
var
|
|
1901
|
+
var RULE_NAME38 = "no-unsafe-component-will-receive-props";
|
|
1875
1902
|
function isUnsafeComponentWillReceiveProps(node) {
|
|
1876
1903
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillReceiveProps";
|
|
1877
1904
|
}
|
|
@@ -1886,7 +1913,7 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
1886
1913
|
},
|
|
1887
1914
|
schema: []
|
|
1888
1915
|
},
|
|
1889
|
-
name:
|
|
1916
|
+
name: RULE_NAME38,
|
|
1890
1917
|
create(context) {
|
|
1891
1918
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) return {};
|
|
1892
1919
|
const { ctx, listeners } = core.useComponentCollectorLegacy();
|
|
@@ -1910,7 +1937,7 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
1910
1937
|
},
|
|
1911
1938
|
defaultOptions: []
|
|
1912
1939
|
});
|
|
1913
|
-
var
|
|
1940
|
+
var RULE_NAME39 = "no-unsafe-component-will-update";
|
|
1914
1941
|
function isUnsafeComponentWillUpdate(node) {
|
|
1915
1942
|
return AST11__namespace.isOneOf([types.AST_NODE_TYPES.MethodDefinition, types.AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === types.AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillUpdate";
|
|
1916
1943
|
}
|
|
@@ -1925,7 +1952,7 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
1925
1952
|
},
|
|
1926
1953
|
schema: []
|
|
1927
1954
|
},
|
|
1928
|
-
name:
|
|
1955
|
+
name: RULE_NAME39,
|
|
1929
1956
|
create(context) {
|
|
1930
1957
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
|
|
1931
1958
|
const { ctx, listeners } = core.useComponentCollectorLegacy();
|
|
@@ -1949,7 +1976,7 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
1949
1976
|
},
|
|
1950
1977
|
defaultOptions: []
|
|
1951
1978
|
});
|
|
1952
|
-
var
|
|
1979
|
+
var RULE_NAME40 = "no-unstable-context-value";
|
|
1953
1980
|
var no_unstable_context_value_default = createRule({
|
|
1954
1981
|
meta: {
|
|
1955
1982
|
type: "problem",
|
|
@@ -1963,7 +1990,7 @@ var no_unstable_context_value_default = createRule({
|
|
|
1963
1990
|
},
|
|
1964
1991
|
schema: []
|
|
1965
1992
|
},
|
|
1966
|
-
name:
|
|
1993
|
+
name: RULE_NAME40,
|
|
1967
1994
|
create(context) {
|
|
1968
1995
|
const { ctx, listeners } = core.useComponentCollector(context);
|
|
1969
1996
|
const possibleValueConstructions = /* @__PURE__ */ new Map();
|
|
@@ -2016,7 +2043,7 @@ var no_unstable_context_value_default = createRule({
|
|
|
2016
2043
|
},
|
|
2017
2044
|
defaultOptions: []
|
|
2018
2045
|
});
|
|
2019
|
-
var
|
|
2046
|
+
var RULE_NAME41 = "no-unstable-default-props";
|
|
2020
2047
|
var no_unstable_default_props_default = createRule({
|
|
2021
2048
|
meta: {
|
|
2022
2049
|
type: "problem",
|
|
@@ -2028,7 +2055,7 @@ var no_unstable_default_props_default = createRule({
|
|
|
2028
2055
|
},
|
|
2029
2056
|
schema: []
|
|
2030
2057
|
},
|
|
2031
|
-
name:
|
|
2058
|
+
name: RULE_NAME41,
|
|
2032
2059
|
create(context) {
|
|
2033
2060
|
const { ctx, listeners } = core.useComponentCollector(context);
|
|
2034
2061
|
const possibleDestructuringDeclarators = /* @__PURE__ */ new WeakMap();
|
|
@@ -2081,7 +2108,7 @@ var no_unstable_default_props_default = createRule({
|
|
|
2081
2108
|
},
|
|
2082
2109
|
defaultOptions: []
|
|
2083
2110
|
});
|
|
2084
|
-
var
|
|
2111
|
+
var RULE_NAME42 = "no-unused-class-component-members";
|
|
2085
2112
|
var LIFECYCLE_METHODS = /* @__PURE__ */ new Set([
|
|
2086
2113
|
"componentDidCatch",
|
|
2087
2114
|
"componentDidMount",
|
|
@@ -2125,7 +2152,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2125
2152
|
},
|
|
2126
2153
|
schema: []
|
|
2127
2154
|
},
|
|
2128
|
-
name:
|
|
2155
|
+
name: RULE_NAME42,
|
|
2129
2156
|
create(context) {
|
|
2130
2157
|
const classStack = [];
|
|
2131
2158
|
const methodStack = [];
|
|
@@ -2208,7 +2235,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2208
2235
|
},
|
|
2209
2236
|
defaultOptions: []
|
|
2210
2237
|
});
|
|
2211
|
-
var
|
|
2238
|
+
var RULE_NAME43 = "no-unused-state";
|
|
2212
2239
|
function getName4(node) {
|
|
2213
2240
|
if (node.type === types.AST_NODE_TYPES.TSAsExpression) {
|
|
2214
2241
|
return getName4(node.expression);
|
|
@@ -2248,7 +2275,7 @@ var no_unused_state_default = createRule({
|
|
|
2248
2275
|
},
|
|
2249
2276
|
schema: []
|
|
2250
2277
|
},
|
|
2251
|
-
name:
|
|
2278
|
+
name: RULE_NAME43,
|
|
2252
2279
|
create(context) {
|
|
2253
2280
|
const classStack = [];
|
|
2254
2281
|
const methodStack = [];
|
|
@@ -2349,7 +2376,7 @@ var no_unused_state_default = createRule({
|
|
|
2349
2376
|
},
|
|
2350
2377
|
defaultOptions: []
|
|
2351
2378
|
});
|
|
2352
|
-
var
|
|
2379
|
+
var RULE_NAME44 = "no-useless-fragment";
|
|
2353
2380
|
function check(node, context, allowExpressions) {
|
|
2354
2381
|
const initialScope = context.sourceCode.getScope(node);
|
|
2355
2382
|
if (JSX7__namespace.isKeyedElement(node, initialScope)) return;
|
|
@@ -2391,7 +2418,7 @@ var no_useless_fragment_default = createRule({
|
|
|
2391
2418
|
}
|
|
2392
2419
|
}]
|
|
2393
2420
|
},
|
|
2394
|
-
name:
|
|
2421
|
+
name: RULE_NAME44,
|
|
2395
2422
|
create(context, [option]) {
|
|
2396
2423
|
const { allowExpressions = true } = option;
|
|
2397
2424
|
return {
|
|
@@ -2408,7 +2435,7 @@ var no_useless_fragment_default = createRule({
|
|
|
2408
2435
|
allowExpressions: true
|
|
2409
2436
|
}]
|
|
2410
2437
|
});
|
|
2411
|
-
var
|
|
2438
|
+
var RULE_NAME45 = "prefer-destructuring-assignment";
|
|
2412
2439
|
function isMemberExpressionWithObjectName(node) {
|
|
2413
2440
|
return node.object.type === types.AST_NODE_TYPES.Identifier && "name" in node.object;
|
|
2414
2441
|
}
|
|
@@ -2423,7 +2450,7 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
2423
2450
|
},
|
|
2424
2451
|
schema: []
|
|
2425
2452
|
},
|
|
2426
|
-
name:
|
|
2453
|
+
name: RULE_NAME45,
|
|
2427
2454
|
create(context) {
|
|
2428
2455
|
const { ctx, listeners } = core.useComponentCollector(context);
|
|
2429
2456
|
const memberExpressionWithNames = [];
|
|
@@ -2478,7 +2505,7 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
2478
2505
|
},
|
|
2479
2506
|
defaultOptions: []
|
|
2480
2507
|
});
|
|
2481
|
-
var
|
|
2508
|
+
var RULE_NAME46 = "prefer-react-namespace-import";
|
|
2482
2509
|
var prefer_react_namespace_import_default = createRule({
|
|
2483
2510
|
meta: {
|
|
2484
2511
|
type: "problem",
|
|
@@ -2491,7 +2518,7 @@ var prefer_react_namespace_import_default = createRule({
|
|
|
2491
2518
|
},
|
|
2492
2519
|
schema: []
|
|
2493
2520
|
},
|
|
2494
|
-
name:
|
|
2521
|
+
name: RULE_NAME46,
|
|
2495
2522
|
create(context) {
|
|
2496
2523
|
const importSource = shared.decodeSettings(context.settings).importSource ?? "react";
|
|
2497
2524
|
return {
|
|
@@ -2527,7 +2554,7 @@ ${importStringPrefix} ${specifiers} from ${importSourceQuoted}${semiColon}`
|
|
|
2527
2554
|
},
|
|
2528
2555
|
defaultOptions: []
|
|
2529
2556
|
});
|
|
2530
|
-
var
|
|
2557
|
+
var RULE_NAME47 = "prefer-read-only-props";
|
|
2531
2558
|
function isReadonlyType(type, services) {
|
|
2532
2559
|
try {
|
|
2533
2560
|
const im = isImmutableType.getTypeImmutability(services.program, type);
|
|
@@ -2547,7 +2574,7 @@ var prefer_read_only_props_default = createRule({
|
|
|
2547
2574
|
},
|
|
2548
2575
|
schema: []
|
|
2549
2576
|
},
|
|
2550
|
-
name:
|
|
2577
|
+
name: RULE_NAME47,
|
|
2551
2578
|
create(context) {
|
|
2552
2579
|
const services = utils.ESLintUtils.getParserServices(context, false);
|
|
2553
2580
|
const { ctx, listeners } = core.useComponentCollector(context);
|
|
@@ -2567,7 +2594,7 @@ var prefer_read_only_props_default = createRule({
|
|
|
2567
2594
|
},
|
|
2568
2595
|
defaultOptions: []
|
|
2569
2596
|
});
|
|
2570
|
-
var
|
|
2597
|
+
var RULE_NAME48 = "prefer-shorthand-boolean";
|
|
2571
2598
|
var prefer_shorthand_boolean_default = createRule({
|
|
2572
2599
|
meta: {
|
|
2573
2600
|
type: "problem",
|
|
@@ -2580,7 +2607,7 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2580
2607
|
},
|
|
2581
2608
|
schema: []
|
|
2582
2609
|
},
|
|
2583
|
-
name:
|
|
2610
|
+
name: RULE_NAME48,
|
|
2584
2611
|
create(context) {
|
|
2585
2612
|
function getReportDescriptor(node) {
|
|
2586
2613
|
const { value } = node;
|
|
@@ -2602,7 +2629,7 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2602
2629
|
},
|
|
2603
2630
|
defaultOptions: []
|
|
2604
2631
|
});
|
|
2605
|
-
var
|
|
2632
|
+
var RULE_NAME49 = "prefer-shorthand-fragment";
|
|
2606
2633
|
var prefer_shorthand_fragment_default = createRule({
|
|
2607
2634
|
meta: {
|
|
2608
2635
|
type: "problem",
|
|
@@ -2614,7 +2641,7 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2614
2641
|
},
|
|
2615
2642
|
schema: []
|
|
2616
2643
|
},
|
|
2617
|
-
name:
|
|
2644
|
+
name: RULE_NAME49,
|
|
2618
2645
|
create(context) {
|
|
2619
2646
|
function getReportDescriptor(node) {
|
|
2620
2647
|
if (!core.isFragmentElement(node, context)) return tools.O.none();
|
|
@@ -2671,6 +2698,7 @@ var src_default = {
|
|
|
2671
2698
|
"no-default-props": no_default_props_default,
|
|
2672
2699
|
"no-direct-mutation-state": no_direct_mutation_state_default,
|
|
2673
2700
|
"no-duplicate-key": no_duplicate_key_default,
|
|
2701
|
+
"no-forward-ref": no_forward_ref_default,
|
|
2674
2702
|
"no-implicit-key": no_implicit_key_default,
|
|
2675
2703
|
"no-leaked-conditional-rendering": no_leaked_conditional_rendering_default,
|
|
2676
2704
|
"no-missing-component-display-name": no_missing_component_display_name_default,
|
package/dist/index.mjs
CHANGED
|
@@ -6,16 +6,15 @@ import { isForwardRefCall, isThisSetState, isClassComponent, isChildrenCount, is
|
|
|
6
6
|
import { AST_NODE_TYPES } from '@typescript-eslint/types';
|
|
7
7
|
import { isMatching, P, match } from 'ts-pattern';
|
|
8
8
|
import * as VAR from '@eslint-react/var';
|
|
9
|
+
import { compare } from 'compare-versions';
|
|
9
10
|
import { getConstrainedTypeAtLocation, isTypeReadonly } from '@typescript-eslint/type-utils';
|
|
10
11
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
11
|
-
import { getStaticValue } from '@typescript-eslint/utils/ast-utils';
|
|
12
|
-
import { compare } from 'compare-versions';
|
|
13
12
|
import ts from 'typescript';
|
|
14
13
|
import { getTypeImmutability, isUnknown, isImmutable, isReadonlyShallow, isReadonlyDeep } from 'is-immutable-type';
|
|
15
14
|
|
|
16
15
|
// package.json
|
|
17
16
|
var name = "eslint-plugin-react-x";
|
|
18
|
-
var version = "1.17.4-next.
|
|
17
|
+
var version = "1.17.4-next.11";
|
|
19
18
|
var createRule = createRuleForPlugin("x");
|
|
20
19
|
|
|
21
20
|
// src/rules/avoid-shorthand-boolean.ts
|
|
@@ -1092,7 +1091,35 @@ var no_duplicate_key_default = createRule({
|
|
|
1092
1091
|
},
|
|
1093
1092
|
defaultOptions: []
|
|
1094
1093
|
});
|
|
1095
|
-
var RULE_NAME25 = "no-
|
|
1094
|
+
var RULE_NAME25 = "no-forward-ref";
|
|
1095
|
+
var no_forward_ref_default = createRule({
|
|
1096
|
+
meta: {
|
|
1097
|
+
type: "problem",
|
|
1098
|
+
docs: {
|
|
1099
|
+
description: "disallow the use of 'forwardRef'"
|
|
1100
|
+
},
|
|
1101
|
+
messages: {
|
|
1102
|
+
noForwardRef: "In React 19, 'forwardRef' is no longer necessary. Pass 'ref' as a prop instead."
|
|
1103
|
+
},
|
|
1104
|
+
schema: []
|
|
1105
|
+
},
|
|
1106
|
+
name: RULE_NAME25,
|
|
1107
|
+
create(context) {
|
|
1108
|
+
const { version: version2 } = normalizeSettings(decodeSettings(context.settings));
|
|
1109
|
+
if (compare(version2, "19.0.0", "<")) return {};
|
|
1110
|
+
return {
|
|
1111
|
+
CallExpression(node) {
|
|
1112
|
+
if (!isForwardRefCall(node, context)) return;
|
|
1113
|
+
context.report({
|
|
1114
|
+
messageId: "noForwardRef",
|
|
1115
|
+
node
|
|
1116
|
+
});
|
|
1117
|
+
}
|
|
1118
|
+
};
|
|
1119
|
+
},
|
|
1120
|
+
defaultOptions: []
|
|
1121
|
+
});
|
|
1122
|
+
var RULE_NAME26 = "no-implicit-key";
|
|
1096
1123
|
var no_implicit_key_default = createRule({
|
|
1097
1124
|
meta: {
|
|
1098
1125
|
type: "problem",
|
|
@@ -1104,7 +1131,7 @@ var no_implicit_key_default = createRule({
|
|
|
1104
1131
|
},
|
|
1105
1132
|
schema: []
|
|
1106
1133
|
},
|
|
1107
|
-
name:
|
|
1134
|
+
name: RULE_NAME26,
|
|
1108
1135
|
create(context) {
|
|
1109
1136
|
function getReportDescriptor(node) {
|
|
1110
1137
|
const initialScope = context.sourceCode.getScope(node);
|
|
@@ -1147,7 +1174,7 @@ function isTrueLiteralType(type) {
|
|
|
1147
1174
|
function unionTypeParts(type) {
|
|
1148
1175
|
return isUnionType(type) ? type.types : [type];
|
|
1149
1176
|
}
|
|
1150
|
-
var
|
|
1177
|
+
var RULE_NAME27 = "no-leaked-conditional-rendering";
|
|
1151
1178
|
var tsHelpers = {
|
|
1152
1179
|
isAnyType: (type) => isTypeFlagSet(type, ts.TypeFlags.TypeParameter | ts.TypeFlags.Any),
|
|
1153
1180
|
isBigIntType: (type) => isTypeFlagSet(type, ts.TypeFlags.BigIntLike),
|
|
@@ -1251,7 +1278,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1251
1278
|
},
|
|
1252
1279
|
schema: []
|
|
1253
1280
|
},
|
|
1254
|
-
name:
|
|
1281
|
+
name: RULE_NAME27,
|
|
1255
1282
|
create(context) {
|
|
1256
1283
|
if (!context.sourceCode.text.includes("&&") && !context.sourceCode.text.includes("?")) return {};
|
|
1257
1284
|
const { version: version2 } = normalizeSettings(decodeSettings(context.settings));
|
|
@@ -1273,7 +1300,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1273
1300
|
const isLeftUnaryNot = isMatching({ type: AST_NODE_TYPES.UnaryExpression, operator: "!" }, left);
|
|
1274
1301
|
if (isLeftUnaryNot) return getReportDescriptor(right);
|
|
1275
1302
|
const initialScope = context.sourceCode.getScope(left);
|
|
1276
|
-
const isLeftNan = isMatching({ type: AST_NODE_TYPES.Identifier, name: "NaN" }, left) || getStaticValue(left, initialScope)
|
|
1303
|
+
const isLeftNan = isMatching({ type: AST_NODE_TYPES.Identifier, name: "NaN" }, left) || O.exists(VAR.getStaticValue(left, initialScope), (v) => v === "NaN");
|
|
1277
1304
|
if (isLeftNan) {
|
|
1278
1305
|
return O.some({
|
|
1279
1306
|
messageId: "noLeakedConditionalRendering",
|
|
@@ -1308,7 +1335,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1308
1335
|
},
|
|
1309
1336
|
defaultOptions: []
|
|
1310
1337
|
});
|
|
1311
|
-
var
|
|
1338
|
+
var RULE_NAME28 = "no-missing-component-display-name";
|
|
1312
1339
|
var no_missing_component_display_name_default = createRule({
|
|
1313
1340
|
meta: {
|
|
1314
1341
|
type: "problem",
|
|
@@ -1320,7 +1347,7 @@ var no_missing_component_display_name_default = createRule({
|
|
|
1320
1347
|
},
|
|
1321
1348
|
schema: []
|
|
1322
1349
|
},
|
|
1323
|
-
name:
|
|
1350
|
+
name: RULE_NAME28,
|
|
1324
1351
|
create(context) {
|
|
1325
1352
|
if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
|
|
1326
1353
|
const { ctx, listeners } = useComponentCollector(context);
|
|
@@ -1344,7 +1371,7 @@ var no_missing_component_display_name_default = createRule({
|
|
|
1344
1371
|
},
|
|
1345
1372
|
defaultOptions: []
|
|
1346
1373
|
});
|
|
1347
|
-
var
|
|
1374
|
+
var RULE_NAME29 = "no-missing-key";
|
|
1348
1375
|
var no_missing_key_default = createRule({
|
|
1349
1376
|
meta: {
|
|
1350
1377
|
type: "problem",
|
|
@@ -1357,7 +1384,7 @@ var no_missing_key_default = createRule({
|
|
|
1357
1384
|
},
|
|
1358
1385
|
schema: []
|
|
1359
1386
|
},
|
|
1360
|
-
name:
|
|
1387
|
+
name: RULE_NAME29,
|
|
1361
1388
|
create(context) {
|
|
1362
1389
|
const isWithinChildrenToArrayRef = MutRef.make(false);
|
|
1363
1390
|
function checkIteratorElement(node) {
|
|
@@ -1461,7 +1488,7 @@ var no_missing_key_default = createRule({
|
|
|
1461
1488
|
},
|
|
1462
1489
|
defaultOptions: []
|
|
1463
1490
|
});
|
|
1464
|
-
var
|
|
1491
|
+
var RULE_NAME30 = "no-nested-components";
|
|
1465
1492
|
var no_nested_components_default = createRule({
|
|
1466
1493
|
meta: {
|
|
1467
1494
|
type: "problem",
|
|
@@ -1474,7 +1501,7 @@ var no_nested_components_default = createRule({
|
|
|
1474
1501
|
},
|
|
1475
1502
|
schema: []
|
|
1476
1503
|
},
|
|
1477
|
-
name:
|
|
1504
|
+
name: RULE_NAME30,
|
|
1478
1505
|
create(context) {
|
|
1479
1506
|
const hint = ERComponentHint.SkipMapCallback | ERComponentHint.SkipNullLiteral | ERComponentHint.SkipUndefinedLiteral | ERComponentHint.SkipBooleanLiteral | ERComponentHint.SkipStringLiteral | ERComponentHint.SkipNumberLiteral | ERComponentHint.StrictLogical | ERComponentHint.StrictConditional;
|
|
1480
1507
|
const collector = useComponentCollector(context, hint);
|
|
@@ -1558,7 +1585,7 @@ var no_nested_components_default = createRule({
|
|
|
1558
1585
|
},
|
|
1559
1586
|
defaultOptions: []
|
|
1560
1587
|
});
|
|
1561
|
-
var
|
|
1588
|
+
var RULE_NAME31 = "no-prop-types";
|
|
1562
1589
|
var no_prop_types_default = createRule({
|
|
1563
1590
|
meta: {
|
|
1564
1591
|
type: "problem",
|
|
@@ -1570,7 +1597,7 @@ var no_prop_types_default = createRule({
|
|
|
1570
1597
|
},
|
|
1571
1598
|
schema: []
|
|
1572
1599
|
},
|
|
1573
|
-
name:
|
|
1600
|
+
name: RULE_NAME31,
|
|
1574
1601
|
create(context) {
|
|
1575
1602
|
if (!context.sourceCode.text.includes("propTypes")) return {};
|
|
1576
1603
|
return {
|
|
@@ -1597,7 +1624,7 @@ var no_prop_types_default = createRule({
|
|
|
1597
1624
|
},
|
|
1598
1625
|
defaultOptions: []
|
|
1599
1626
|
});
|
|
1600
|
-
var
|
|
1627
|
+
var RULE_NAME32 = "no-redundant-should-component-update";
|
|
1601
1628
|
function isShouldComponentUpdate(node) {
|
|
1602
1629
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "shouldComponentUpdate";
|
|
1603
1630
|
}
|
|
@@ -1612,7 +1639,7 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
1612
1639
|
},
|
|
1613
1640
|
schema: []
|
|
1614
1641
|
},
|
|
1615
|
-
name:
|
|
1642
|
+
name: RULE_NAME32,
|
|
1616
1643
|
create(context) {
|
|
1617
1644
|
if (!context.sourceCode.text.includes("shouldComponentUpdate")) return {};
|
|
1618
1645
|
const { ctx, listeners } = useComponentCollectorLegacy();
|
|
@@ -1640,7 +1667,7 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
1640
1667
|
},
|
|
1641
1668
|
defaultOptions: []
|
|
1642
1669
|
});
|
|
1643
|
-
var
|
|
1670
|
+
var RULE_NAME33 = "no-set-state-in-component-did-mount";
|
|
1644
1671
|
function isComponentDidMount(node) {
|
|
1645
1672
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentDidMount";
|
|
1646
1673
|
}
|
|
@@ -1655,7 +1682,7 @@ var no_set_state_in_component_did_mount_default = createRule({
|
|
|
1655
1682
|
},
|
|
1656
1683
|
schema: []
|
|
1657
1684
|
},
|
|
1658
|
-
name:
|
|
1685
|
+
name: RULE_NAME33,
|
|
1659
1686
|
create(context) {
|
|
1660
1687
|
if (!context.sourceCode.text.includes("componentDidMount")) return {};
|
|
1661
1688
|
function getReportDescriptor(node) {
|
|
@@ -1683,7 +1710,7 @@ var no_set_state_in_component_did_mount_default = createRule({
|
|
|
1683
1710
|
},
|
|
1684
1711
|
defaultOptions: []
|
|
1685
1712
|
});
|
|
1686
|
-
var
|
|
1713
|
+
var RULE_NAME34 = "no-set-state-in-component-did-update";
|
|
1687
1714
|
function isComponentDidUpdate(node) {
|
|
1688
1715
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentDidUpdate";
|
|
1689
1716
|
}
|
|
@@ -1698,7 +1725,7 @@ var no_set_state_in_component_did_update_default = createRule({
|
|
|
1698
1725
|
},
|
|
1699
1726
|
schema: []
|
|
1700
1727
|
},
|
|
1701
|
-
name:
|
|
1728
|
+
name: RULE_NAME34,
|
|
1702
1729
|
create(context) {
|
|
1703
1730
|
if (!context.sourceCode.text.includes("componentDidUpdate")) return {};
|
|
1704
1731
|
function getReportDescriptor(node) {
|
|
@@ -1726,7 +1753,7 @@ var no_set_state_in_component_did_update_default = createRule({
|
|
|
1726
1753
|
},
|
|
1727
1754
|
defaultOptions: []
|
|
1728
1755
|
});
|
|
1729
|
-
var
|
|
1756
|
+
var RULE_NAME35 = "no-set-state-in-component-will-update";
|
|
1730
1757
|
function isComponentWillUpdate3(node) {
|
|
1731
1758
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "componentWillUpdate";
|
|
1732
1759
|
}
|
|
@@ -1741,7 +1768,7 @@ var no_set_state_in_component_will_update_default = createRule({
|
|
|
1741
1768
|
},
|
|
1742
1769
|
schema: []
|
|
1743
1770
|
},
|
|
1744
|
-
name:
|
|
1771
|
+
name: RULE_NAME35,
|
|
1745
1772
|
create(context) {
|
|
1746
1773
|
if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
|
|
1747
1774
|
function getReportDescriptor(node) {
|
|
@@ -1769,7 +1796,7 @@ var no_set_state_in_component_will_update_default = createRule({
|
|
|
1769
1796
|
},
|
|
1770
1797
|
defaultOptions: []
|
|
1771
1798
|
});
|
|
1772
|
-
var
|
|
1799
|
+
var RULE_NAME36 = "no-string-refs";
|
|
1773
1800
|
function containsStringLiteral({ value }) {
|
|
1774
1801
|
return value?.type === AST_NODE_TYPES.Literal && isString(value.value);
|
|
1775
1802
|
}
|
|
@@ -1789,7 +1816,7 @@ var no_string_refs_default = createRule({
|
|
|
1789
1816
|
},
|
|
1790
1817
|
schema: []
|
|
1791
1818
|
},
|
|
1792
|
-
name:
|
|
1819
|
+
name: RULE_NAME36,
|
|
1793
1820
|
create(context) {
|
|
1794
1821
|
return {
|
|
1795
1822
|
JSXAttribute(node) {
|
|
@@ -1805,7 +1832,7 @@ var no_string_refs_default = createRule({
|
|
|
1805
1832
|
},
|
|
1806
1833
|
defaultOptions: []
|
|
1807
1834
|
});
|
|
1808
|
-
var
|
|
1835
|
+
var RULE_NAME37 = "no-unsafe-component-will-mount";
|
|
1809
1836
|
function isUnsafeComponentWillMount(node) {
|
|
1810
1837
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillMount";
|
|
1811
1838
|
}
|
|
@@ -1820,7 +1847,7 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
1820
1847
|
},
|
|
1821
1848
|
schema: []
|
|
1822
1849
|
},
|
|
1823
|
-
name:
|
|
1850
|
+
name: RULE_NAME37,
|
|
1824
1851
|
create(context) {
|
|
1825
1852
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
|
|
1826
1853
|
const { ctx, listeners } = useComponentCollectorLegacy();
|
|
@@ -1844,7 +1871,7 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
1844
1871
|
},
|
|
1845
1872
|
defaultOptions: []
|
|
1846
1873
|
});
|
|
1847
|
-
var
|
|
1874
|
+
var RULE_NAME38 = "no-unsafe-component-will-receive-props";
|
|
1848
1875
|
function isUnsafeComponentWillReceiveProps(node) {
|
|
1849
1876
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillReceiveProps";
|
|
1850
1877
|
}
|
|
@@ -1859,7 +1886,7 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
1859
1886
|
},
|
|
1860
1887
|
schema: []
|
|
1861
1888
|
},
|
|
1862
|
-
name:
|
|
1889
|
+
name: RULE_NAME38,
|
|
1863
1890
|
create(context) {
|
|
1864
1891
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) return {};
|
|
1865
1892
|
const { ctx, listeners } = useComponentCollectorLegacy();
|
|
@@ -1883,7 +1910,7 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
1883
1910
|
},
|
|
1884
1911
|
defaultOptions: []
|
|
1885
1912
|
});
|
|
1886
|
-
var
|
|
1913
|
+
var RULE_NAME39 = "no-unsafe-component-will-update";
|
|
1887
1914
|
function isUnsafeComponentWillUpdate(node) {
|
|
1888
1915
|
return AST11.isOneOf([AST_NODE_TYPES.MethodDefinition, AST_NODE_TYPES.PropertyDefinition])(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "UNSAFE_componentWillUpdate";
|
|
1889
1916
|
}
|
|
@@ -1898,7 +1925,7 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
1898
1925
|
},
|
|
1899
1926
|
schema: []
|
|
1900
1927
|
},
|
|
1901
|
-
name:
|
|
1928
|
+
name: RULE_NAME39,
|
|
1902
1929
|
create(context) {
|
|
1903
1930
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
|
|
1904
1931
|
const { ctx, listeners } = useComponentCollectorLegacy();
|
|
@@ -1922,7 +1949,7 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
1922
1949
|
},
|
|
1923
1950
|
defaultOptions: []
|
|
1924
1951
|
});
|
|
1925
|
-
var
|
|
1952
|
+
var RULE_NAME40 = "no-unstable-context-value";
|
|
1926
1953
|
var no_unstable_context_value_default = createRule({
|
|
1927
1954
|
meta: {
|
|
1928
1955
|
type: "problem",
|
|
@@ -1936,7 +1963,7 @@ var no_unstable_context_value_default = createRule({
|
|
|
1936
1963
|
},
|
|
1937
1964
|
schema: []
|
|
1938
1965
|
},
|
|
1939
|
-
name:
|
|
1966
|
+
name: RULE_NAME40,
|
|
1940
1967
|
create(context) {
|
|
1941
1968
|
const { ctx, listeners } = useComponentCollector(context);
|
|
1942
1969
|
const possibleValueConstructions = /* @__PURE__ */ new Map();
|
|
@@ -1989,7 +2016,7 @@ var no_unstable_context_value_default = createRule({
|
|
|
1989
2016
|
},
|
|
1990
2017
|
defaultOptions: []
|
|
1991
2018
|
});
|
|
1992
|
-
var
|
|
2019
|
+
var RULE_NAME41 = "no-unstable-default-props";
|
|
1993
2020
|
var no_unstable_default_props_default = createRule({
|
|
1994
2021
|
meta: {
|
|
1995
2022
|
type: "problem",
|
|
@@ -2001,7 +2028,7 @@ var no_unstable_default_props_default = createRule({
|
|
|
2001
2028
|
},
|
|
2002
2029
|
schema: []
|
|
2003
2030
|
},
|
|
2004
|
-
name:
|
|
2031
|
+
name: RULE_NAME41,
|
|
2005
2032
|
create(context) {
|
|
2006
2033
|
const { ctx, listeners } = useComponentCollector(context);
|
|
2007
2034
|
const possibleDestructuringDeclarators = /* @__PURE__ */ new WeakMap();
|
|
@@ -2054,7 +2081,7 @@ var no_unstable_default_props_default = createRule({
|
|
|
2054
2081
|
},
|
|
2055
2082
|
defaultOptions: []
|
|
2056
2083
|
});
|
|
2057
|
-
var
|
|
2084
|
+
var RULE_NAME42 = "no-unused-class-component-members";
|
|
2058
2085
|
var LIFECYCLE_METHODS = /* @__PURE__ */ new Set([
|
|
2059
2086
|
"componentDidCatch",
|
|
2060
2087
|
"componentDidMount",
|
|
@@ -2098,7 +2125,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2098
2125
|
},
|
|
2099
2126
|
schema: []
|
|
2100
2127
|
},
|
|
2101
|
-
name:
|
|
2128
|
+
name: RULE_NAME42,
|
|
2102
2129
|
create(context) {
|
|
2103
2130
|
const classStack = [];
|
|
2104
2131
|
const methodStack = [];
|
|
@@ -2181,7 +2208,7 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2181
2208
|
},
|
|
2182
2209
|
defaultOptions: []
|
|
2183
2210
|
});
|
|
2184
|
-
var
|
|
2211
|
+
var RULE_NAME43 = "no-unused-state";
|
|
2185
2212
|
function getName4(node) {
|
|
2186
2213
|
if (node.type === AST_NODE_TYPES.TSAsExpression) {
|
|
2187
2214
|
return getName4(node.expression);
|
|
@@ -2221,7 +2248,7 @@ var no_unused_state_default = createRule({
|
|
|
2221
2248
|
},
|
|
2222
2249
|
schema: []
|
|
2223
2250
|
},
|
|
2224
|
-
name:
|
|
2251
|
+
name: RULE_NAME43,
|
|
2225
2252
|
create(context) {
|
|
2226
2253
|
const classStack = [];
|
|
2227
2254
|
const methodStack = [];
|
|
@@ -2322,7 +2349,7 @@ var no_unused_state_default = createRule({
|
|
|
2322
2349
|
},
|
|
2323
2350
|
defaultOptions: []
|
|
2324
2351
|
});
|
|
2325
|
-
var
|
|
2352
|
+
var RULE_NAME44 = "no-useless-fragment";
|
|
2326
2353
|
function check(node, context, allowExpressions) {
|
|
2327
2354
|
const initialScope = context.sourceCode.getScope(node);
|
|
2328
2355
|
if (JSX7.isKeyedElement(node, initialScope)) return;
|
|
@@ -2364,7 +2391,7 @@ var no_useless_fragment_default = createRule({
|
|
|
2364
2391
|
}
|
|
2365
2392
|
}]
|
|
2366
2393
|
},
|
|
2367
|
-
name:
|
|
2394
|
+
name: RULE_NAME44,
|
|
2368
2395
|
create(context, [option]) {
|
|
2369
2396
|
const { allowExpressions = true } = option;
|
|
2370
2397
|
return {
|
|
@@ -2381,7 +2408,7 @@ var no_useless_fragment_default = createRule({
|
|
|
2381
2408
|
allowExpressions: true
|
|
2382
2409
|
}]
|
|
2383
2410
|
});
|
|
2384
|
-
var
|
|
2411
|
+
var RULE_NAME45 = "prefer-destructuring-assignment";
|
|
2385
2412
|
function isMemberExpressionWithObjectName(node) {
|
|
2386
2413
|
return node.object.type === AST_NODE_TYPES.Identifier && "name" in node.object;
|
|
2387
2414
|
}
|
|
@@ -2396,7 +2423,7 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
2396
2423
|
},
|
|
2397
2424
|
schema: []
|
|
2398
2425
|
},
|
|
2399
|
-
name:
|
|
2426
|
+
name: RULE_NAME45,
|
|
2400
2427
|
create(context) {
|
|
2401
2428
|
const { ctx, listeners } = useComponentCollector(context);
|
|
2402
2429
|
const memberExpressionWithNames = [];
|
|
@@ -2451,7 +2478,7 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
2451
2478
|
},
|
|
2452
2479
|
defaultOptions: []
|
|
2453
2480
|
});
|
|
2454
|
-
var
|
|
2481
|
+
var RULE_NAME46 = "prefer-react-namespace-import";
|
|
2455
2482
|
var prefer_react_namespace_import_default = createRule({
|
|
2456
2483
|
meta: {
|
|
2457
2484
|
type: "problem",
|
|
@@ -2464,7 +2491,7 @@ var prefer_react_namespace_import_default = createRule({
|
|
|
2464
2491
|
},
|
|
2465
2492
|
schema: []
|
|
2466
2493
|
},
|
|
2467
|
-
name:
|
|
2494
|
+
name: RULE_NAME46,
|
|
2468
2495
|
create(context) {
|
|
2469
2496
|
const importSource = decodeSettings(context.settings).importSource ?? "react";
|
|
2470
2497
|
return {
|
|
@@ -2500,7 +2527,7 @@ ${importStringPrefix} ${specifiers} from ${importSourceQuoted}${semiColon}`
|
|
|
2500
2527
|
},
|
|
2501
2528
|
defaultOptions: []
|
|
2502
2529
|
});
|
|
2503
|
-
var
|
|
2530
|
+
var RULE_NAME47 = "prefer-read-only-props";
|
|
2504
2531
|
function isReadonlyType(type, services) {
|
|
2505
2532
|
try {
|
|
2506
2533
|
const im = getTypeImmutability(services.program, type);
|
|
@@ -2520,7 +2547,7 @@ var prefer_read_only_props_default = createRule({
|
|
|
2520
2547
|
},
|
|
2521
2548
|
schema: []
|
|
2522
2549
|
},
|
|
2523
|
-
name:
|
|
2550
|
+
name: RULE_NAME47,
|
|
2524
2551
|
create(context) {
|
|
2525
2552
|
const services = ESLintUtils.getParserServices(context, false);
|
|
2526
2553
|
const { ctx, listeners } = useComponentCollector(context);
|
|
@@ -2540,7 +2567,7 @@ var prefer_read_only_props_default = createRule({
|
|
|
2540
2567
|
},
|
|
2541
2568
|
defaultOptions: []
|
|
2542
2569
|
});
|
|
2543
|
-
var
|
|
2570
|
+
var RULE_NAME48 = "prefer-shorthand-boolean";
|
|
2544
2571
|
var prefer_shorthand_boolean_default = createRule({
|
|
2545
2572
|
meta: {
|
|
2546
2573
|
type: "problem",
|
|
@@ -2553,7 +2580,7 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2553
2580
|
},
|
|
2554
2581
|
schema: []
|
|
2555
2582
|
},
|
|
2556
|
-
name:
|
|
2583
|
+
name: RULE_NAME48,
|
|
2557
2584
|
create(context) {
|
|
2558
2585
|
function getReportDescriptor(node) {
|
|
2559
2586
|
const { value } = node;
|
|
@@ -2575,7 +2602,7 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2575
2602
|
},
|
|
2576
2603
|
defaultOptions: []
|
|
2577
2604
|
});
|
|
2578
|
-
var
|
|
2605
|
+
var RULE_NAME49 = "prefer-shorthand-fragment";
|
|
2579
2606
|
var prefer_shorthand_fragment_default = createRule({
|
|
2580
2607
|
meta: {
|
|
2581
2608
|
type: "problem",
|
|
@@ -2587,7 +2614,7 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2587
2614
|
},
|
|
2588
2615
|
schema: []
|
|
2589
2616
|
},
|
|
2590
|
-
name:
|
|
2617
|
+
name: RULE_NAME49,
|
|
2591
2618
|
create(context) {
|
|
2592
2619
|
function getReportDescriptor(node) {
|
|
2593
2620
|
if (!isFragmentElement(node, context)) return O.none();
|
|
@@ -2644,6 +2671,7 @@ var src_default = {
|
|
|
2644
2671
|
"no-default-props": no_default_props_default,
|
|
2645
2672
|
"no-direct-mutation-state": no_direct_mutation_state_default,
|
|
2646
2673
|
"no-duplicate-key": no_duplicate_key_default,
|
|
2674
|
+
"no-forward-ref": no_forward_ref_default,
|
|
2647
2675
|
"no-implicit-key": no_implicit_key_default,
|
|
2648
2676
|
"no-leaked-conditional-rendering": no_leaked_conditional_rendering_default,
|
|
2649
2677
|
"no-missing-component-display-name": no_missing_component_display_name_default,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-x",
|
|
3
|
-
"version": "1.17.4-next.
|
|
3
|
+
"version": "1.17.4-next.11",
|
|
4
4
|
"description": "A set of composable ESLint rules for libraries and frameworks that use React as a UI runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -49,17 +49,17 @@
|
|
|
49
49
|
"compare-versions": "^6.1.1",
|
|
50
50
|
"is-immutable-type": "^5.0.0",
|
|
51
51
|
"ts-pattern": "^5.5.0",
|
|
52
|
-
"@eslint-react/ast": "1.17.4-next.
|
|
53
|
-
"@eslint-react/core": "1.17.4-next.
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/
|
|
56
|
-
"@eslint-react/
|
|
57
|
-
"@eslint-react/
|
|
58
|
-
"@eslint-react/var": "1.17.4-next.
|
|
52
|
+
"@eslint-react/ast": "1.17.4-next.11",
|
|
53
|
+
"@eslint-react/core": "1.17.4-next.11",
|
|
54
|
+
"@eslint-react/shared": "1.17.4-next.11",
|
|
55
|
+
"@eslint-react/types": "1.17.4-next.11",
|
|
56
|
+
"@eslint-react/jsx": "1.17.4-next.11",
|
|
57
|
+
"@eslint-react/tools": "1.17.4-next.11",
|
|
58
|
+
"@eslint-react/var": "1.17.4-next.11"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@types/react": "^
|
|
62
|
-
"@types/react-dom": "^
|
|
61
|
+
"@types/react": "^19.0.1",
|
|
62
|
+
"@types/react-dom": "^19.0.1",
|
|
63
63
|
"string-ts": "^2.2.0",
|
|
64
64
|
"ts-api-utils": "^2.0.0",
|
|
65
65
|
"tsup": "^8.3.5"
|