eslint-plugin-react-x 1.19.0-beta.2 → 1.19.0-next.0

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.19.0-beta.2";
44
+ var version = "1.19.0-next.0";
45
45
  var createRule = shared.createRuleForPlugin("x");
46
46
 
47
47
  // src/rules/avoid-shorthand-boolean.ts
@@ -1207,36 +1207,44 @@ function getFix(node, context) {
1207
1207
  };
1208
1208
  }
1209
1209
  function getComponentPropsFixes(node, typeArguments, fixer, context) {
1210
- const getText = (node2) => context.sourceCode.getText(node2);
1211
1210
  const [arg0, arg1] = node.params;
1212
1211
  const [typeArg0, typeArg1] = typeArguments;
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;
1212
+ if (arg0?.type !== types.AST_NODE_TYPES.Identifier) return [];
1213
+ if (!arg1) {
1214
+ return [fixer.replaceText(
1215
+ arg0,
1216
+ [
1217
+ "{",
1218
+ "ref,",
1219
+ `...${arg0.name}`,
1220
+ "}"
1221
+ ].join(" ")
1222
+ )];
1223
+ }
1224
+ if (arg1.type !== types.AST_NODE_TYPES.Identifier) return [];
1219
1225
  if (!typeArg0 || !typeArg1) {
1220
1226
  return [
1221
1227
  fixer.replaceText(
1222
1228
  arg0,
1223
1229
  [
1224
1230
  "{",
1225
- fixedRefText + ",",
1226
- fixedPropsText,
1231
+ arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1232
+ `...${arg0.name}`,
1227
1233
  "}"
1228
1234
  ].join(" ")
1229
1235
  ),
1230
- ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1236
+ fixer.remove(arg1),
1237
+ fixer.removeRange([arg0.range[1], arg1.range[0]])
1231
1238
  ];
1232
1239
  }
1240
+ const getText = (node2) => context.sourceCode.getText(node2);
1233
1241
  return [
1234
1242
  fixer.replaceText(
1235
1243
  arg0,
1236
1244
  [
1237
1245
  "{",
1238
- fixedRefText + ",",
1239
- fixedPropsText,
1246
+ arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1247
+ `...${arg0.name}`,
1240
1248
  "}:",
1241
1249
  getText(typeArg1),
1242
1250
  "&",
@@ -1246,7 +1254,8 @@ function getComponentPropsFixes(node, typeArguments, fixer, context) {
1246
1254
  "}"
1247
1255
  ].join(" ")
1248
1256
  ),
1249
- ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1257
+ fixer.remove(arg1),
1258
+ fixer.removeRange([arg0.range[1], arg1.range[0]])
1250
1259
  ];
1251
1260
  }
1252
1261
  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.19.0-beta.2";
17
+ var version = "1.19.0-next.0";
18
18
  var createRule = createRuleForPlugin("x");
19
19
 
20
20
  // src/rules/avoid-shorthand-boolean.ts
@@ -1180,36 +1180,44 @@ function getFix(node, context) {
1180
1180
  };
1181
1181
  }
1182
1182
  function getComponentPropsFixes(node, typeArguments, fixer, context) {
1183
- const getText = (node2) => context.sourceCode.getText(node2);
1184
1183
  const [arg0, arg1] = node.params;
1185
1184
  const [typeArg0, typeArg1] = typeArguments;
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;
1185
+ if (arg0?.type !== AST_NODE_TYPES.Identifier) return [];
1186
+ if (!arg1) {
1187
+ return [fixer.replaceText(
1188
+ arg0,
1189
+ [
1190
+ "{",
1191
+ "ref,",
1192
+ `...${arg0.name}`,
1193
+ "}"
1194
+ ].join(" ")
1195
+ )];
1196
+ }
1197
+ if (arg1.type !== AST_NODE_TYPES.Identifier) return [];
1192
1198
  if (!typeArg0 || !typeArg1) {
1193
1199
  return [
1194
1200
  fixer.replaceText(
1195
1201
  arg0,
1196
1202
  [
1197
1203
  "{",
1198
- fixedRefText + ",",
1199
- fixedPropsText,
1204
+ arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1205
+ `...${arg0.name}`,
1200
1206
  "}"
1201
1207
  ].join(" ")
1202
1208
  ),
1203
- ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1209
+ fixer.remove(arg1),
1210
+ fixer.removeRange([arg0.range[1], arg1.range[0]])
1204
1211
  ];
1205
1212
  }
1213
+ const getText = (node2) => context.sourceCode.getText(node2);
1206
1214
  return [
1207
1215
  fixer.replaceText(
1208
1216
  arg0,
1209
1217
  [
1210
1218
  "{",
1211
- fixedRefText + ",",
1212
- fixedPropsText,
1219
+ arg1.name === "ref" ? `ref,` : `ref: ${arg1.name},`,
1220
+ `...${arg0.name}`,
1213
1221
  "}:",
1214
1222
  getText(typeArg1),
1215
1223
  "&",
@@ -1219,7 +1227,8 @@ function getComponentPropsFixes(node, typeArguments, fixer, context) {
1219
1227
  "}"
1220
1228
  ].join(" ")
1221
1229
  ),
1222
- ...arg1 ? [fixer.remove(arg1), fixer.removeRange([arg0.range[1], arg1.range[0]])] : []
1230
+ fixer.remove(arg1),
1231
+ fixer.removeRange([arg0.range[1], arg1.range[0]])
1223
1232
  ];
1224
1233
  }
1225
1234
  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.19.0-beta.2",
3
+ "version": "1.19.0-next.0",
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.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"
52
+ "@eslint-react/ast": "1.19.0-next.0",
53
+ "@eslint-react/core": "1.19.0-next.0",
54
+ "@eslint-react/shared": "1.19.0-next.0",
55
+ "@eslint-react/jsx": "1.19.0-next.0",
56
+ "@eslint-react/tools": "1.19.0-next.0",
57
+ "@eslint-react/types": "1.19.0-next.0",
58
+ "@eslint-react/var": "1.19.0-next.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/react": "^19.0.1",