eslint-plugin-react-x 1.23.2-next.1 → 1.23.2-next.3

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 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.1";
45
+ var version = "1.23.2-next.3";
46
46
  var createRule = shared.createRuleForPlugin("x");
47
47
 
48
48
  // src/rules/avoid-shorthand-boolean.ts
@@ -281,7 +281,7 @@ function isReactChildrenMethod(name2) {
281
281
  return reactChildrenMethod.some((method) => method === name2);
282
282
  }
283
283
  function isUsingReactChildren(node, context) {
284
- const settings = shared.unsafeReadSettings(context.settings);
284
+ const settings = shared.getSettingsFromContext(context);
285
285
  const { callee } = node;
286
286
  if (!("property" in callee) || !("object" in callee) || !("name" in callee.property)) {
287
287
  return false;
@@ -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.normalizeSettings(shared.decodeSettings(context.settings));
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.normalizeSettings(shared.decodeSettings(context.settings));
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.normalizeSettings(shared.decodeSettings(context.settings));
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.decodeSettings(context.settings).importSource ?? "react";
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, normalizeSettings, decodeSettings, unsafeReadSettings } from '@eslint-react/shared';
3
+ import { createRuleForPlugin, getSettingsFromContext } 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.1";
18
+ var version = "1.23.2-next.3";
19
19
  var createRule = createRuleForPlugin("x");
20
20
 
21
21
  // src/rules/avoid-shorthand-boolean.ts
@@ -254,7 +254,7 @@ function isReactChildrenMethod(name2) {
254
254
  return reactChildrenMethod.some((method) => method === name2);
255
255
  }
256
256
  function isUsingReactChildren(node, context) {
257
- const settings = unsafeReadSettings(context.settings);
257
+ const settings = getSettingsFromContext(context);
258
258
  const { callee } = node;
259
259
  if (!("property" in callee) || !("object" in callee) || !("name" in callee.property)) {
260
260
  return false;
@@ -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 } = normalizeSettings(decodeSettings(context.settings));
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 } = normalizeSettings(decodeSettings(context.settings));
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 } = normalizeSettings(decodeSettings(context.settings));
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 = decodeSettings(context.settings).importSource ?? "react";
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.1",
3
+ "version": "1.23.2-next.3",
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.1",
53
- "@eslint-react/core": "1.23.2-next.1",
54
- "@eslint-react/eff": "1.23.2-next.1",
55
- "@eslint-react/jsx": "1.23.2-next.1",
56
- "@eslint-react/shared": "1.23.2-next.1",
57
- "@eslint-react/types": "1.23.2-next.1",
58
- "@eslint-react/var": "1.23.2-next.1"
52
+ "@eslint-react/ast": "1.23.2-next.3",
53
+ "@eslint-react/core": "1.23.2-next.3",
54
+ "@eslint-react/eff": "1.23.2-next.3",
55
+ "@eslint-react/shared": "1.23.2-next.3",
56
+ "@eslint-react/var": "1.23.2-next.3",
57
+ "@eslint-react/jsx": "1.23.2-next.3",
58
+ "@eslint-react/types": "1.23.2-next.3"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/react": "^19.0.2",