eslint-plugin-react-x 1.18.1-next.3 → 1.19.0-beta.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 CHANGED
@@ -41,7 +41,7 @@ var ts__default = /*#__PURE__*/_interopDefault(ts);
41
41
 
42
42
  // package.json
43
43
  var name = "eslint-plugin-react-x";
44
- var version = "1.18.1-next.3";
44
+ var version = "1.19.0-beta.2";
45
45
  var createRule = shared.createRuleForPlugin("x");
46
46
 
47
47
  // src/rules/avoid-shorthand-boolean.ts
@@ -1197,49 +1197,46 @@ function getFix(node, context) {
1197
1197
  return [
1198
1198
  fixer.removeRange([node.range[0], componentNode.range[0]]),
1199
1199
  fixer.removeRange([componentNode.range[1], node.range[1]]),
1200
- ...getParamsFixes(componentNode, context, node.typeArguments?.params ?? [], fixer)
1200
+ ...getComponentPropsFixes(
1201
+ componentNode,
1202
+ node.typeArguments?.params ?? [],
1203
+ fixer,
1204
+ context
1205
+ )
1201
1206
  ];
1202
1207
  };
1203
1208
  }
1204
- function getParamsFixes(node, context, typeArguments, fixer) {
1209
+ function getComponentPropsFixes(node, typeArguments, fixer, context) {
1210
+ const getText = (node2) => context.sourceCode.getText(node2);
1205
1211
  const [arg0, arg1] = node.params;
1206
1212
  const [typeArg0, typeArg1] = typeArguments;
1207
- if (arg0?.type !== types.AST_NODE_TYPES.Identifier) return [];
1208
- if (!arg1) {
1209
- return [fixer.replaceText(
1210
- arg0,
1211
- [
1212
- "{",
1213
- "ref,",
1214
- `...${arg0.name}`,
1215
- "}"
1216
- ].join(" ")
1217
- )];
1218
- }
1219
- if (arg1.type !== types.AST_NODE_TYPES.Identifier) return [];
1213
+ if (!arg0) return [];
1214
+ const fixedArg0Text = tsPattern.match(arg0).with({ type: types.AST_NODE_TYPES.Identifier }, (n) => tools.O.some(`...${n.name}`)).with({ type: types.AST_NODE_TYPES.ObjectPattern }, (n) => tools.O.some(n.properties.map(getText).join(", "))).otherwise(tools.O.none);
1215
+ const fixedArg1Text = tsPattern.match(arg1).with(tsPattern.P.nullish, () => tools.O.some("ref")).with({ type: types.AST_NODE_TYPES.Identifier, name: "ref" }, () => tools.O.some("ref")).with({ type: types.AST_NODE_TYPES.Identifier, name: tsPattern.P.not("ref") }, (n) => tools.O.some(`ref: ${n.name}`)).otherwise(tools.O.none);
1216
+ if (tools.O.isNone(fixedArg0Text) || tools.O.isNone(fixedArg1Text)) return [];
1217
+ const fixedPropsText = fixedArg0Text.value;
1218
+ const fixedRefText = fixedArg1Text.value;
1220
1219
  if (!typeArg0 || !typeArg1) {
1221
1220
  return [
1222
1221
  fixer.replaceText(
1223
1222
  arg0,
1224
1223
  [
1225
1224
  "{",
1226
- arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1227
- `...${arg0.name}`,
1225
+ fixedRefText + ",",
1226
+ fixedPropsText,
1228
1227
  "}"
1229
1228
  ].join(" ")
1230
1229
  ),
1231
- fixer.remove(arg1),
1232
- fixer.removeRange([arg0.range[1], arg1.range[0]])
1230
+ ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1233
1231
  ];
1234
1232
  }
1235
- const getText = (node2) => context.sourceCode.getText(node2);
1236
1233
  return [
1237
1234
  fixer.replaceText(
1238
1235
  arg0,
1239
1236
  [
1240
1237
  "{",
1241
- arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1242
- `...${arg0.name}`,
1238
+ fixedRefText + ",",
1239
+ fixedPropsText,
1243
1240
  "}:",
1244
1241
  getText(typeArg1),
1245
1242
  "&",
@@ -1249,8 +1246,7 @@ function getParamsFixes(node, context, typeArguments, fixer) {
1249
1246
  "}"
1250
1247
  ].join(" ")
1251
1248
  ),
1252
- fixer.remove(arg1),
1253
- fixer.removeRange([arg0.range[1], arg1.range[0]])
1249
+ ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1254
1250
  ];
1255
1251
  }
1256
1252
  var RULE_NAME27 = "no-implicit-key";
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ import { getTypeImmutability, isUnknown, isImmutable, isReadonlyShallow, isReado
14
14
 
15
15
  // package.json
16
16
  var name = "eslint-plugin-react-x";
17
- var version = "1.18.1-next.3";
17
+ var version = "1.19.0-beta.2";
18
18
  var createRule = createRuleForPlugin("x");
19
19
 
20
20
  // src/rules/avoid-shorthand-boolean.ts
@@ -1170,49 +1170,46 @@ function getFix(node, context) {
1170
1170
  return [
1171
1171
  fixer.removeRange([node.range[0], componentNode.range[0]]),
1172
1172
  fixer.removeRange([componentNode.range[1], node.range[1]]),
1173
- ...getParamsFixes(componentNode, context, node.typeArguments?.params ?? [], fixer)
1173
+ ...getComponentPropsFixes(
1174
+ componentNode,
1175
+ node.typeArguments?.params ?? [],
1176
+ fixer,
1177
+ context
1178
+ )
1174
1179
  ];
1175
1180
  };
1176
1181
  }
1177
- function getParamsFixes(node, context, typeArguments, fixer) {
1182
+ function getComponentPropsFixes(node, typeArguments, fixer, context) {
1183
+ const getText = (node2) => context.sourceCode.getText(node2);
1178
1184
  const [arg0, arg1] = node.params;
1179
1185
  const [typeArg0, typeArg1] = typeArguments;
1180
- if (arg0?.type !== AST_NODE_TYPES.Identifier) return [];
1181
- if (!arg1) {
1182
- return [fixer.replaceText(
1183
- arg0,
1184
- [
1185
- "{",
1186
- "ref,",
1187
- `...${arg0.name}`,
1188
- "}"
1189
- ].join(" ")
1190
- )];
1191
- }
1192
- if (arg1.type !== AST_NODE_TYPES.Identifier) return [];
1186
+ if (!arg0) return [];
1187
+ const fixedArg0Text = match(arg0).with({ type: AST_NODE_TYPES.Identifier }, (n) => O.some(`...${n.name}`)).with({ type: AST_NODE_TYPES.ObjectPattern }, (n) => O.some(n.properties.map(getText).join(", "))).otherwise(O.none);
1188
+ const fixedArg1Text = match(arg1).with(P.nullish, () => O.some("ref")).with({ type: AST_NODE_TYPES.Identifier, name: "ref" }, () => O.some("ref")).with({ type: AST_NODE_TYPES.Identifier, name: P.not("ref") }, (n) => O.some(`ref: ${n.name}`)).otherwise(O.none);
1189
+ if (O.isNone(fixedArg0Text) || O.isNone(fixedArg1Text)) return [];
1190
+ const fixedPropsText = fixedArg0Text.value;
1191
+ const fixedRefText = fixedArg1Text.value;
1193
1192
  if (!typeArg0 || !typeArg1) {
1194
1193
  return [
1195
1194
  fixer.replaceText(
1196
1195
  arg0,
1197
1196
  [
1198
1197
  "{",
1199
- arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1200
- `...${arg0.name}`,
1198
+ fixedRefText + ",",
1199
+ fixedPropsText,
1201
1200
  "}"
1202
1201
  ].join(" ")
1203
1202
  ),
1204
- fixer.remove(arg1),
1205
- fixer.removeRange([arg0.range[1], arg1.range[0]])
1203
+ ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1206
1204
  ];
1207
1205
  }
1208
- const getText = (node2) => context.sourceCode.getText(node2);
1209
1206
  return [
1210
1207
  fixer.replaceText(
1211
1208
  arg0,
1212
1209
  [
1213
1210
  "{",
1214
- arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1215
- `...${arg0.name}`,
1211
+ fixedRefText + ",",
1212
+ fixedPropsText,
1216
1213
  "}:",
1217
1214
  getText(typeArg1),
1218
1215
  "&",
@@ -1222,8 +1219,7 @@ function getParamsFixes(node, context, typeArguments, fixer) {
1222
1219
  "}"
1223
1220
  ].join(" ")
1224
1221
  ),
1225
- fixer.remove(arg1),
1226
- fixer.removeRange([arg0.range[1], arg1.range[0]])
1222
+ ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1227
1223
  ];
1228
1224
  }
1229
1225
  var RULE_NAME27 = "no-implicit-key";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-x",
3
- "version": "1.18.1-next.3",
3
+ "version": "1.19.0-beta.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
  "eslint",
@@ -49,13 +49,13 @@
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.18.1-next.3",
53
- "@eslint-react/jsx": "1.18.1-next.3",
54
- "@eslint-react/core": "1.18.1-next.3",
55
- "@eslint-react/tools": "1.18.1-next.3",
56
- "@eslint-react/shared": "1.18.1-next.3",
57
- "@eslint-react/types": "1.18.1-next.3",
58
- "@eslint-react/var": "1.18.1-next.3"
52
+ "@eslint-react/ast": "1.19.0-beta.2",
53
+ "@eslint-react/core": "1.19.0-beta.2",
54
+ "@eslint-react/jsx": "1.19.0-beta.2",
55
+ "@eslint-react/shared": "1.19.0-beta.2",
56
+ "@eslint-react/types": "1.19.0-beta.2",
57
+ "@eslint-react/var": "1.19.0-beta.2",
58
+ "@eslint-react/tools": "1.19.0-beta.2"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/react": "^19.0.1",