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 +21 -25
- package/dist/index.mjs +21 -25
- package/package.json +8 -8
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.
|
|
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
|
-
...
|
|
1200
|
+
...getComponentPropsFixes(
|
|
1201
|
+
componentNode,
|
|
1202
|
+
node.typeArguments?.params ?? [],
|
|
1203
|
+
fixer,
|
|
1204
|
+
context
|
|
1205
|
+
)
|
|
1201
1206
|
];
|
|
1202
1207
|
};
|
|
1203
1208
|
}
|
|
1204
|
-
function
|
|
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
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
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
|
-
|
|
1227
|
-
|
|
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
|
-
|
|
1242
|
-
|
|
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.
|
|
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
|
-
...
|
|
1173
|
+
...getComponentPropsFixes(
|
|
1174
|
+
componentNode,
|
|
1175
|
+
node.typeArguments?.params ?? [],
|
|
1176
|
+
fixer,
|
|
1177
|
+
context
|
|
1178
|
+
)
|
|
1174
1179
|
];
|
|
1175
1180
|
};
|
|
1176
1181
|
}
|
|
1177
|
-
function
|
|
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
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
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
|
-
|
|
1200
|
-
|
|
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
|
-
|
|
1215
|
-
|
|
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.
|
|
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.
|
|
53
|
-
"@eslint-react/
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/
|
|
56
|
-
"@eslint-react/
|
|
57
|
-
"@eslint-react/
|
|
58
|
-
"@eslint-react/
|
|
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",
|