eslint-plugin-react-x 1.23.2-next.1 → 1.23.2-next.2
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 +17 -7
- package/dist/index.mjs +18 -8
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ var ts__default = /*#__PURE__*/_interopDefault(ts);
|
|
|
42
42
|
|
|
43
43
|
// package.json
|
|
44
44
|
var name = "eslint-plugin-react-x";
|
|
45
|
-
var version = "1.23.2-next.
|
|
45
|
+
var version = "1.23.2-next.2";
|
|
46
46
|
var createRule = shared.createRuleForPlugin("x");
|
|
47
47
|
|
|
48
48
|
// src/rules/avoid-shorthand-boolean.ts
|
|
@@ -906,7 +906,7 @@ var no_context_provider_default = createRule({
|
|
|
906
906
|
name: RULE_NAME19,
|
|
907
907
|
create(context) {
|
|
908
908
|
if (!context.sourceCode.text.includes(".Provider")) return {};
|
|
909
|
-
const { version: version2 } = shared.
|
|
909
|
+
const { version: version2 } = shared.getSettingsFromContext(context);
|
|
910
910
|
if (compareVersions.compare(version2, "19.0.0", "<")) return {};
|
|
911
911
|
return {
|
|
912
912
|
JSXElement(node) {
|
|
@@ -1202,7 +1202,7 @@ var no_forward_ref_default = createRule({
|
|
|
1202
1202
|
name: RULE_NAME25,
|
|
1203
1203
|
create(context) {
|
|
1204
1204
|
if (!context.sourceCode.text.includes("forwardRef")) return {};
|
|
1205
|
-
const { version: version2 } = shared.
|
|
1205
|
+
const { version: version2 } = shared.getSettingsFromContext(context);
|
|
1206
1206
|
if (compareVersions.compare(version2, "19.0.0", "<")) return {};
|
|
1207
1207
|
return {
|
|
1208
1208
|
CallExpression(node) {
|
|
@@ -1425,7 +1425,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1425
1425
|
name: RULE_NAME27,
|
|
1426
1426
|
create(context) {
|
|
1427
1427
|
if (!context.sourceCode.text.includes("&&") && !context.sourceCode.text.includes("?")) return {};
|
|
1428
|
-
const { version: version2 } = shared.
|
|
1428
|
+
const { version: version2 } = shared.getSettingsFromContext(context);
|
|
1429
1429
|
const allowedVariants = [
|
|
1430
1430
|
"any",
|
|
1431
1431
|
"boolean",
|
|
@@ -2724,7 +2724,7 @@ var prefer_react_namespace_import_default = createRule({
|
|
|
2724
2724
|
},
|
|
2725
2725
|
name: RULE_NAME46,
|
|
2726
2726
|
create(context) {
|
|
2727
|
-
const importSource = shared.
|
|
2727
|
+
const importSource = shared.getSettingsFromContext(context).importSource ?? "react";
|
|
2728
2728
|
return {
|
|
2729
2729
|
[`ImportDeclaration[source.value="${importSource}"] ImportDefaultSpecifier`](node) {
|
|
2730
2730
|
const hasOtherSpecifiers = node.parent.specifiers.length > 1;
|
|
@@ -2845,7 +2845,8 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2845
2845
|
});
|
|
2846
2846
|
var RULE_NAME49 = "prefer-shorthand-fragment";
|
|
2847
2847
|
var RULE_FEATURES48 = [
|
|
2848
|
-
"CHK"
|
|
2848
|
+
"CHK",
|
|
2849
|
+
"FIX"
|
|
2849
2850
|
];
|
|
2850
2851
|
var prefer_shorthand_fragment_default = createRule({
|
|
2851
2852
|
meta: {
|
|
@@ -2854,6 +2855,7 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2854
2855
|
description: "enforce using fragment syntax instead of 'Fragment' component",
|
|
2855
2856
|
[Symbol.for("rule_features")]: RULE_FEATURES48
|
|
2856
2857
|
},
|
|
2858
|
+
fixable: "code",
|
|
2857
2859
|
messages: {
|
|
2858
2860
|
preferShorthandFragment: "Use fragment shorthand syntax instead of 'Fragment' component."
|
|
2859
2861
|
},
|
|
@@ -2867,7 +2869,15 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2867
2869
|
if (hasAttributes) return eff.O.none();
|
|
2868
2870
|
return eff.O.some({
|
|
2869
2871
|
messageId: "preferShorthandFragment",
|
|
2870
|
-
node
|
|
2872
|
+
node,
|
|
2873
|
+
fix: (fixer) => {
|
|
2874
|
+
const { closingElement, openingElement } = node;
|
|
2875
|
+
if (!closingElement) return [];
|
|
2876
|
+
return [
|
|
2877
|
+
fixer.replaceTextRange([openingElement.range[0], openingElement.range[1]], "<>"),
|
|
2878
|
+
fixer.replaceTextRange([closingElement.range[0], closingElement.range[1]], "</>")
|
|
2879
|
+
];
|
|
2880
|
+
}
|
|
2871
2881
|
});
|
|
2872
2882
|
}
|
|
2873
2883
|
return {
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { F, O, or, isString, isNullable } from '@eslint-react/eff';
|
|
2
2
|
import * as JSX7 from '@eslint-react/jsx';
|
|
3
|
-
import { createRuleForPlugin,
|
|
3
|
+
import { createRuleForPlugin, getSettingsFromContext, unsafeReadSettings } from '@eslint-react/shared';
|
|
4
4
|
import * as AST11 from '@eslint-react/ast';
|
|
5
5
|
import { isForwardRefCall, isThisSetState, isClassComponent, isCreateElementCall, isCloneElementCall, isChildrenCount, isChildrenForEach, isChildrenMap, isChildrenOnly, isChildrenToArray, useComponentCollectorLegacy, isCreateRefCall, isComponentName, useComponentCollector, ERFunctionComponentFlag, isChildrenToArrayCall, ERComponentHint, isDirectValueOfRenderPropertyLoose, isDeclaredInRenderPropLoose, isInsideCreateElementProps, isInsideRenderMethod, ERClassComponentFlag, isReactHookCall, isInitializedFromReact } from '@eslint-react/core';
|
|
6
6
|
import { AST_NODE_TYPES } from '@typescript-eslint/types';
|
|
@@ -15,7 +15,7 @@ import { getTypeImmutability, isUnknown, isImmutable, isReadonlyShallow, isReado
|
|
|
15
15
|
|
|
16
16
|
// package.json
|
|
17
17
|
var name = "eslint-plugin-react-x";
|
|
18
|
-
var version = "1.23.2-next.
|
|
18
|
+
var version = "1.23.2-next.2";
|
|
19
19
|
var createRule = createRuleForPlugin("x");
|
|
20
20
|
|
|
21
21
|
// src/rules/avoid-shorthand-boolean.ts
|
|
@@ -879,7 +879,7 @@ var no_context_provider_default = createRule({
|
|
|
879
879
|
name: RULE_NAME19,
|
|
880
880
|
create(context) {
|
|
881
881
|
if (!context.sourceCode.text.includes(".Provider")) return {};
|
|
882
|
-
const { version: version2 } =
|
|
882
|
+
const { version: version2 } = getSettingsFromContext(context);
|
|
883
883
|
if (compare(version2, "19.0.0", "<")) return {};
|
|
884
884
|
return {
|
|
885
885
|
JSXElement(node) {
|
|
@@ -1175,7 +1175,7 @@ var no_forward_ref_default = createRule({
|
|
|
1175
1175
|
name: RULE_NAME25,
|
|
1176
1176
|
create(context) {
|
|
1177
1177
|
if (!context.sourceCode.text.includes("forwardRef")) return {};
|
|
1178
|
-
const { version: version2 } =
|
|
1178
|
+
const { version: version2 } = getSettingsFromContext(context);
|
|
1179
1179
|
if (compare(version2, "19.0.0", "<")) return {};
|
|
1180
1180
|
return {
|
|
1181
1181
|
CallExpression(node) {
|
|
@@ -1398,7 +1398,7 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1398
1398
|
name: RULE_NAME27,
|
|
1399
1399
|
create(context) {
|
|
1400
1400
|
if (!context.sourceCode.text.includes("&&") && !context.sourceCode.text.includes("?")) return {};
|
|
1401
|
-
const { version: version2 } =
|
|
1401
|
+
const { version: version2 } = getSettingsFromContext(context);
|
|
1402
1402
|
const allowedVariants = [
|
|
1403
1403
|
"any",
|
|
1404
1404
|
"boolean",
|
|
@@ -2697,7 +2697,7 @@ var prefer_react_namespace_import_default = createRule({
|
|
|
2697
2697
|
},
|
|
2698
2698
|
name: RULE_NAME46,
|
|
2699
2699
|
create(context) {
|
|
2700
|
-
const importSource =
|
|
2700
|
+
const importSource = getSettingsFromContext(context).importSource ?? "react";
|
|
2701
2701
|
return {
|
|
2702
2702
|
[`ImportDeclaration[source.value="${importSource}"] ImportDefaultSpecifier`](node) {
|
|
2703
2703
|
const hasOtherSpecifiers = node.parent.specifiers.length > 1;
|
|
@@ -2818,7 +2818,8 @@ var prefer_shorthand_boolean_default = createRule({
|
|
|
2818
2818
|
});
|
|
2819
2819
|
var RULE_NAME49 = "prefer-shorthand-fragment";
|
|
2820
2820
|
var RULE_FEATURES48 = [
|
|
2821
|
-
"CHK"
|
|
2821
|
+
"CHK",
|
|
2822
|
+
"FIX"
|
|
2822
2823
|
];
|
|
2823
2824
|
var prefer_shorthand_fragment_default = createRule({
|
|
2824
2825
|
meta: {
|
|
@@ -2827,6 +2828,7 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2827
2828
|
description: "enforce using fragment syntax instead of 'Fragment' component",
|
|
2828
2829
|
[Symbol.for("rule_features")]: RULE_FEATURES48
|
|
2829
2830
|
},
|
|
2831
|
+
fixable: "code",
|
|
2830
2832
|
messages: {
|
|
2831
2833
|
preferShorthandFragment: "Use fragment shorthand syntax instead of 'Fragment' component."
|
|
2832
2834
|
},
|
|
@@ -2840,7 +2842,15 @@ var prefer_shorthand_fragment_default = createRule({
|
|
|
2840
2842
|
if (hasAttributes) return O.none();
|
|
2841
2843
|
return O.some({
|
|
2842
2844
|
messageId: "preferShorthandFragment",
|
|
2843
|
-
node
|
|
2845
|
+
node,
|
|
2846
|
+
fix: (fixer) => {
|
|
2847
|
+
const { closingElement, openingElement } = node;
|
|
2848
|
+
if (!closingElement) return [];
|
|
2849
|
+
return [
|
|
2850
|
+
fixer.replaceTextRange([openingElement.range[0], openingElement.range[1]], "<>"),
|
|
2851
|
+
fixer.replaceTextRange([closingElement.range[0], closingElement.range[1]], "</>")
|
|
2852
|
+
];
|
|
2853
|
+
}
|
|
2844
2854
|
});
|
|
2845
2855
|
}
|
|
2846
2856
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-x",
|
|
3
|
-
"version": "1.23.2-next.
|
|
3
|
+
"version": "1.23.2-next.2",
|
|
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
|
"react",
|
|
@@ -49,13 +49,13 @@
|
|
|
49
49
|
"string-ts": "^2.2.0",
|
|
50
50
|
"ts-api-utils": "^2.0.0",
|
|
51
51
|
"ts-pattern": "^5.6.0",
|
|
52
|
-
"@eslint-react/ast": "1.23.2-next.
|
|
53
|
-
"@eslint-react/
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/jsx": "1.23.2-next.
|
|
56
|
-
"@eslint-react/
|
|
57
|
-
"@eslint-react/types": "1.23.2-next.
|
|
58
|
-
"@eslint-react/
|
|
52
|
+
"@eslint-react/ast": "1.23.2-next.2",
|
|
53
|
+
"@eslint-react/eff": "1.23.2-next.2",
|
|
54
|
+
"@eslint-react/core": "1.23.2-next.2",
|
|
55
|
+
"@eslint-react/jsx": "1.23.2-next.2",
|
|
56
|
+
"@eslint-react/var": "1.23.2-next.2",
|
|
57
|
+
"@eslint-react/types": "1.23.2-next.2",
|
|
58
|
+
"@eslint-react/shared": "1.23.2-next.2"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/react": "^19.0.2",
|