eslint-plugin-react-x 2.7.3-next.2 → 2.7.3-next.4
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 +36 -35
- package/package.json +12 -12
package/dist/index.js
CHANGED
|
@@ -68,7 +68,7 @@ const rules$7 = {
|
|
|
68
68
|
//#endregion
|
|
69
69
|
//#region package.json
|
|
70
70
|
var name$6 = "eslint-plugin-react-x";
|
|
71
|
-
var version = "2.7.3-next.
|
|
71
|
+
var version = "2.7.3-next.4";
|
|
72
72
|
|
|
73
73
|
//#endregion
|
|
74
74
|
//#region src/utils/create-rule.ts
|
|
@@ -937,8 +937,8 @@ var no_class_component_default = createRule({
|
|
|
937
937
|
});
|
|
938
938
|
function create$45(context) {
|
|
939
939
|
if (!context.sourceCode.text.includes("Component")) return {};
|
|
940
|
-
const { ctx,
|
|
941
|
-
return defineRuleListener(
|
|
940
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
941
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
942
942
|
for (const { name: name$9 = "anonymous", node: component } of ctx.getAllComponents(program)) {
|
|
943
943
|
if (component.body.body.some((m) => isComponentDidCatch(m) || isGetDerivedStateFromError(m))) continue;
|
|
944
944
|
context.report({
|
|
@@ -990,8 +990,8 @@ var no_component_will_mount_default = createRule({
|
|
|
990
990
|
});
|
|
991
991
|
function create$43(context) {
|
|
992
992
|
if (!context.sourceCode.text.includes("componentWillMount")) return {};
|
|
993
|
-
const { ctx,
|
|
994
|
-
return defineRuleListener(
|
|
993
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
994
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
995
995
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
996
996
|
const { body } = component.body;
|
|
997
997
|
for (const member of body) if (isComponentWillMount(member)) context.report({
|
|
@@ -1023,8 +1023,8 @@ var no_component_will_receive_props_default = createRule({
|
|
|
1023
1023
|
});
|
|
1024
1024
|
function create$42(context) {
|
|
1025
1025
|
if (!context.sourceCode.text.includes("componentWillReceiveProps")) return {};
|
|
1026
|
-
const { ctx,
|
|
1027
|
-
return defineRuleListener(
|
|
1026
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
1027
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
1028
1028
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
1029
1029
|
const { body } = component.body;
|
|
1030
1030
|
for (const member of body) if (isComponentWillReceiveProps(member)) context.report({
|
|
@@ -1056,8 +1056,8 @@ var no_component_will_update_default = createRule({
|
|
|
1056
1056
|
});
|
|
1057
1057
|
function create$41(context) {
|
|
1058
1058
|
if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
|
|
1059
|
-
const { ctx,
|
|
1060
|
-
return defineRuleListener(
|
|
1059
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
1060
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
1061
1061
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
1062
1062
|
const { body } = component.body;
|
|
1063
1063
|
for (const member of body) if (isComponentWillUpdate(member)) context.report({
|
|
@@ -1418,6 +1418,7 @@ function create$33(context) {
|
|
|
1418
1418
|
"boolean",
|
|
1419
1419
|
"nullish",
|
|
1420
1420
|
"object",
|
|
1421
|
+
"enum",
|
|
1421
1422
|
"falsy boolean",
|
|
1422
1423
|
"truthy bigint",
|
|
1423
1424
|
"truthy boolean",
|
|
@@ -1480,12 +1481,12 @@ var no_missing_component_display_name_default = createRule({
|
|
|
1480
1481
|
});
|
|
1481
1482
|
function create$32(context) {
|
|
1482
1483
|
if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
|
|
1483
|
-
const { ctx,
|
|
1484
|
+
const { ctx, visitor } = useComponentCollector(context, {
|
|
1484
1485
|
collectDisplayName: true,
|
|
1485
1486
|
collectHookCalls: false,
|
|
1486
1487
|
hint: DEFAULT_COMPONENT_DETECTION_HINT
|
|
1487
1488
|
});
|
|
1488
|
-
return defineRuleListener(
|
|
1489
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
1489
1490
|
for (const { node, displayName, flag } of ctx.getAllComponents(program)) {
|
|
1490
1491
|
const id = AST.getFunctionId(node);
|
|
1491
1492
|
const isMemoOrForwardRef = (flag & (ComponentFlag.ForwardRef | ComponentFlag.Memo)) > 0n;
|
|
@@ -1706,7 +1707,7 @@ var no_nested_component_definitions_default = createRule({
|
|
|
1706
1707
|
function create$28(context) {
|
|
1707
1708
|
const fCollector = useComponentCollector(context, { hint: ComponentDetectionHint.SkipArrayMapCallback | ComponentDetectionHint.SkipNullLiteral | ComponentDetectionHint.SkipUndefined | ComponentDetectionHint.SkipBooleanLiteral | ComponentDetectionHint.SkipStringLiteral | ComponentDetectionHint.SkipNumberLiteral | ComponentDetectionHint.StrictLogical | ComponentDetectionHint.StrictConditional });
|
|
1708
1709
|
const cCollector = useComponentCollectorLegacy(context);
|
|
1709
|
-
return defineRuleListener(fCollector.
|
|
1710
|
+
return defineRuleListener(fCollector.visitor, cCollector.visitor, { "Program:exit"(program) {
|
|
1710
1711
|
const fComponents = [...fCollector.ctx.getAllComponents(program)];
|
|
1711
1712
|
const cComponents = [...cCollector.ctx.getAllComponents(program)];
|
|
1712
1713
|
const isFunctionComponent = (node) => {
|
|
@@ -1824,7 +1825,7 @@ function create$27(context) {
|
|
|
1824
1825
|
const collector = useComponentCollector(context, { hint });
|
|
1825
1826
|
const collectorLegacy = useComponentCollectorLegacy(context);
|
|
1826
1827
|
const lazyComponentDeclarations = /* @__PURE__ */ new Set();
|
|
1827
|
-
return defineRuleListener(collector.
|
|
1828
|
+
return defineRuleListener(collector.visitor, collectorLegacy.visitor, {
|
|
1828
1829
|
ImportExpression(node) {
|
|
1829
1830
|
const lazyCall = AST.findParentNode(node, (n) => isLazyCall(context, n));
|
|
1830
1831
|
if (lazyCall != null) lazyComponentDeclarations.add(lazyCall);
|
|
@@ -1905,8 +1906,8 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
1905
1906
|
});
|
|
1906
1907
|
function create$25(context) {
|
|
1907
1908
|
if (!context.sourceCode.text.includes("shouldComponentUpdate")) return {};
|
|
1908
|
-
const { ctx,
|
|
1909
|
-
return defineRuleListener(
|
|
1909
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
1910
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
1910
1911
|
for (const { name: name$9 = "PureComponent", node: component, flag } of ctx.getAllComponents(program)) {
|
|
1911
1912
|
if ((flag & ComponentFlag.PureComponent) === 0n) continue;
|
|
1912
1913
|
const { body } = component.body;
|
|
@@ -2087,9 +2088,9 @@ function create$20(context) {
|
|
|
2087
2088
|
...getJsxConfigFromContext(context),
|
|
2088
2089
|
...getJsxConfigFromAnnotation(context)
|
|
2089
2090
|
};
|
|
2090
|
-
const { ctx,
|
|
2091
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
2091
2092
|
const constantKeys = /* @__PURE__ */ new Set();
|
|
2092
|
-
return defineRuleListener(
|
|
2093
|
+
return defineRuleListener(visitor, {
|
|
2093
2094
|
JSXAttribute(node) {
|
|
2094
2095
|
if (node.name.name !== "key") return;
|
|
2095
2096
|
const jsxElement = node.parent.parent;
|
|
@@ -2323,8 +2324,8 @@ var no_unnecessary_use_prefix_default = createRule({
|
|
|
2323
2324
|
defaultOptions: []
|
|
2324
2325
|
});
|
|
2325
2326
|
function create$17(context) {
|
|
2326
|
-
const { ctx,
|
|
2327
|
-
return defineRuleListener(
|
|
2327
|
+
const { ctx, visitor } = useHookCollector(context);
|
|
2328
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2328
2329
|
for (const { id, name: name$9, node, hookCalls } of ctx.getAllHooks(program)) {
|
|
2329
2330
|
if (hookCalls.length > 0) continue;
|
|
2330
2331
|
if (AST.isFunctionEmpty(node)) continue;
|
|
@@ -2394,8 +2395,8 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
2394
2395
|
});
|
|
2395
2396
|
function create$15(context) {
|
|
2396
2397
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
|
|
2397
|
-
const { ctx,
|
|
2398
|
-
return defineRuleListener(
|
|
2398
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
2399
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2399
2400
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
2400
2401
|
const { body } = component.body;
|
|
2401
2402
|
for (const member of body) if (isUnsafeComponentWillMount(member)) context.report({
|
|
@@ -2422,8 +2423,8 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
2422
2423
|
});
|
|
2423
2424
|
function create$14(context) {
|
|
2424
2425
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) return {};
|
|
2425
|
-
const { ctx,
|
|
2426
|
-
return defineRuleListener(
|
|
2426
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
2427
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2427
2428
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
2428
2429
|
const { body } = component.body;
|
|
2429
2430
|
for (const member of body) if (isUnsafeComponentWillReceiveProps(member)) context.report({
|
|
@@ -2450,8 +2451,8 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
2450
2451
|
});
|
|
2451
2452
|
function create$13(context) {
|
|
2452
2453
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
|
|
2453
|
-
const { ctx,
|
|
2454
|
-
return defineRuleListener(
|
|
2454
|
+
const { ctx, visitor } = useComponentCollectorLegacy(context);
|
|
2455
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2455
2456
|
for (const { node: component } of ctx.getAllComponents(program)) {
|
|
2456
2457
|
const { body } = component.body;
|
|
2457
2458
|
for (const member of body) if (isUnsafeComponentWillUpdate(member)) context.report({
|
|
@@ -2479,9 +2480,9 @@ var no_unstable_context_value_default = createRule({
|
|
|
2479
2480
|
function create$12(context) {
|
|
2480
2481
|
const { version: version$1 } = getSettingsFromContext(context);
|
|
2481
2482
|
const isReact18OrBelow = compare(version$1, "19.0.0", "<");
|
|
2482
|
-
const { ctx,
|
|
2483
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
2483
2484
|
const constructions = /* @__PURE__ */ new WeakMap();
|
|
2484
|
-
return defineRuleListener(
|
|
2485
|
+
return defineRuleListener(visitor, {
|
|
2485
2486
|
JSXOpeningElement(node) {
|
|
2486
2487
|
const selfName = getJsxElementType(context, node.parent).split(".").at(-1);
|
|
2487
2488
|
if (selfName == null) return;
|
|
@@ -2552,11 +2553,11 @@ function extractIdentifier(node) {
|
|
|
2552
2553
|
return null;
|
|
2553
2554
|
}
|
|
2554
2555
|
function create$11(context, [options]) {
|
|
2555
|
-
const { ctx,
|
|
2556
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
2556
2557
|
const declarators = /* @__PURE__ */ new WeakMap();
|
|
2557
2558
|
const { safeDefaultProps = [] } = options;
|
|
2558
2559
|
const safePatterns = safeDefaultProps.map((s) => toRegExp(s));
|
|
2559
|
-
return defineRuleListener(
|
|
2560
|
+
return defineRuleListener(visitor, {
|
|
2560
2561
|
[AST.SEL_OBJECT_DESTRUCTURING_VARIABLE_DECLARATOR](node) {
|
|
2561
2562
|
const functionEntry = ctx.getCurrentEntry();
|
|
2562
2563
|
if (functionEntry == null) return;
|
|
@@ -2725,8 +2726,8 @@ var no_unused_props_default = createRule({
|
|
|
2725
2726
|
});
|
|
2726
2727
|
function create$9(context) {
|
|
2727
2728
|
const services = ESLintUtils.getParserServices(context, false);
|
|
2728
|
-
const { ctx,
|
|
2729
|
-
return defineRuleListener(
|
|
2729
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
2730
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2730
2731
|
const checker = services.program.getTypeChecker();
|
|
2731
2732
|
const totalDeclaredProps = /* @__PURE__ */ new Set();
|
|
2732
2733
|
const totalUsedProps = /* @__PURE__ */ new Set();
|
|
@@ -3206,8 +3207,8 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
3206
3207
|
defaultOptions: []
|
|
3207
3208
|
});
|
|
3208
3209
|
function create$4(context) {
|
|
3209
|
-
const { ctx,
|
|
3210
|
-
return defineRuleListener(
|
|
3210
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
3211
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
3211
3212
|
for (const component of ctx.getAllComponents(program)) {
|
|
3212
3213
|
if (component.name == null && component.isExportDefaultDeclaration) continue;
|
|
3213
3214
|
const [props] = component.node.params;
|
|
@@ -3281,8 +3282,8 @@ var prefer_read_only_props_default = createRule({
|
|
|
3281
3282
|
function create$2(context) {
|
|
3282
3283
|
const services = ESLintUtils.getParserServices(context, false);
|
|
3283
3284
|
const checker = services.program.getTypeChecker();
|
|
3284
|
-
const { ctx,
|
|
3285
|
-
return defineRuleListener(
|
|
3285
|
+
const { ctx, visitor } = useComponentCollector(context);
|
|
3286
|
+
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
3286
3287
|
for (const component of ctx.getAllComponents(program)) {
|
|
3287
3288
|
const [props] = component.node.params;
|
|
3288
3289
|
if (component.id == null || component.name == null) continue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-x",
|
|
3
|
-
"version": "2.7.3-next.
|
|
3
|
+
"version": "2.7.3-next.4",
|
|
4
4
|
"description": "A set of composable ESLint rules for for libraries and frameworks that use React as a UI runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -37,25 +37,25 @@
|
|
|
37
37
|
"./package.json"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@typescript-eslint/scope-manager": "^8.53.
|
|
41
|
-
"@typescript-eslint/type-utils": "^8.53.
|
|
42
|
-
"@typescript-eslint/types": "^8.53.
|
|
43
|
-
"@typescript-eslint/utils": "^8.53.
|
|
40
|
+
"@typescript-eslint/scope-manager": "^8.53.1",
|
|
41
|
+
"@typescript-eslint/type-utils": "^8.53.1",
|
|
42
|
+
"@typescript-eslint/types": "^8.53.1",
|
|
43
|
+
"@typescript-eslint/utils": "^8.53.1",
|
|
44
44
|
"compare-versions": "^6.1.1",
|
|
45
45
|
"is-immutable-type": "^5.0.1",
|
|
46
46
|
"string-ts": "^2.3.1",
|
|
47
47
|
"ts-api-utils": "^2.4.0",
|
|
48
48
|
"ts-pattern": "^5.9.0",
|
|
49
|
-
"@eslint-react/
|
|
50
|
-
"@eslint-react/
|
|
51
|
-
"@eslint-react/eff": "2.7.3-next.
|
|
52
|
-
"@eslint-react/shared": "2.7.3-next.
|
|
53
|
-
"@eslint-react/var": "2.7.3-next.
|
|
49
|
+
"@eslint-react/ast": "2.7.3-next.4",
|
|
50
|
+
"@eslint-react/core": "2.7.3-next.4",
|
|
51
|
+
"@eslint-react/eff": "2.7.3-next.4",
|
|
52
|
+
"@eslint-react/shared": "2.7.3-next.4",
|
|
53
|
+
"@eslint-react/var": "2.7.3-next.4"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/react": "^19.2.
|
|
56
|
+
"@types/react": "^19.2.9",
|
|
57
57
|
"@types/react-dom": "^19.2.3",
|
|
58
|
-
"tsdown": "^0.20.0-beta.
|
|
58
|
+
"tsdown": "^0.20.0-beta.4",
|
|
59
59
|
"@local/configs": "0.0.0"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|