eslint-plugin-react-x 3.0.0-next.0 → 3.0.0-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 +332 -246
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_ESLINT_REACT_SETTINGS, WEBSITE_URL, coerceSettings, defineRuleListener, getConfigAdapters, getSettingsFromContext, report, toRegExp } from "@eslint-react/shared";
|
|
1
|
+
import { DEFAULT_ESLINT_REACT_SETTINGS, IMPURE_CONSTRUCTORS, IMPURE_FUNCTIONS, WEBSITE_URL, coerceSettings, defineRuleListener, getConfigAdapters, getSettingsFromContext, report, toRegExp } from "@eslint-react/shared";
|
|
2
2
|
import * as ast from "@eslint-react/ast";
|
|
3
3
|
import * as core from "@eslint-react/core";
|
|
4
4
|
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
@@ -66,7 +66,7 @@ const rules$7 = {
|
|
|
66
66
|
//#endregion
|
|
67
67
|
//#region package.json
|
|
68
68
|
var name$6 = "eslint-plugin-react-x";
|
|
69
|
-
var version = "3.0.0-next.
|
|
69
|
+
var version = "3.0.0-next.2";
|
|
70
70
|
|
|
71
71
|
//#endregion
|
|
72
72
|
//#region src/utils/create-rule.ts
|
|
@@ -221,7 +221,7 @@ function getTypeVariants(types) {
|
|
|
221
221
|
|
|
222
222
|
//#endregion
|
|
223
223
|
//#region src/rules/component-hook-factories.ts
|
|
224
|
-
const RULE_NAME$
|
|
224
|
+
const RULE_NAME$64 = "component-hook-factories";
|
|
225
225
|
var component_hook_factories_default = createRule({
|
|
226
226
|
meta: {
|
|
227
227
|
type: "problem",
|
|
@@ -232,11 +232,11 @@ var component_hook_factories_default = createRule({
|
|
|
232
232
|
},
|
|
233
233
|
schema: []
|
|
234
234
|
},
|
|
235
|
-
name: RULE_NAME$
|
|
236
|
-
create: create$
|
|
235
|
+
name: RULE_NAME$64,
|
|
236
|
+
create: create$64,
|
|
237
237
|
defaultOptions: []
|
|
238
238
|
});
|
|
239
|
-
function create$
|
|
239
|
+
function create$64(context) {
|
|
240
240
|
const hint = core.ComponentDetectionHint.DoNotIncludeJsxWithNumberValue | core.ComponentDetectionHint.DoNotIncludeJsxWithBooleanValue | core.ComponentDetectionHint.DoNotIncludeJsxWithNullValue | core.ComponentDetectionHint.DoNotIncludeJsxWithStringValue | core.ComponentDetectionHint.DoNotIncludeJsxWithUndefinedValue | core.ComponentDetectionHint.RequireBothSidesOfLogicalExpressionToBeJsx | core.ComponentDetectionHint.RequireBothBranchesOfConditionalExpressionToBeJsx | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedInArrayPattern | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedInArrayExpression | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayMapCallback;
|
|
241
241
|
const fCollector = core.useComponentCollector(context, { hint });
|
|
242
242
|
const cCollector = core.useComponentCollectorLegacy(context);
|
|
@@ -280,7 +280,7 @@ function create$63(context) {
|
|
|
280
280
|
|
|
281
281
|
//#endregion
|
|
282
282
|
//#region src/rules/error-boundaries.ts
|
|
283
|
-
const RULE_NAME$
|
|
283
|
+
const RULE_NAME$63 = "error-boundaries";
|
|
284
284
|
var error_boundaries_default = createRule({
|
|
285
285
|
meta: {
|
|
286
286
|
type: "problem",
|
|
@@ -291,11 +291,11 @@ var error_boundaries_default = createRule({
|
|
|
291
291
|
},
|
|
292
292
|
schema: []
|
|
293
293
|
},
|
|
294
|
-
name: RULE_NAME$
|
|
295
|
-
create: create$
|
|
294
|
+
name: RULE_NAME$63,
|
|
295
|
+
create: create$63,
|
|
296
296
|
defaultOptions: []
|
|
297
297
|
});
|
|
298
|
-
function create$
|
|
298
|
+
function create$63(context) {
|
|
299
299
|
if (!context.sourceCode.text.includes("try")) return {};
|
|
300
300
|
const { ctx, visitor } = core.useComponentCollector(context);
|
|
301
301
|
const reported = /* @__PURE__ */ new Set();
|
|
@@ -329,7 +329,7 @@ function create$62(context) {
|
|
|
329
329
|
|
|
330
330
|
//#endregion
|
|
331
331
|
//#region src/rules/exhaustive-deps.ts
|
|
332
|
-
const RULE_NAME$
|
|
332
|
+
const RULE_NAME$62 = "exhaustive-deps";
|
|
333
333
|
/**
|
|
334
334
|
* Built-in hooks that accept dependency arrays.
|
|
335
335
|
* Maps hook name to the index of the callback argument.
|
|
@@ -508,11 +508,11 @@ var exhaustive_deps_default = createRule({
|
|
|
508
508
|
properties: { additionalHooks: { type: "string" } }
|
|
509
509
|
}]
|
|
510
510
|
},
|
|
511
|
-
name: RULE_NAME$
|
|
512
|
-
create: create$
|
|
511
|
+
name: RULE_NAME$62,
|
|
512
|
+
create: create$62,
|
|
513
513
|
defaultOptions: [{}]
|
|
514
514
|
});
|
|
515
|
-
function create$
|
|
515
|
+
function create$62(context) {
|
|
516
516
|
const additionalHooks = context.options[0]?.additionalHooks;
|
|
517
517
|
const additionalHooksRegex = additionalHooks != null && additionalHooks.length > 0 ? new RegExp(additionalHooks) : null;
|
|
518
518
|
/** Collected hook calls for later analysis. */
|
|
@@ -724,7 +724,7 @@ function create$61(context) {
|
|
|
724
724
|
|
|
725
725
|
//#endregion
|
|
726
726
|
//#region src/rules/jsx-dollar.ts
|
|
727
|
-
const RULE_NAME$
|
|
727
|
+
const RULE_NAME$61 = "jsx-dollar";
|
|
728
728
|
var jsx_dollar_default = createRule({
|
|
729
729
|
meta: {
|
|
730
730
|
type: "problem",
|
|
@@ -737,11 +737,11 @@ var jsx_dollar_default = createRule({
|
|
|
737
737
|
},
|
|
738
738
|
schema: []
|
|
739
739
|
},
|
|
740
|
-
name: RULE_NAME$
|
|
741
|
-
create: create$
|
|
740
|
+
name: RULE_NAME$61,
|
|
741
|
+
create: create$61,
|
|
742
742
|
defaultOptions: []
|
|
743
743
|
});
|
|
744
|
-
function create$
|
|
744
|
+
function create$61(context) {
|
|
745
745
|
/**
|
|
746
746
|
* Visitor function for JSXElement and JSXFragment nodes
|
|
747
747
|
* @param node The JSXElement or JSXFragment node to be checked
|
|
@@ -782,7 +782,7 @@ function create$60(context) {
|
|
|
782
782
|
|
|
783
783
|
//#endregion
|
|
784
784
|
//#region src/rules/jsx-key-before-spread.ts
|
|
785
|
-
const RULE_NAME$
|
|
785
|
+
const RULE_NAME$60 = "jsx-key-before-spread";
|
|
786
786
|
var jsx_key_before_spread_default = createRule({
|
|
787
787
|
meta: {
|
|
788
788
|
type: "problem",
|
|
@@ -790,11 +790,11 @@ var jsx_key_before_spread_default = createRule({
|
|
|
790
790
|
messages: { default: "The 'key' prop must be placed before any spread props when using the new JSX transform." },
|
|
791
791
|
schema: []
|
|
792
792
|
},
|
|
793
|
-
name: RULE_NAME$
|
|
794
|
-
create: create$
|
|
793
|
+
name: RULE_NAME$60,
|
|
794
|
+
create: create$60,
|
|
795
795
|
defaultOptions: []
|
|
796
796
|
});
|
|
797
|
-
function create$
|
|
797
|
+
function create$60(context) {
|
|
798
798
|
const { jsx } = {
|
|
799
799
|
...core.getJsxConfigFromContext(context),
|
|
800
800
|
...core.getJsxConfigFromAnnotation(context)
|
|
@@ -818,7 +818,7 @@ function create$59(context) {
|
|
|
818
818
|
|
|
819
819
|
//#endregion
|
|
820
820
|
//#region src/rules/jsx-no-comment-textnodes.ts
|
|
821
|
-
const RULE_NAME$
|
|
821
|
+
const RULE_NAME$59 = "jsx-no-comment-textnodes";
|
|
822
822
|
var jsx_no_comment_textnodes_default = createRule({
|
|
823
823
|
meta: {
|
|
824
824
|
type: "problem",
|
|
@@ -826,11 +826,11 @@ var jsx_no_comment_textnodes_default = createRule({
|
|
|
826
826
|
messages: { default: "Possible misused comment in text node. Comments inside children section of tag should be placed inside braces." },
|
|
827
827
|
schema: []
|
|
828
828
|
},
|
|
829
|
-
name: RULE_NAME$
|
|
830
|
-
create: create$
|
|
829
|
+
name: RULE_NAME$59,
|
|
830
|
+
create: create$59,
|
|
831
831
|
defaultOptions: []
|
|
832
832
|
});
|
|
833
|
-
function create$
|
|
833
|
+
function create$59(context) {
|
|
834
834
|
function hasCommentLike(node) {
|
|
835
835
|
if (ast.isOneOf([AST_NODE_TYPES.JSXAttribute, AST_NODE_TYPES.JSXExpressionContainer])(node.parent)) return false;
|
|
836
836
|
return /^\s*\/(?:\/|\*)/mu.test(context.sourceCode.getText(node));
|
|
@@ -851,7 +851,7 @@ function create$58(context) {
|
|
|
851
851
|
|
|
852
852
|
//#endregion
|
|
853
853
|
//#region src/rules/jsx-no-duplicate-props.ts
|
|
854
|
-
const RULE_NAME$
|
|
854
|
+
const RULE_NAME$58 = "jsx-no-duplicate-props";
|
|
855
855
|
var jsx_no_duplicate_props_default = createRule({
|
|
856
856
|
meta: {
|
|
857
857
|
type: "problem",
|
|
@@ -859,11 +859,11 @@ var jsx_no_duplicate_props_default = createRule({
|
|
|
859
859
|
messages: { default: "This JSX property is assigned multiple times." },
|
|
860
860
|
schema: []
|
|
861
861
|
},
|
|
862
|
-
name: RULE_NAME$
|
|
863
|
-
create: create$
|
|
862
|
+
name: RULE_NAME$58,
|
|
863
|
+
create: create$58,
|
|
864
864
|
defaultOptions: []
|
|
865
865
|
});
|
|
866
|
-
function create$
|
|
866
|
+
function create$58(context) {
|
|
867
867
|
return { JSXOpeningElement(node) {
|
|
868
868
|
const props = [];
|
|
869
869
|
for (const attr of node.attributes) {
|
|
@@ -884,7 +884,7 @@ function create$57(context) {
|
|
|
884
884
|
|
|
885
885
|
//#endregion
|
|
886
886
|
//#region src/rules/jsx-no-iife.ts
|
|
887
|
-
const RULE_NAME$
|
|
887
|
+
const RULE_NAME$57 = "jsx-no-iife";
|
|
888
888
|
var jsx_no_iife_default = createRule({
|
|
889
889
|
meta: {
|
|
890
890
|
type: "problem",
|
|
@@ -892,11 +892,11 @@ var jsx_no_iife_default = createRule({
|
|
|
892
892
|
messages: { default: "Avoid using immediately-invoked function expressions in JSX." },
|
|
893
893
|
schema: []
|
|
894
894
|
},
|
|
895
|
-
name: RULE_NAME$
|
|
896
|
-
create: create$
|
|
895
|
+
name: RULE_NAME$57,
|
|
896
|
+
create: create$57,
|
|
897
897
|
defaultOptions: []
|
|
898
898
|
});
|
|
899
|
-
function create$
|
|
899
|
+
function create$57(context) {
|
|
900
900
|
return {
|
|
901
901
|
"JSXElement :function"(node) {
|
|
902
902
|
if (node.parent.type === AST_NODE_TYPES.CallExpression && node.parent.callee === node) context.report({
|
|
@@ -915,7 +915,7 @@ function create$56(context) {
|
|
|
915
915
|
|
|
916
916
|
//#endregion
|
|
917
917
|
//#region src/rules/jsx-no-undef.ts
|
|
918
|
-
const RULE_NAME$
|
|
918
|
+
const RULE_NAME$56 = "jsx-no-undef";
|
|
919
919
|
var jsx_no_undef_default = createRule({
|
|
920
920
|
meta: {
|
|
921
921
|
type: "problem",
|
|
@@ -923,11 +923,11 @@ var jsx_no_undef_default = createRule({
|
|
|
923
923
|
messages: { default: "JSX variable '{{name}}' is not defined." },
|
|
924
924
|
schema: []
|
|
925
925
|
},
|
|
926
|
-
name: RULE_NAME$
|
|
927
|
-
create: create$
|
|
926
|
+
name: RULE_NAME$56,
|
|
927
|
+
create: create$56,
|
|
928
928
|
defaultOptions: []
|
|
929
929
|
});
|
|
930
|
-
function create$
|
|
930
|
+
function create$56(context) {
|
|
931
931
|
return { JSXOpeningElement(node) {
|
|
932
932
|
const name = match(node.name).with({ type: AST_NODE_TYPES.JSXIdentifier }, (n) => n.name).with({
|
|
933
933
|
type: AST_NODE_TYPES.JSXMemberExpression,
|
|
@@ -946,7 +946,7 @@ function create$55(context) {
|
|
|
946
946
|
|
|
947
947
|
//#endregion
|
|
948
948
|
//#region src/rules/jsx-shorthand-boolean.ts
|
|
949
|
-
const RULE_NAME$
|
|
949
|
+
const RULE_NAME$55 = "jsx-shorthand-boolean";
|
|
950
950
|
const defaultOptions$3 = [1];
|
|
951
951
|
const schema$3 = [{
|
|
952
952
|
type: "integer",
|
|
@@ -960,11 +960,11 @@ var jsx_shorthand_boolean_default = createRule({
|
|
|
960
960
|
messages: { default: "{{message}}" },
|
|
961
961
|
schema: schema$3
|
|
962
962
|
},
|
|
963
|
-
name: RULE_NAME$
|
|
964
|
-
create: create$
|
|
963
|
+
name: RULE_NAME$55,
|
|
964
|
+
create: create$55,
|
|
965
965
|
defaultOptions: defaultOptions$3
|
|
966
966
|
});
|
|
967
|
-
function create$
|
|
967
|
+
function create$55(context) {
|
|
968
968
|
const policy = context.options[0] ?? defaultOptions$3[0];
|
|
969
969
|
return { JSXAttribute(node) {
|
|
970
970
|
const { value } = node;
|
|
@@ -992,7 +992,7 @@ function create$54(context) {
|
|
|
992
992
|
|
|
993
993
|
//#endregion
|
|
994
994
|
//#region src/rules/jsx-shorthand-fragment.ts
|
|
995
|
-
const RULE_NAME$
|
|
995
|
+
const RULE_NAME$54 = "jsx-shorthand-fragment";
|
|
996
996
|
const defaultOptions$2 = [1];
|
|
997
997
|
const schema$2 = [{
|
|
998
998
|
type: "integer",
|
|
@@ -1006,11 +1006,11 @@ var jsx_shorthand_fragment_default = createRule({
|
|
|
1006
1006
|
messages: { default: "{{message}}" },
|
|
1007
1007
|
schema: schema$2
|
|
1008
1008
|
},
|
|
1009
|
-
name: RULE_NAME$
|
|
1010
|
-
create: create$
|
|
1009
|
+
name: RULE_NAME$54,
|
|
1010
|
+
create: create$54,
|
|
1011
1011
|
defaultOptions: defaultOptions$2
|
|
1012
1012
|
});
|
|
1013
|
-
function create$
|
|
1013
|
+
function create$54(context) {
|
|
1014
1014
|
const policy = context.options[0] ?? defaultOptions$2[0];
|
|
1015
1015
|
const jsxConfig = {
|
|
1016
1016
|
...core.getJsxConfigFromContext(context),
|
|
@@ -1045,7 +1045,7 @@ function create$53(context) {
|
|
|
1045
1045
|
|
|
1046
1046
|
//#endregion
|
|
1047
1047
|
//#region src/rules/jsx-uses-react.ts
|
|
1048
|
-
const RULE_NAME$
|
|
1048
|
+
const RULE_NAME$53 = "jsx-uses-react";
|
|
1049
1049
|
var jsx_uses_react_default = createRule({
|
|
1050
1050
|
meta: {
|
|
1051
1051
|
type: "problem",
|
|
@@ -1053,11 +1053,11 @@ var jsx_uses_react_default = createRule({
|
|
|
1053
1053
|
messages: { default: "Marked {{name}} as used." },
|
|
1054
1054
|
schema: []
|
|
1055
1055
|
},
|
|
1056
|
-
name: RULE_NAME$
|
|
1057
|
-
create: create$
|
|
1056
|
+
name: RULE_NAME$53,
|
|
1057
|
+
create: create$53,
|
|
1058
1058
|
defaultOptions: []
|
|
1059
1059
|
});
|
|
1060
|
-
function create$
|
|
1060
|
+
function create$53(context) {
|
|
1061
1061
|
const { jsx, jsxFactory, jsxFragmentFactory } = {
|
|
1062
1062
|
...core.getJsxConfigFromContext(context),
|
|
1063
1063
|
...core.getJsxConfigFromAnnotation(context)
|
|
@@ -1088,7 +1088,7 @@ function debugReport(context, node, name) {
|
|
|
1088
1088
|
|
|
1089
1089
|
//#endregion
|
|
1090
1090
|
//#region src/rules/jsx-uses-vars.ts
|
|
1091
|
-
const RULE_NAME$
|
|
1091
|
+
const RULE_NAME$52 = "jsx-uses-vars";
|
|
1092
1092
|
var jsx_uses_vars_default = createRule({
|
|
1093
1093
|
meta: {
|
|
1094
1094
|
type: "problem",
|
|
@@ -1096,11 +1096,11 @@ var jsx_uses_vars_default = createRule({
|
|
|
1096
1096
|
messages: { default: "An identifier in JSX is marked as used." },
|
|
1097
1097
|
schema: []
|
|
1098
1098
|
},
|
|
1099
|
-
name: RULE_NAME$
|
|
1100
|
-
create: create$
|
|
1099
|
+
name: RULE_NAME$52,
|
|
1100
|
+
create: create$52,
|
|
1101
1101
|
defaultOptions: []
|
|
1102
1102
|
});
|
|
1103
|
-
function create$
|
|
1103
|
+
function create$52(context) {
|
|
1104
1104
|
return { JSXOpeningElement(node) {
|
|
1105
1105
|
switch (node.name.type) {
|
|
1106
1106
|
case AST_NODE_TYPES.JSXIdentifier:
|
|
@@ -1118,7 +1118,7 @@ function create$51(context) {
|
|
|
1118
1118
|
|
|
1119
1119
|
//#endregion
|
|
1120
1120
|
//#region src/rules/no-access-state-in-setstate.ts
|
|
1121
|
-
const RULE_NAME$
|
|
1121
|
+
const RULE_NAME$51 = "no-access-state-in-setstate";
|
|
1122
1122
|
function isKeyLiteral$2(node, key) {
|
|
1123
1123
|
return match(key).with({ type: AST_NODE_TYPES.Literal }, constTrue).with({
|
|
1124
1124
|
type: AST_NODE_TYPES.TemplateLiteral,
|
|
@@ -1132,11 +1132,11 @@ var no_access_state_in_setstate_default = createRule({
|
|
|
1132
1132
|
messages: { default: "Do not access 'this.state' within 'setState'. Use the update function instead." },
|
|
1133
1133
|
schema: []
|
|
1134
1134
|
},
|
|
1135
|
-
name: RULE_NAME$
|
|
1136
|
-
create: create$
|
|
1135
|
+
name: RULE_NAME$51,
|
|
1136
|
+
create: create$51,
|
|
1137
1137
|
defaultOptions: []
|
|
1138
1138
|
});
|
|
1139
|
-
function create$
|
|
1139
|
+
function create$51(context) {
|
|
1140
1140
|
if (!context.sourceCode.text.includes("setState")) return {};
|
|
1141
1141
|
const classStack = [];
|
|
1142
1142
|
const methodStack = [];
|
|
@@ -1207,7 +1207,7 @@ function create$50(context) {
|
|
|
1207
1207
|
|
|
1208
1208
|
//#endregion
|
|
1209
1209
|
//#region src/rules/no-array-index-key.ts
|
|
1210
|
-
const RULE_NAME$
|
|
1210
|
+
const RULE_NAME$50 = "no-array-index-key";
|
|
1211
1211
|
const REACT_CHILDREN_METHOD = ["forEach", "map"];
|
|
1212
1212
|
function getIndexParamPosition(methodName) {
|
|
1213
1213
|
switch (methodName) {
|
|
@@ -1266,11 +1266,11 @@ var no_array_index_key_default = createRule({
|
|
|
1266
1266
|
messages: { default: "Do not use item index in the array as its key." },
|
|
1267
1267
|
schema: []
|
|
1268
1268
|
},
|
|
1269
|
-
name: RULE_NAME$
|
|
1270
|
-
create: create$
|
|
1269
|
+
name: RULE_NAME$50,
|
|
1270
|
+
create: create$50,
|
|
1271
1271
|
defaultOptions: []
|
|
1272
1272
|
});
|
|
1273
|
-
function create$
|
|
1273
|
+
function create$50(context) {
|
|
1274
1274
|
const indexParamNames = [];
|
|
1275
1275
|
function isArrayIndex(node) {
|
|
1276
1276
|
return node.type === AST_NODE_TYPES.Identifier && indexParamNames.some((name) => name != null && name === node.name);
|
|
@@ -1336,7 +1336,7 @@ function create$49(context) {
|
|
|
1336
1336
|
|
|
1337
1337
|
//#endregion
|
|
1338
1338
|
//#region src/rules/no-children-count.ts
|
|
1339
|
-
const RULE_NAME$
|
|
1339
|
+
const RULE_NAME$49 = "no-children-count";
|
|
1340
1340
|
var no_children_count_default = createRule({
|
|
1341
1341
|
meta: {
|
|
1342
1342
|
type: "problem",
|
|
@@ -1344,11 +1344,11 @@ var no_children_count_default = createRule({
|
|
|
1344
1344
|
messages: { default: "Using 'Children.count' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1345
1345
|
schema: []
|
|
1346
1346
|
},
|
|
1347
|
-
name: RULE_NAME$
|
|
1348
|
-
create: create$
|
|
1347
|
+
name: RULE_NAME$49,
|
|
1348
|
+
create: create$49,
|
|
1349
1349
|
defaultOptions: []
|
|
1350
1350
|
});
|
|
1351
|
-
function create$
|
|
1351
|
+
function create$49(context) {
|
|
1352
1352
|
return { MemberExpression(node) {
|
|
1353
1353
|
if (core.isChildrenCount(context, node)) context.report({
|
|
1354
1354
|
messageId: "default",
|
|
@@ -1359,7 +1359,7 @@ function create$48(context) {
|
|
|
1359
1359
|
|
|
1360
1360
|
//#endregion
|
|
1361
1361
|
//#region src/rules/no-children-for-each.ts
|
|
1362
|
-
const RULE_NAME$
|
|
1362
|
+
const RULE_NAME$48 = "no-children-for-each";
|
|
1363
1363
|
var no_children_for_each_default = createRule({
|
|
1364
1364
|
meta: {
|
|
1365
1365
|
type: "problem",
|
|
@@ -1367,11 +1367,11 @@ var no_children_for_each_default = createRule({
|
|
|
1367
1367
|
messages: { default: "Using 'Children.forEach' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1368
1368
|
schema: []
|
|
1369
1369
|
},
|
|
1370
|
-
name: RULE_NAME$
|
|
1371
|
-
create: create$
|
|
1370
|
+
name: RULE_NAME$48,
|
|
1371
|
+
create: create$48,
|
|
1372
1372
|
defaultOptions: []
|
|
1373
1373
|
});
|
|
1374
|
-
function create$
|
|
1374
|
+
function create$48(context) {
|
|
1375
1375
|
return { MemberExpression(node) {
|
|
1376
1376
|
if (core.isChildrenForEach(context, node)) context.report({
|
|
1377
1377
|
messageId: "default",
|
|
@@ -1382,7 +1382,7 @@ function create$47(context) {
|
|
|
1382
1382
|
|
|
1383
1383
|
//#endregion
|
|
1384
1384
|
//#region src/rules/no-children-map.ts
|
|
1385
|
-
const RULE_NAME$
|
|
1385
|
+
const RULE_NAME$47 = "no-children-map";
|
|
1386
1386
|
var no_children_map_default = createRule({
|
|
1387
1387
|
meta: {
|
|
1388
1388
|
type: "problem",
|
|
@@ -1390,11 +1390,11 @@ var no_children_map_default = createRule({
|
|
|
1390
1390
|
messages: { default: "Using 'Children.map' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1391
1391
|
schema: []
|
|
1392
1392
|
},
|
|
1393
|
-
name: RULE_NAME$
|
|
1394
|
-
create: create$
|
|
1393
|
+
name: RULE_NAME$47,
|
|
1394
|
+
create: create$47,
|
|
1395
1395
|
defaultOptions: []
|
|
1396
1396
|
});
|
|
1397
|
-
function create$
|
|
1397
|
+
function create$47(context) {
|
|
1398
1398
|
return { MemberExpression(node) {
|
|
1399
1399
|
if (core.isChildrenMap(context, node)) context.report({
|
|
1400
1400
|
messageId: "default",
|
|
@@ -1405,7 +1405,7 @@ function create$46(context) {
|
|
|
1405
1405
|
|
|
1406
1406
|
//#endregion
|
|
1407
1407
|
//#region src/rules/no-children-only.ts
|
|
1408
|
-
const RULE_NAME$
|
|
1408
|
+
const RULE_NAME$46 = "no-children-only";
|
|
1409
1409
|
var no_children_only_default = createRule({
|
|
1410
1410
|
meta: {
|
|
1411
1411
|
type: "problem",
|
|
@@ -1413,11 +1413,11 @@ var no_children_only_default = createRule({
|
|
|
1413
1413
|
messages: { default: "Using 'Children.only' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1414
1414
|
schema: []
|
|
1415
1415
|
},
|
|
1416
|
-
name: RULE_NAME$
|
|
1417
|
-
create: create$
|
|
1416
|
+
name: RULE_NAME$46,
|
|
1417
|
+
create: create$46,
|
|
1418
1418
|
defaultOptions: []
|
|
1419
1419
|
});
|
|
1420
|
-
function create$
|
|
1420
|
+
function create$46(context) {
|
|
1421
1421
|
return { MemberExpression(node) {
|
|
1422
1422
|
if (core.isChildrenOnly(context, node)) context.report({
|
|
1423
1423
|
messageId: "default",
|
|
@@ -1428,7 +1428,7 @@ function create$45(context) {
|
|
|
1428
1428
|
|
|
1429
1429
|
//#endregion
|
|
1430
1430
|
//#region src/rules/no-children-prop.ts
|
|
1431
|
-
const RULE_NAME$
|
|
1431
|
+
const RULE_NAME$45 = "no-children-prop";
|
|
1432
1432
|
var no_children_prop_default = createRule({
|
|
1433
1433
|
meta: {
|
|
1434
1434
|
type: "problem",
|
|
@@ -1436,11 +1436,11 @@ var no_children_prop_default = createRule({
|
|
|
1436
1436
|
messages: { default: "Do not pass 'children' as props." },
|
|
1437
1437
|
schema: []
|
|
1438
1438
|
},
|
|
1439
|
-
name: RULE_NAME$
|
|
1440
|
-
create: create$
|
|
1439
|
+
name: RULE_NAME$45,
|
|
1440
|
+
create: create$45,
|
|
1441
1441
|
defaultOptions: []
|
|
1442
1442
|
});
|
|
1443
|
-
function create$
|
|
1443
|
+
function create$45(context) {
|
|
1444
1444
|
return { JSXElement(node) {
|
|
1445
1445
|
const childrenProp = core.getJsxAttribute(context, node)("children");
|
|
1446
1446
|
if (childrenProp != null) context.report({
|
|
@@ -1452,7 +1452,7 @@ function create$44(context) {
|
|
|
1452
1452
|
|
|
1453
1453
|
//#endregion
|
|
1454
1454
|
//#region src/rules/no-children-to-array.ts
|
|
1455
|
-
const RULE_NAME$
|
|
1455
|
+
const RULE_NAME$44 = "no-children-to-array";
|
|
1456
1456
|
var no_children_to_array_default = createRule({
|
|
1457
1457
|
meta: {
|
|
1458
1458
|
type: "problem",
|
|
@@ -1460,11 +1460,11 @@ var no_children_to_array_default = createRule({
|
|
|
1460
1460
|
messages: { default: "Using 'Children.toArray' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1461
1461
|
schema: []
|
|
1462
1462
|
},
|
|
1463
|
-
name: RULE_NAME$
|
|
1464
|
-
create: create$
|
|
1463
|
+
name: RULE_NAME$44,
|
|
1464
|
+
create: create$44,
|
|
1465
1465
|
defaultOptions: []
|
|
1466
1466
|
});
|
|
1467
|
-
function create$
|
|
1467
|
+
function create$44(context) {
|
|
1468
1468
|
return { MemberExpression(node) {
|
|
1469
1469
|
if (core.isChildrenToArray(context, node)) context.report({
|
|
1470
1470
|
messageId: "default",
|
|
@@ -1475,7 +1475,7 @@ function create$43(context) {
|
|
|
1475
1475
|
|
|
1476
1476
|
//#endregion
|
|
1477
1477
|
//#region src/rules/no-class-component.ts
|
|
1478
|
-
const RULE_NAME$
|
|
1478
|
+
const RULE_NAME$43 = "no-class-component";
|
|
1479
1479
|
var no_class_component_default = createRule({
|
|
1480
1480
|
meta: {
|
|
1481
1481
|
type: "problem",
|
|
@@ -1483,11 +1483,11 @@ var no_class_component_default = createRule({
|
|
|
1483
1483
|
messages: { default: "Avoid using class components. Use function components instead." },
|
|
1484
1484
|
schema: []
|
|
1485
1485
|
},
|
|
1486
|
-
name: RULE_NAME$
|
|
1487
|
-
create: create$
|
|
1486
|
+
name: RULE_NAME$43,
|
|
1487
|
+
create: create$43,
|
|
1488
1488
|
defaultOptions: []
|
|
1489
1489
|
});
|
|
1490
|
-
function create$
|
|
1490
|
+
function create$43(context) {
|
|
1491
1491
|
if (!context.sourceCode.text.includes("Component")) return {};
|
|
1492
1492
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
1493
1493
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -1504,7 +1504,7 @@ function create$42(context) {
|
|
|
1504
1504
|
|
|
1505
1505
|
//#endregion
|
|
1506
1506
|
//#region src/rules/no-clone-element.ts
|
|
1507
|
-
const RULE_NAME$
|
|
1507
|
+
const RULE_NAME$42 = "no-clone-element";
|
|
1508
1508
|
var no_clone_element_default = createRule({
|
|
1509
1509
|
meta: {
|
|
1510
1510
|
type: "problem",
|
|
@@ -1512,11 +1512,11 @@ var no_clone_element_default = createRule({
|
|
|
1512
1512
|
messages: { default: "Using 'cloneElement' is uncommon and can lead to fragile code. Use alternatives instead." },
|
|
1513
1513
|
schema: []
|
|
1514
1514
|
},
|
|
1515
|
-
name: RULE_NAME$
|
|
1516
|
-
create: create$
|
|
1515
|
+
name: RULE_NAME$42,
|
|
1516
|
+
create: create$42,
|
|
1517
1517
|
defaultOptions: []
|
|
1518
1518
|
});
|
|
1519
|
-
function create$
|
|
1519
|
+
function create$42(context) {
|
|
1520
1520
|
return { CallExpression(node) {
|
|
1521
1521
|
if (core.isCloneElementCall(context, node)) context.report({
|
|
1522
1522
|
messageId: "default",
|
|
@@ -1527,7 +1527,7 @@ function create$41(context) {
|
|
|
1527
1527
|
|
|
1528
1528
|
//#endregion
|
|
1529
1529
|
//#region src/rules/no-component-will-mount.ts
|
|
1530
|
-
const RULE_NAME$
|
|
1530
|
+
const RULE_NAME$41 = "no-component-will-mount";
|
|
1531
1531
|
var no_component_will_mount_default = createRule({
|
|
1532
1532
|
meta: {
|
|
1533
1533
|
type: "problem",
|
|
@@ -1536,11 +1536,11 @@ var no_component_will_mount_default = createRule({
|
|
|
1536
1536
|
messages: { default: "[Deprecated] Use 'UNSAFE_componentWillMount' instead." },
|
|
1537
1537
|
schema: []
|
|
1538
1538
|
},
|
|
1539
|
-
name: RULE_NAME$
|
|
1540
|
-
create: create$
|
|
1539
|
+
name: RULE_NAME$41,
|
|
1540
|
+
create: create$41,
|
|
1541
1541
|
defaultOptions: []
|
|
1542
1542
|
});
|
|
1543
|
-
function create$
|
|
1543
|
+
function create$41(context) {
|
|
1544
1544
|
if (!context.sourceCode.text.includes("componentWillMount")) return {};
|
|
1545
1545
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
1546
1546
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -1560,7 +1560,7 @@ function create$40(context) {
|
|
|
1560
1560
|
|
|
1561
1561
|
//#endregion
|
|
1562
1562
|
//#region src/rules/no-component-will-receive-props.ts
|
|
1563
|
-
const RULE_NAME$
|
|
1563
|
+
const RULE_NAME$40 = "no-component-will-receive-props";
|
|
1564
1564
|
var no_component_will_receive_props_default = createRule({
|
|
1565
1565
|
meta: {
|
|
1566
1566
|
type: "problem",
|
|
@@ -1569,11 +1569,11 @@ var no_component_will_receive_props_default = createRule({
|
|
|
1569
1569
|
messages: { default: "[Deprecated] Use 'UNSAFE_componentWillReceiveProps' instead." },
|
|
1570
1570
|
schema: []
|
|
1571
1571
|
},
|
|
1572
|
-
name: RULE_NAME$
|
|
1573
|
-
create: create$
|
|
1572
|
+
name: RULE_NAME$40,
|
|
1573
|
+
create: create$40,
|
|
1574
1574
|
defaultOptions: []
|
|
1575
1575
|
});
|
|
1576
|
-
function create$
|
|
1576
|
+
function create$40(context) {
|
|
1577
1577
|
if (!context.sourceCode.text.includes("componentWillReceiveProps")) return {};
|
|
1578
1578
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
1579
1579
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -1593,7 +1593,7 @@ function create$39(context) {
|
|
|
1593
1593
|
|
|
1594
1594
|
//#endregion
|
|
1595
1595
|
//#region src/rules/no-component-will-update.ts
|
|
1596
|
-
const RULE_NAME$
|
|
1596
|
+
const RULE_NAME$39 = "no-component-will-update";
|
|
1597
1597
|
var no_component_will_update_default = createRule({
|
|
1598
1598
|
meta: {
|
|
1599
1599
|
type: "problem",
|
|
@@ -1602,11 +1602,11 @@ var no_component_will_update_default = createRule({
|
|
|
1602
1602
|
messages: { default: "[Deprecated] Use 'UNSAFE_componentWillUpdate' instead." },
|
|
1603
1603
|
schema: []
|
|
1604
1604
|
},
|
|
1605
|
-
name: RULE_NAME$
|
|
1606
|
-
create: create$
|
|
1605
|
+
name: RULE_NAME$39,
|
|
1606
|
+
create: create$39,
|
|
1607
1607
|
defaultOptions: []
|
|
1608
1608
|
});
|
|
1609
|
-
function create$
|
|
1609
|
+
function create$39(context) {
|
|
1610
1610
|
if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
|
|
1611
1611
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
1612
1612
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -1626,7 +1626,7 @@ function create$38(context) {
|
|
|
1626
1626
|
|
|
1627
1627
|
//#endregion
|
|
1628
1628
|
//#region src/rules/no-context-provider.ts
|
|
1629
|
-
const RULE_NAME$
|
|
1629
|
+
const RULE_NAME$38 = "no-context-provider";
|
|
1630
1630
|
var no_context_provider_default = createRule({
|
|
1631
1631
|
meta: {
|
|
1632
1632
|
type: "problem",
|
|
@@ -1635,11 +1635,11 @@ var no_context_provider_default = createRule({
|
|
|
1635
1635
|
messages: { default: "In React 19, you can render '<Context>' as a provider instead of '<Context.Provider>'." },
|
|
1636
1636
|
schema: []
|
|
1637
1637
|
},
|
|
1638
|
-
name: RULE_NAME$
|
|
1639
|
-
create: create$
|
|
1638
|
+
name: RULE_NAME$38,
|
|
1639
|
+
create: create$38,
|
|
1640
1640
|
defaultOptions: []
|
|
1641
1641
|
});
|
|
1642
|
-
function create$
|
|
1642
|
+
function create$38(context) {
|
|
1643
1643
|
if (!context.sourceCode.text.includes("Provider")) return {};
|
|
1644
1644
|
const { version } = getSettingsFromContext(context);
|
|
1645
1645
|
if (compare(version, "19.0.0", "<")) return {};
|
|
@@ -1666,7 +1666,7 @@ function create$37(context) {
|
|
|
1666
1666
|
|
|
1667
1667
|
//#endregion
|
|
1668
1668
|
//#region src/rules/no-create-ref.ts
|
|
1669
|
-
const RULE_NAME$
|
|
1669
|
+
const RULE_NAME$37 = "no-create-ref";
|
|
1670
1670
|
var no_create_ref_default = createRule({
|
|
1671
1671
|
meta: {
|
|
1672
1672
|
type: "problem",
|
|
@@ -1674,11 +1674,11 @@ var no_create_ref_default = createRule({
|
|
|
1674
1674
|
messages: { default: "[Deprecated] Use 'useRef' instead." },
|
|
1675
1675
|
schema: []
|
|
1676
1676
|
},
|
|
1677
|
-
name: RULE_NAME$
|
|
1678
|
-
create: create$
|
|
1677
|
+
name: RULE_NAME$37,
|
|
1678
|
+
create: create$37,
|
|
1679
1679
|
defaultOptions: []
|
|
1680
1680
|
});
|
|
1681
|
-
function create$
|
|
1681
|
+
function create$37(context) {
|
|
1682
1682
|
return { CallExpression(node) {
|
|
1683
1683
|
if (core.isCreateRefCall(context, node) && ast.findParentNode(node, core.isClassComponent) == null) context.report({
|
|
1684
1684
|
messageId: "default",
|
|
@@ -1689,7 +1689,7 @@ function create$36(context) {
|
|
|
1689
1689
|
|
|
1690
1690
|
//#endregion
|
|
1691
1691
|
//#region src/rules/no-direct-mutation-state.ts
|
|
1692
|
-
const RULE_NAME$
|
|
1692
|
+
const RULE_NAME$36 = "no-direct-mutation-state";
|
|
1693
1693
|
function isConstructorFunction(node) {
|
|
1694
1694
|
return ast.isOneOf([AST_NODE_TYPES.FunctionDeclaration, AST_NODE_TYPES.FunctionExpression])(node) && ast.isMethodOrProperty(node.parent) && node.parent.key.type === AST_NODE_TYPES.Identifier && node.parent.key.name === "constructor";
|
|
1695
1695
|
}
|
|
@@ -1700,11 +1700,11 @@ var no_direct_mutation_state_default = createRule({
|
|
|
1700
1700
|
messages: { default: "Do not mutate state directly. Use 'setState()' instead." },
|
|
1701
1701
|
schema: []
|
|
1702
1702
|
},
|
|
1703
|
-
name: RULE_NAME$
|
|
1704
|
-
create: create$
|
|
1703
|
+
name: RULE_NAME$36,
|
|
1704
|
+
create: create$36,
|
|
1705
1705
|
defaultOptions: []
|
|
1706
1706
|
});
|
|
1707
|
-
function create$
|
|
1707
|
+
function create$36(context) {
|
|
1708
1708
|
return { AssignmentExpression(node) {
|
|
1709
1709
|
if (!core.isAssignmentToThisState(node)) return;
|
|
1710
1710
|
const parentClass = ast.findParentNode(node, ast.isOneOf([AST_NODE_TYPES.ClassDeclaration, AST_NODE_TYPES.ClassExpression]));
|
|
@@ -1718,7 +1718,7 @@ function create$35(context) {
|
|
|
1718
1718
|
|
|
1719
1719
|
//#endregion
|
|
1720
1720
|
//#region src/rules/no-duplicate-key.ts
|
|
1721
|
-
const RULE_NAME$
|
|
1721
|
+
const RULE_NAME$35 = "no-duplicate-key";
|
|
1722
1722
|
var no_duplicate_key_default = createRule({
|
|
1723
1723
|
meta: {
|
|
1724
1724
|
type: "problem",
|
|
@@ -1726,11 +1726,11 @@ var no_duplicate_key_default = createRule({
|
|
|
1726
1726
|
messages: { default: "The 'key' prop must be unique to its sibling elements." },
|
|
1727
1727
|
schema: []
|
|
1728
1728
|
},
|
|
1729
|
-
name: RULE_NAME$
|
|
1730
|
-
create: create$
|
|
1729
|
+
name: RULE_NAME$35,
|
|
1730
|
+
create: create$35,
|
|
1731
1731
|
defaultOptions: []
|
|
1732
1732
|
});
|
|
1733
|
-
function create$
|
|
1733
|
+
function create$35(context) {
|
|
1734
1734
|
if (!context.sourceCode.text.includes("key=")) return {};
|
|
1735
1735
|
const keyedEntries = /* @__PURE__ */ new Map();
|
|
1736
1736
|
function isKeyValueEqual(a, b) {
|
|
@@ -1785,7 +1785,7 @@ function create$34(context) {
|
|
|
1785
1785
|
|
|
1786
1786
|
//#endregion
|
|
1787
1787
|
//#region src/rules/no-forward-ref.ts
|
|
1788
|
-
const RULE_NAME$
|
|
1788
|
+
const RULE_NAME$34 = "no-forward-ref";
|
|
1789
1789
|
var no_forward_ref_default = createRule({
|
|
1790
1790
|
meta: {
|
|
1791
1791
|
type: "problem",
|
|
@@ -1794,11 +1794,11 @@ var no_forward_ref_default = createRule({
|
|
|
1794
1794
|
messages: { default: "In React 19, 'forwardRef' is no longer necessary. Pass 'ref' as a prop instead." },
|
|
1795
1795
|
schema: []
|
|
1796
1796
|
},
|
|
1797
|
-
name: RULE_NAME$
|
|
1798
|
-
create: create$
|
|
1797
|
+
name: RULE_NAME$34,
|
|
1798
|
+
create: create$34,
|
|
1799
1799
|
defaultOptions: []
|
|
1800
1800
|
});
|
|
1801
|
-
function create$
|
|
1801
|
+
function create$34(context) {
|
|
1802
1802
|
if (!context.sourceCode.text.includes("forwardRef")) return {};
|
|
1803
1803
|
const { version } = getSettingsFromContext(context);
|
|
1804
1804
|
if (compare(version, "19.0.0", "<")) return {};
|
|
@@ -1893,7 +1893,7 @@ function getComponentPropsFixes(context, fixer, node, typeArguments) {
|
|
|
1893
1893
|
|
|
1894
1894
|
//#endregion
|
|
1895
1895
|
//#region src/rules/no-implicit-key.ts
|
|
1896
|
-
const RULE_NAME$
|
|
1896
|
+
const RULE_NAME$33 = "no-implicit-key";
|
|
1897
1897
|
var no_implicit_key_default = createRule({
|
|
1898
1898
|
meta: {
|
|
1899
1899
|
type: "problem",
|
|
@@ -1901,11 +1901,11 @@ var no_implicit_key_default = createRule({
|
|
|
1901
1901
|
messages: { default: "This spread attribute implicitly passes the 'key' prop to a component, this could lead to unexpected behavior. If you intend to pass the 'key' prop, use 'key={value}'." },
|
|
1902
1902
|
schema: []
|
|
1903
1903
|
},
|
|
1904
|
-
name: RULE_NAME$
|
|
1905
|
-
create: create$
|
|
1904
|
+
name: RULE_NAME$33,
|
|
1905
|
+
create: create$33,
|
|
1906
1906
|
defaultOptions: []
|
|
1907
1907
|
});
|
|
1908
|
-
function create$
|
|
1908
|
+
function create$33(context) {
|
|
1909
1909
|
const services = ESLintUtils.getParserServices(context, false);
|
|
1910
1910
|
const checker = services.program.getTypeChecker();
|
|
1911
1911
|
return { JSXSpreadAttribute(node) {
|
|
@@ -1923,7 +1923,7 @@ function create$32(context) {
|
|
|
1923
1923
|
|
|
1924
1924
|
//#endregion
|
|
1925
1925
|
//#region src/rules/no-leaked-conditional-rendering.ts
|
|
1926
|
-
const RULE_NAME$
|
|
1926
|
+
const RULE_NAME$32 = "no-leaked-conditional-rendering";
|
|
1927
1927
|
var no_leaked_conditional_rendering_default = createRule({
|
|
1928
1928
|
meta: {
|
|
1929
1929
|
type: "problem",
|
|
@@ -1931,11 +1931,11 @@ var no_leaked_conditional_rendering_default = createRule({
|
|
|
1931
1931
|
messages: { default: "Potential leaked value {{value}} that might cause unintentionally rendered values or rendering crashes." },
|
|
1932
1932
|
schema: []
|
|
1933
1933
|
},
|
|
1934
|
-
name: RULE_NAME$
|
|
1935
|
-
create: create$
|
|
1934
|
+
name: RULE_NAME$32,
|
|
1935
|
+
create: create$32,
|
|
1936
1936
|
defaultOptions: []
|
|
1937
1937
|
});
|
|
1938
|
-
function create$
|
|
1938
|
+
function create$32(context) {
|
|
1939
1939
|
if (!context.sourceCode.text.includes("&&")) return {};
|
|
1940
1940
|
const { version } = getSettingsFromContext(context);
|
|
1941
1941
|
const allowedVariants = [
|
|
@@ -1992,7 +1992,7 @@ function create$31(context) {
|
|
|
1992
1992
|
|
|
1993
1993
|
//#endregion
|
|
1994
1994
|
//#region src/rules/no-missing-component-display-name.ts
|
|
1995
|
-
const RULE_NAME$
|
|
1995
|
+
const RULE_NAME$31 = "no-missing-component-display-name";
|
|
1996
1996
|
var no_missing_component_display_name_default = createRule({
|
|
1997
1997
|
meta: {
|
|
1998
1998
|
type: "problem",
|
|
@@ -2000,11 +2000,11 @@ var no_missing_component_display_name_default = createRule({
|
|
|
2000
2000
|
messages: { default: "Add missing 'displayName' for component." },
|
|
2001
2001
|
schema: []
|
|
2002
2002
|
},
|
|
2003
|
-
name: RULE_NAME$
|
|
2004
|
-
create: create$
|
|
2003
|
+
name: RULE_NAME$31,
|
|
2004
|
+
create: create$31,
|
|
2005
2005
|
defaultOptions: []
|
|
2006
2006
|
});
|
|
2007
|
-
function create$
|
|
2007
|
+
function create$31(context) {
|
|
2008
2008
|
if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
|
|
2009
2009
|
const { ctx, visitor } = core.useComponentCollector(context, {
|
|
2010
2010
|
collectDisplayName: true,
|
|
@@ -2026,7 +2026,7 @@ function create$30(context) {
|
|
|
2026
2026
|
|
|
2027
2027
|
//#endregion
|
|
2028
2028
|
//#region src/rules/no-missing-context-display-name.ts
|
|
2029
|
-
const RULE_NAME$
|
|
2029
|
+
const RULE_NAME$30 = "no-missing-context-display-name";
|
|
2030
2030
|
var no_missing_context_display_name_default = createRule({
|
|
2031
2031
|
meta: {
|
|
2032
2032
|
type: "problem",
|
|
@@ -2035,11 +2035,11 @@ var no_missing_context_display_name_default = createRule({
|
|
|
2035
2035
|
messages: { default: "Add missing 'displayName' for context." },
|
|
2036
2036
|
schema: []
|
|
2037
2037
|
},
|
|
2038
|
-
name: RULE_NAME$
|
|
2039
|
-
create: create$
|
|
2038
|
+
name: RULE_NAME$30,
|
|
2039
|
+
create: create$30,
|
|
2040
2040
|
defaultOptions: []
|
|
2041
2041
|
});
|
|
2042
|
-
function create$
|
|
2042
|
+
function create$30(context) {
|
|
2043
2043
|
if (!context.sourceCode.text.includes("createContext")) return {};
|
|
2044
2044
|
const createCalls = [];
|
|
2045
2045
|
const displayNameAssignments = [];
|
|
@@ -2091,7 +2091,7 @@ function create$29(context) {
|
|
|
2091
2091
|
|
|
2092
2092
|
//#endregion
|
|
2093
2093
|
//#region src/rules/no-missing-key.ts
|
|
2094
|
-
const RULE_NAME$
|
|
2094
|
+
const RULE_NAME$29 = "no-missing-key";
|
|
2095
2095
|
var no_missing_key_default = createRule({
|
|
2096
2096
|
meta: {
|
|
2097
2097
|
type: "problem",
|
|
@@ -2102,11 +2102,11 @@ var no_missing_key_default = createRule({
|
|
|
2102
2102
|
},
|
|
2103
2103
|
schema: []
|
|
2104
2104
|
},
|
|
2105
|
-
name: RULE_NAME$
|
|
2106
|
-
create: create$
|
|
2105
|
+
name: RULE_NAME$29,
|
|
2106
|
+
create: create$29,
|
|
2107
2107
|
defaultOptions: []
|
|
2108
2108
|
});
|
|
2109
|
-
function create$
|
|
2109
|
+
function create$29(ctx) {
|
|
2110
2110
|
let inChildrenToArray = false;
|
|
2111
2111
|
function check(node) {
|
|
2112
2112
|
if (node.type === AST_NODE_TYPES.JSXElement) return core.getJsxAttribute(ctx, node)("key") == null ? {
|
|
@@ -2170,7 +2170,7 @@ function create$28(ctx) {
|
|
|
2170
2170
|
|
|
2171
2171
|
//#endregion
|
|
2172
2172
|
//#region src/rules/no-misused-capture-owner-stack.ts
|
|
2173
|
-
const RULE_NAME$
|
|
2173
|
+
const RULE_NAME$28 = "no-misused-capture-owner-stack";
|
|
2174
2174
|
var no_misused_capture_owner_stack_default = createRule({
|
|
2175
2175
|
meta: {
|
|
2176
2176
|
type: "problem",
|
|
@@ -2181,11 +2181,11 @@ var no_misused_capture_owner_stack_default = createRule({
|
|
|
2181
2181
|
},
|
|
2182
2182
|
schema: []
|
|
2183
2183
|
},
|
|
2184
|
-
name: RULE_NAME$
|
|
2185
|
-
create: create$
|
|
2184
|
+
name: RULE_NAME$28,
|
|
2185
|
+
create: create$28,
|
|
2186
2186
|
defaultOptions: []
|
|
2187
2187
|
});
|
|
2188
|
-
function create$
|
|
2188
|
+
function create$28(context) {
|
|
2189
2189
|
if (!context.sourceCode.text.includes("captureOwnerStack")) return {};
|
|
2190
2190
|
const { importSource } = getSettingsFromContext(context);
|
|
2191
2191
|
return {
|
|
@@ -2216,7 +2216,7 @@ function isDevelopmentOnlyCheck(node) {
|
|
|
2216
2216
|
|
|
2217
2217
|
//#endregion
|
|
2218
2218
|
//#region src/rules/no-nested-component-definitions.ts
|
|
2219
|
-
const RULE_NAME$
|
|
2219
|
+
const RULE_NAME$27 = "no-nested-component-definitions";
|
|
2220
2220
|
var no_nested_component_definitions_default = createRule({
|
|
2221
2221
|
meta: {
|
|
2222
2222
|
type: "problem",
|
|
@@ -2224,11 +2224,11 @@ var no_nested_component_definitions_default = createRule({
|
|
|
2224
2224
|
messages: { default: "Do not nest component definitions inside other components or props. {{suggestion}}" },
|
|
2225
2225
|
schema: []
|
|
2226
2226
|
},
|
|
2227
|
-
name: RULE_NAME$
|
|
2228
|
-
create: create$
|
|
2227
|
+
name: RULE_NAME$27,
|
|
2228
|
+
create: create$27,
|
|
2229
2229
|
defaultOptions: []
|
|
2230
2230
|
});
|
|
2231
|
-
function create$
|
|
2231
|
+
function create$27(context) {
|
|
2232
2232
|
const hint = core.ComponentDetectionHint.DoNotIncludeJsxWithNumberValue | core.ComponentDetectionHint.DoNotIncludeJsxWithBooleanValue | core.ComponentDetectionHint.DoNotIncludeJsxWithNullValue | core.ComponentDetectionHint.DoNotIncludeJsxWithStringValue | core.ComponentDetectionHint.DoNotIncludeJsxWithUndefinedValue | core.ComponentDetectionHint.RequireBothSidesOfLogicalExpressionToBeJsx | core.ComponentDetectionHint.RequireBothBranchesOfConditionalExpressionToBeJsx | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedInArrayPattern | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedInArrayExpression | core.ComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayMapCallback;
|
|
2233
2233
|
const fCollector = core.useComponentCollector(context, { hint });
|
|
2234
2234
|
const cCollector = core.useComponentCollectorLegacy(context);
|
|
@@ -2333,7 +2333,7 @@ function isInsideCreateElementProps(context, node) {
|
|
|
2333
2333
|
|
|
2334
2334
|
//#endregion
|
|
2335
2335
|
//#region src/rules/no-nested-lazy-component-declarations.ts
|
|
2336
|
-
const RULE_NAME$
|
|
2336
|
+
const RULE_NAME$26 = "no-nested-lazy-component-declarations";
|
|
2337
2337
|
var no_nested_lazy_component_declarations_default = createRule({
|
|
2338
2338
|
meta: {
|
|
2339
2339
|
type: "problem",
|
|
@@ -2341,11 +2341,11 @@ var no_nested_lazy_component_declarations_default = createRule({
|
|
|
2341
2341
|
messages: { default: "Do not declare lazy components inside other components. Instead, always declare them at the top level of your module." },
|
|
2342
2342
|
schema: []
|
|
2343
2343
|
},
|
|
2344
|
-
name: RULE_NAME$
|
|
2345
|
-
create: create$
|
|
2344
|
+
name: RULE_NAME$26,
|
|
2345
|
+
create: create$26,
|
|
2346
2346
|
defaultOptions: []
|
|
2347
2347
|
});
|
|
2348
|
-
function create$
|
|
2348
|
+
function create$26(context) {
|
|
2349
2349
|
const hint = core.ComponentDetectionHint.None;
|
|
2350
2350
|
const collector = core.useComponentCollector(context, { hint });
|
|
2351
2351
|
const collectorLegacy = core.useComponentCollectorLegacy(context);
|
|
@@ -2374,7 +2374,7 @@ function create$25(context) {
|
|
|
2374
2374
|
|
|
2375
2375
|
//#endregion
|
|
2376
2376
|
//#region src/rules/no-redundant-should-component-update.ts
|
|
2377
|
-
const RULE_NAME$
|
|
2377
|
+
const RULE_NAME$25 = "no-redundant-should-component-update";
|
|
2378
2378
|
function isShouldComponentUpdate(node) {
|
|
2379
2379
|
return ast.isMethodOrProperty(node) && node.key.type === AST_NODE_TYPES.Identifier && node.key.name === "shouldComponentUpdate";
|
|
2380
2380
|
}
|
|
@@ -2385,11 +2385,11 @@ var no_redundant_should_component_update_default = createRule({
|
|
|
2385
2385
|
messages: { default: "'{{componentName}}' does not need 'shouldComponentUpdate' when extending 'React.PureComponent'." },
|
|
2386
2386
|
schema: []
|
|
2387
2387
|
},
|
|
2388
|
-
name: RULE_NAME$
|
|
2389
|
-
create: create$
|
|
2388
|
+
name: RULE_NAME$25,
|
|
2389
|
+
create: create$25,
|
|
2390
2390
|
defaultOptions: []
|
|
2391
2391
|
});
|
|
2392
|
-
function create$
|
|
2392
|
+
function create$25(context) {
|
|
2393
2393
|
if (!context.sourceCode.text.includes("shouldComponentUpdate")) return {};
|
|
2394
2394
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
2395
2395
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -2407,7 +2407,7 @@ function create$24(context) {
|
|
|
2407
2407
|
|
|
2408
2408
|
//#endregion
|
|
2409
2409
|
//#region src/rules/no-set-state-in-component-did-mount.ts
|
|
2410
|
-
const RULE_NAME$
|
|
2410
|
+
const RULE_NAME$24 = "no-set-state-in-component-did-mount";
|
|
2411
2411
|
var no_set_state_in_component_did_mount_default = createRule({
|
|
2412
2412
|
meta: {
|
|
2413
2413
|
type: "problem",
|
|
@@ -2415,11 +2415,11 @@ var no_set_state_in_component_did_mount_default = createRule({
|
|
|
2415
2415
|
messages: { default: "Do not call `this.setState` in `componentDidMount` outside functions such as callbacks." },
|
|
2416
2416
|
schema: []
|
|
2417
2417
|
},
|
|
2418
|
-
name: RULE_NAME$
|
|
2419
|
-
create: create$
|
|
2418
|
+
name: RULE_NAME$24,
|
|
2419
|
+
create: create$24,
|
|
2420
2420
|
defaultOptions: []
|
|
2421
2421
|
});
|
|
2422
|
-
function create$
|
|
2422
|
+
function create$24(context) {
|
|
2423
2423
|
if (!context.sourceCode.text.includes("componentDidMount")) return {};
|
|
2424
2424
|
return { CallExpression(node) {
|
|
2425
2425
|
if (!core.isThisSetState(node)) return;
|
|
@@ -2437,7 +2437,7 @@ function create$23(context) {
|
|
|
2437
2437
|
|
|
2438
2438
|
//#endregion
|
|
2439
2439
|
//#region src/rules/no-set-state-in-component-did-update.ts
|
|
2440
|
-
const RULE_NAME$
|
|
2440
|
+
const RULE_NAME$23 = "no-set-state-in-component-did-update";
|
|
2441
2441
|
var no_set_state_in_component_did_update_default = createRule({
|
|
2442
2442
|
meta: {
|
|
2443
2443
|
type: "problem",
|
|
@@ -2445,11 +2445,11 @@ var no_set_state_in_component_did_update_default = createRule({
|
|
|
2445
2445
|
messages: { default: "Do not call `this.setState` in `componentDidUpdate` outside functions such as callbacks." },
|
|
2446
2446
|
schema: []
|
|
2447
2447
|
},
|
|
2448
|
-
name: RULE_NAME$
|
|
2449
|
-
create: create$
|
|
2448
|
+
name: RULE_NAME$23,
|
|
2449
|
+
create: create$23,
|
|
2450
2450
|
defaultOptions: []
|
|
2451
2451
|
});
|
|
2452
|
-
function create$
|
|
2452
|
+
function create$23(context) {
|
|
2453
2453
|
if (!context.sourceCode.text.includes("componentDidUpdate")) return {};
|
|
2454
2454
|
return { CallExpression(node) {
|
|
2455
2455
|
if (!core.isThisSetState(node)) return;
|
|
@@ -2467,7 +2467,7 @@ function create$22(context) {
|
|
|
2467
2467
|
|
|
2468
2468
|
//#endregion
|
|
2469
2469
|
//#region src/rules/no-set-state-in-component-will-update.ts
|
|
2470
|
-
const RULE_NAME$
|
|
2470
|
+
const RULE_NAME$22 = "no-set-state-in-component-will-update";
|
|
2471
2471
|
var no_set_state_in_component_will_update_default = createRule({
|
|
2472
2472
|
meta: {
|
|
2473
2473
|
type: "problem",
|
|
@@ -2475,11 +2475,11 @@ var no_set_state_in_component_will_update_default = createRule({
|
|
|
2475
2475
|
messages: { default: "Do not call `this.setState` in `componentWillUpdate` outside functions such as callbacks." },
|
|
2476
2476
|
schema: []
|
|
2477
2477
|
},
|
|
2478
|
-
name: RULE_NAME$
|
|
2479
|
-
create: create$
|
|
2478
|
+
name: RULE_NAME$22,
|
|
2479
|
+
create: create$22,
|
|
2480
2480
|
defaultOptions: []
|
|
2481
2481
|
});
|
|
2482
|
-
function create$
|
|
2482
|
+
function create$22(context) {
|
|
2483
2483
|
if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
|
|
2484
2484
|
return { CallExpression(node) {
|
|
2485
2485
|
if (!core.isThisSetState(node)) return;
|
|
@@ -2497,7 +2497,7 @@ function create$21(context) {
|
|
|
2497
2497
|
|
|
2498
2498
|
//#endregion
|
|
2499
2499
|
//#region src/rules/no-unnecessary-use-callback.ts
|
|
2500
|
-
const RULE_NAME$
|
|
2500
|
+
const RULE_NAME$21 = "no-unnecessary-use-callback";
|
|
2501
2501
|
var no_unnecessary_use_callback_default = createRule({
|
|
2502
2502
|
meta: {
|
|
2503
2503
|
type: "problem",
|
|
@@ -2508,11 +2508,11 @@ var no_unnecessary_use_callback_default = createRule({
|
|
|
2508
2508
|
},
|
|
2509
2509
|
schema: []
|
|
2510
2510
|
},
|
|
2511
|
-
name: RULE_NAME$
|
|
2512
|
-
create: create$
|
|
2511
|
+
name: RULE_NAME$21,
|
|
2512
|
+
create: create$21,
|
|
2513
2513
|
defaultOptions: []
|
|
2514
2514
|
});
|
|
2515
|
-
function create$
|
|
2515
|
+
function create$21(context) {
|
|
2516
2516
|
if (!context.sourceCode.text.includes("useCallback")) return {};
|
|
2517
2517
|
return { VariableDeclarator(node) {
|
|
2518
2518
|
const { id, init } = node;
|
|
@@ -2574,7 +2574,7 @@ function checkForUsageInsideUseEffect$1(sourceCode, node) {
|
|
|
2574
2574
|
|
|
2575
2575
|
//#endregion
|
|
2576
2576
|
//#region src/rules/no-unnecessary-use-memo.ts
|
|
2577
|
-
const RULE_NAME$
|
|
2577
|
+
const RULE_NAME$20 = "no-unnecessary-use-memo";
|
|
2578
2578
|
var no_unnecessary_use_memo_default = createRule({
|
|
2579
2579
|
meta: {
|
|
2580
2580
|
type: "problem",
|
|
@@ -2585,11 +2585,11 @@ var no_unnecessary_use_memo_default = createRule({
|
|
|
2585
2585
|
},
|
|
2586
2586
|
schema: []
|
|
2587
2587
|
},
|
|
2588
|
-
name: RULE_NAME$
|
|
2589
|
-
create: create$
|
|
2588
|
+
name: RULE_NAME$20,
|
|
2589
|
+
create: create$20,
|
|
2590
2590
|
defaultOptions: []
|
|
2591
2591
|
});
|
|
2592
|
-
function create$
|
|
2592
|
+
function create$20(context) {
|
|
2593
2593
|
if (!context.sourceCode.text.includes("useMemo")) return {};
|
|
2594
2594
|
return { VariableDeclarator(node) {
|
|
2595
2595
|
const { id, init } = node;
|
|
@@ -2655,7 +2655,7 @@ function checkForUsageInsideUseEffect(sourceCode, node) {
|
|
|
2655
2655
|
|
|
2656
2656
|
//#endregion
|
|
2657
2657
|
//#region src/rules/no-unnecessary-use-prefix.ts
|
|
2658
|
-
const RULE_NAME$
|
|
2658
|
+
const RULE_NAME$19 = "no-unnecessary-use-prefix";
|
|
2659
2659
|
const WELL_KNOWN_HOOKS = ["useMDXComponents"];
|
|
2660
2660
|
function containsUseComments(context, node) {
|
|
2661
2661
|
return context.sourceCode.getCommentsInside(node).some(({ value }) => /use\([\s\S]*?\)/u.test(value) || /use[A-Z0-9]\w*\([\s\S]*?\)/u.test(value));
|
|
@@ -2667,11 +2667,11 @@ var no_unnecessary_use_prefix_default = createRule({
|
|
|
2667
2667
|
messages: { default: "If your function doesn't call any Hooks, avoid the 'use' prefix. Instead, write it as a regular function without the 'use' prefix." },
|
|
2668
2668
|
schema: []
|
|
2669
2669
|
},
|
|
2670
|
-
name: RULE_NAME$
|
|
2671
|
-
create: create$
|
|
2670
|
+
name: RULE_NAME$19,
|
|
2671
|
+
create: create$19,
|
|
2672
2672
|
defaultOptions: []
|
|
2673
2673
|
});
|
|
2674
|
-
function create$
|
|
2674
|
+
function create$19(context) {
|
|
2675
2675
|
const { ctx, visitor } = core.useHookCollector(context);
|
|
2676
2676
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
2677
2677
|
for (const { id, name, node, hookCalls } of ctx.getAllHooks(program)) {
|
|
@@ -2691,7 +2691,7 @@ function create$18(context) {
|
|
|
2691
2691
|
|
|
2692
2692
|
//#endregion
|
|
2693
2693
|
//#region src/rules/no-unsafe-component-will-mount.ts
|
|
2694
|
-
const RULE_NAME$
|
|
2694
|
+
const RULE_NAME$18 = "no-unsafe-component-will-mount";
|
|
2695
2695
|
var no_unsafe_component_will_mount_default = createRule({
|
|
2696
2696
|
meta: {
|
|
2697
2697
|
type: "problem",
|
|
@@ -2699,11 +2699,11 @@ var no_unsafe_component_will_mount_default = createRule({
|
|
|
2699
2699
|
messages: { default: "Do not use 'UNSAFE_componentWillMount'." },
|
|
2700
2700
|
schema: []
|
|
2701
2701
|
},
|
|
2702
|
-
name: RULE_NAME$
|
|
2703
|
-
create: create$
|
|
2702
|
+
name: RULE_NAME$18,
|
|
2703
|
+
create: create$18,
|
|
2704
2704
|
defaultOptions: []
|
|
2705
2705
|
});
|
|
2706
|
-
function create$
|
|
2706
|
+
function create$18(context) {
|
|
2707
2707
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
|
|
2708
2708
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
2709
2709
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -2719,7 +2719,7 @@ function create$17(context) {
|
|
|
2719
2719
|
|
|
2720
2720
|
//#endregion
|
|
2721
2721
|
//#region src/rules/no-unsafe-component-will-receive-props.ts
|
|
2722
|
-
const RULE_NAME$
|
|
2722
|
+
const RULE_NAME$17 = "no-unsafe-component-will-receive-props";
|
|
2723
2723
|
var no_unsafe_component_will_receive_props_default = createRule({
|
|
2724
2724
|
meta: {
|
|
2725
2725
|
type: "problem",
|
|
@@ -2727,11 +2727,11 @@ var no_unsafe_component_will_receive_props_default = createRule({
|
|
|
2727
2727
|
messages: { default: "Do not use 'UNSAFE_componentWillReceiveProps'." },
|
|
2728
2728
|
schema: []
|
|
2729
2729
|
},
|
|
2730
|
-
name: RULE_NAME$
|
|
2731
|
-
create: create$
|
|
2730
|
+
name: RULE_NAME$17,
|
|
2731
|
+
create: create$17,
|
|
2732
2732
|
defaultOptions: []
|
|
2733
2733
|
});
|
|
2734
|
-
function create$
|
|
2734
|
+
function create$17(context) {
|
|
2735
2735
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) return {};
|
|
2736
2736
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
2737
2737
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -2747,7 +2747,7 @@ function create$16(context) {
|
|
|
2747
2747
|
|
|
2748
2748
|
//#endregion
|
|
2749
2749
|
//#region src/rules/no-unsafe-component-will-update.ts
|
|
2750
|
-
const RULE_NAME$
|
|
2750
|
+
const RULE_NAME$16 = "no-unsafe-component-will-update";
|
|
2751
2751
|
var no_unsafe_component_will_update_default = createRule({
|
|
2752
2752
|
meta: {
|
|
2753
2753
|
type: "problem",
|
|
@@ -2755,11 +2755,11 @@ var no_unsafe_component_will_update_default = createRule({
|
|
|
2755
2755
|
messages: { default: "Do not use 'UNSAFE_componentWillUpdate'." },
|
|
2756
2756
|
schema: []
|
|
2757
2757
|
},
|
|
2758
|
-
name: RULE_NAME$
|
|
2759
|
-
create: create$
|
|
2758
|
+
name: RULE_NAME$16,
|
|
2759
|
+
create: create$16,
|
|
2760
2760
|
defaultOptions: []
|
|
2761
2761
|
});
|
|
2762
|
-
function create$
|
|
2762
|
+
function create$16(context) {
|
|
2763
2763
|
if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
|
|
2764
2764
|
const { ctx, visitor } = core.useComponentCollectorLegacy(context);
|
|
2765
2765
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -2775,7 +2775,7 @@ function create$15(context) {
|
|
|
2775
2775
|
|
|
2776
2776
|
//#endregion
|
|
2777
2777
|
//#region src/rules/no-unstable-context-value.ts
|
|
2778
|
-
const RULE_NAME$
|
|
2778
|
+
const RULE_NAME$15 = "no-unstable-context-value";
|
|
2779
2779
|
var no_unstable_context_value_default = createRule({
|
|
2780
2780
|
meta: {
|
|
2781
2781
|
type: "problem",
|
|
@@ -2783,11 +2783,11 @@ var no_unstable_context_value_default = createRule({
|
|
|
2783
2783
|
messages: { unstableContextValue: "A/an '{{kind}}' passed as the value prop to the context provider should not be constructed. It will change on every render. {{suggestion}}" },
|
|
2784
2784
|
schema: []
|
|
2785
2785
|
},
|
|
2786
|
-
name: RULE_NAME$
|
|
2787
|
-
create: create$
|
|
2786
|
+
name: RULE_NAME$15,
|
|
2787
|
+
create: create$15,
|
|
2788
2788
|
defaultOptions: []
|
|
2789
2789
|
});
|
|
2790
|
-
function create$
|
|
2790
|
+
function create$15(context) {
|
|
2791
2791
|
const { isCompilerEnabled, version } = getSettingsFromContext(context);
|
|
2792
2792
|
if (isCompilerEnabled && ast.isDirectiveInFile(context.sourceCode.ast, "use memo")) return {};
|
|
2793
2793
|
const isReact18OrBelow = compare(version, "19.0.0", "<");
|
|
@@ -2836,7 +2836,7 @@ function isContextName(name, isReact18OrBelow) {
|
|
|
2836
2836
|
|
|
2837
2837
|
//#endregion
|
|
2838
2838
|
//#region src/rules/no-unstable-default-props.ts
|
|
2839
|
-
const RULE_NAME$
|
|
2839
|
+
const RULE_NAME$14 = "no-unstable-default-props";
|
|
2840
2840
|
const defaultOptions$1 = [{ safeDefaultProps: [] }];
|
|
2841
2841
|
const schema$1 = [{
|
|
2842
2842
|
type: "object",
|
|
@@ -2853,8 +2853,8 @@ var no_unstable_default_props_default = createRule({
|
|
|
2853
2853
|
messages: { default: "A/an '{{kind}}' as default prop. This could lead to potential infinite render loop in React. Use a variable instead of '{{kind}}'." },
|
|
2854
2854
|
schema: schema$1
|
|
2855
2855
|
},
|
|
2856
|
-
name: RULE_NAME$
|
|
2857
|
-
create: create$
|
|
2856
|
+
name: RULE_NAME$14,
|
|
2857
|
+
create: create$14,
|
|
2858
2858
|
defaultOptions: defaultOptions$1
|
|
2859
2859
|
});
|
|
2860
2860
|
function extractIdentifier(node) {
|
|
@@ -2865,7 +2865,7 @@ function extractIdentifier(node) {
|
|
|
2865
2865
|
}
|
|
2866
2866
|
return null;
|
|
2867
2867
|
}
|
|
2868
|
-
function create$
|
|
2868
|
+
function create$14(context, [options]) {
|
|
2869
2869
|
const { isCompilerEnabled } = getSettingsFromContext(context);
|
|
2870
2870
|
if (isCompilerEnabled && ast.isDirectiveInFile(context.sourceCode.ast, "use memo")) return {};
|
|
2871
2871
|
const { ctx, visitor } = core.useComponentCollector(context);
|
|
@@ -2910,7 +2910,7 @@ function create$13(context, [options]) {
|
|
|
2910
2910
|
|
|
2911
2911
|
//#endregion
|
|
2912
2912
|
//#region src/rules/no-unused-class-component-members.ts
|
|
2913
|
-
const RULE_NAME$
|
|
2913
|
+
const RULE_NAME$13 = "no-unused-class-component-members";
|
|
2914
2914
|
const LIFECYCLE_METHODS = new Set([
|
|
2915
2915
|
"componentDidCatch",
|
|
2916
2916
|
"componentDidMount",
|
|
@@ -2941,11 +2941,11 @@ var no_unused_class_component_members_default = createRule({
|
|
|
2941
2941
|
messages: { default: "Unused method or property '{{methodName}}'' of class '{{className}}'." },
|
|
2942
2942
|
schema: []
|
|
2943
2943
|
},
|
|
2944
|
-
name: RULE_NAME$
|
|
2945
|
-
create: create$
|
|
2944
|
+
name: RULE_NAME$13,
|
|
2945
|
+
create: create$13,
|
|
2946
2946
|
defaultOptions: []
|
|
2947
2947
|
});
|
|
2948
|
-
function create$
|
|
2948
|
+
function create$13(context) {
|
|
2949
2949
|
const classStack = [];
|
|
2950
2950
|
const methodStack = [];
|
|
2951
2951
|
const propertyDefs = /* @__PURE__ */ new WeakMap();
|
|
@@ -3026,7 +3026,7 @@ function create$12(context) {
|
|
|
3026
3026
|
|
|
3027
3027
|
//#endregion
|
|
3028
3028
|
//#region src/rules/no-unused-props.ts
|
|
3029
|
-
const RULE_NAME$
|
|
3029
|
+
const RULE_NAME$12 = "no-unused-props";
|
|
3030
3030
|
var no_unused_props_default = createRule({
|
|
3031
3031
|
meta: {
|
|
3032
3032
|
type: "problem",
|
|
@@ -3034,11 +3034,11 @@ var no_unused_props_default = createRule({
|
|
|
3034
3034
|
messages: { default: "Prop `{{name}}` is declared but never used" },
|
|
3035
3035
|
schema: []
|
|
3036
3036
|
},
|
|
3037
|
-
name: RULE_NAME$
|
|
3038
|
-
create: create$
|
|
3037
|
+
name: RULE_NAME$12,
|
|
3038
|
+
create: create$12,
|
|
3039
3039
|
defaultOptions: []
|
|
3040
3040
|
});
|
|
3041
|
-
function create$
|
|
3041
|
+
function create$12(context) {
|
|
3042
3042
|
const services = ESLintUtils.getParserServices(context, false);
|
|
3043
3043
|
const { ctx, visitor } = core.useComponentCollector(context);
|
|
3044
3044
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
@@ -3136,7 +3136,7 @@ function reportUnusedProp(context, services, prop) {
|
|
|
3136
3136
|
|
|
3137
3137
|
//#endregion
|
|
3138
3138
|
//#region src/rules/no-unused-state.ts
|
|
3139
|
-
const RULE_NAME$
|
|
3139
|
+
const RULE_NAME$11 = "no-unused-state";
|
|
3140
3140
|
function isKeyLiteral(node, key) {
|
|
3141
3141
|
return match(key).with({ type: AST_NODE_TYPES.Literal }, constTrue).with({
|
|
3142
3142
|
type: AST_NODE_TYPES.TemplateLiteral,
|
|
@@ -3150,11 +3150,11 @@ var no_unused_state_default = createRule({
|
|
|
3150
3150
|
messages: { default: "Unused class component state in '{{className}}'" },
|
|
3151
3151
|
schema: []
|
|
3152
3152
|
},
|
|
3153
|
-
name: RULE_NAME$
|
|
3154
|
-
create: create$
|
|
3153
|
+
name: RULE_NAME$11,
|
|
3154
|
+
create: create$11,
|
|
3155
3155
|
defaultOptions: []
|
|
3156
3156
|
});
|
|
3157
|
-
function create$
|
|
3157
|
+
function create$11(context) {
|
|
3158
3158
|
const classStack = [];
|
|
3159
3159
|
const methodStack = [];
|
|
3160
3160
|
const constructorStack = [];
|
|
@@ -3263,7 +3263,7 @@ function create$10(context) {
|
|
|
3263
3263
|
|
|
3264
3264
|
//#endregion
|
|
3265
3265
|
//#region src/rules/no-use-context.ts
|
|
3266
|
-
const RULE_NAME$
|
|
3266
|
+
const RULE_NAME$10 = "no-use-context";
|
|
3267
3267
|
var no_use_context_default = createRule({
|
|
3268
3268
|
meta: {
|
|
3269
3269
|
type: "problem",
|
|
@@ -3272,11 +3272,11 @@ var no_use_context_default = createRule({
|
|
|
3272
3272
|
messages: { default: "In React 19, 'use' is preferred over 'useContext' because it is more flexible." },
|
|
3273
3273
|
schema: []
|
|
3274
3274
|
},
|
|
3275
|
-
name: RULE_NAME$
|
|
3276
|
-
create: create$
|
|
3275
|
+
name: RULE_NAME$10,
|
|
3276
|
+
create: create$10,
|
|
3277
3277
|
defaultOptions: []
|
|
3278
3278
|
});
|
|
3279
|
-
function create$
|
|
3279
|
+
function create$10(context) {
|
|
3280
3280
|
if (!context.sourceCode.text.includes("useContext")) return {};
|
|
3281
3281
|
const settings = getSettingsFromContext(context);
|
|
3282
3282
|
if (compare(settings.version, "19.0.0", "<")) return {};
|
|
@@ -3341,7 +3341,7 @@ function getCorrelativeTokens(context, node) {
|
|
|
3341
3341
|
|
|
3342
3342
|
//#endregion
|
|
3343
3343
|
//#region src/rules/no-useless-forward-ref.ts
|
|
3344
|
-
const RULE_NAME$
|
|
3344
|
+
const RULE_NAME$9 = "no-useless-forward-ref";
|
|
3345
3345
|
var no_useless_forward_ref_default = createRule({
|
|
3346
3346
|
meta: {
|
|
3347
3347
|
type: "problem",
|
|
@@ -3349,11 +3349,11 @@ var no_useless_forward_ref_default = createRule({
|
|
|
3349
3349
|
messages: { default: "A 'forwardRef' is used with this component but no 'ref' parameter is set." },
|
|
3350
3350
|
schema: []
|
|
3351
3351
|
},
|
|
3352
|
-
name: RULE_NAME$
|
|
3353
|
-
create: create$
|
|
3352
|
+
name: RULE_NAME$9,
|
|
3353
|
+
create: create$9,
|
|
3354
3354
|
defaultOptions: []
|
|
3355
3355
|
});
|
|
3356
|
-
function create$
|
|
3356
|
+
function create$9(context) {
|
|
3357
3357
|
return { CallExpression(node) {
|
|
3358
3358
|
if (!core.isForwardRefCall(context, node)) return;
|
|
3359
3359
|
const [component] = node.arguments;
|
|
@@ -3368,7 +3368,7 @@ function create$8(context) {
|
|
|
3368
3368
|
|
|
3369
3369
|
//#endregion
|
|
3370
3370
|
//#region src/rules/no-useless-fragment.ts
|
|
3371
|
-
const RULE_NAME$
|
|
3371
|
+
const RULE_NAME$8 = "no-useless-fragment";
|
|
3372
3372
|
const defaultOptions = [{
|
|
3373
3373
|
allowEmptyFragment: false,
|
|
3374
3374
|
allowExpressions: true
|
|
@@ -3396,11 +3396,11 @@ var no_useless_fragment_default = createRule({
|
|
|
3396
3396
|
messages: { default: "A fragment {{reason}} is useless." },
|
|
3397
3397
|
schema
|
|
3398
3398
|
},
|
|
3399
|
-
name: RULE_NAME$
|
|
3400
|
-
create: create$
|
|
3399
|
+
name: RULE_NAME$8,
|
|
3400
|
+
create: create$8,
|
|
3401
3401
|
defaultOptions
|
|
3402
3402
|
});
|
|
3403
|
-
function create$
|
|
3403
|
+
function create$8(context, [option]) {
|
|
3404
3404
|
const { allowEmptyFragment = false, allowExpressions = true } = option;
|
|
3405
3405
|
const jsxConfig = {
|
|
3406
3406
|
...core.getJsxConfigFromContext(context),
|
|
@@ -3508,7 +3508,7 @@ function trimLikeReact(text) {
|
|
|
3508
3508
|
|
|
3509
3509
|
//#endregion
|
|
3510
3510
|
//#region src/rules/prefer-destructuring-assignment.ts
|
|
3511
|
-
const RULE_NAME$
|
|
3511
|
+
const RULE_NAME$7 = "prefer-destructuring-assignment";
|
|
3512
3512
|
var prefer_destructuring_assignment_default = createRule({
|
|
3513
3513
|
meta: {
|
|
3514
3514
|
type: "problem",
|
|
@@ -3516,11 +3516,11 @@ var prefer_destructuring_assignment_default = createRule({
|
|
|
3516
3516
|
messages: { default: "Use destructuring assignment for component props." },
|
|
3517
3517
|
schema: []
|
|
3518
3518
|
},
|
|
3519
|
-
name: RULE_NAME$
|
|
3520
|
-
create: create$
|
|
3519
|
+
name: RULE_NAME$7,
|
|
3520
|
+
create: create$7,
|
|
3521
3521
|
defaultOptions: []
|
|
3522
3522
|
});
|
|
3523
|
-
function create$
|
|
3523
|
+
function create$7(context) {
|
|
3524
3524
|
const { ctx, visitor } = core.useComponentCollector(context);
|
|
3525
3525
|
return defineRuleListener(visitor, { "Program:exit"(program) {
|
|
3526
3526
|
for (const component of ctx.getAllComponents(program)) {
|
|
@@ -3544,7 +3544,7 @@ function create$6(context) {
|
|
|
3544
3544
|
|
|
3545
3545
|
//#endregion
|
|
3546
3546
|
//#region src/rules/prefer-namespace-import.ts
|
|
3547
|
-
const RULE_NAME$
|
|
3547
|
+
const RULE_NAME$6 = "prefer-namespace-import";
|
|
3548
3548
|
var prefer_namespace_import_default = createRule({
|
|
3549
3549
|
meta: {
|
|
3550
3550
|
type: "problem",
|
|
@@ -3553,11 +3553,11 @@ var prefer_namespace_import_default = createRule({
|
|
|
3553
3553
|
messages: { default: "Prefer importing React as 'import * as React from \"{{importSource}}\"';" },
|
|
3554
3554
|
schema: []
|
|
3555
3555
|
},
|
|
3556
|
-
name: RULE_NAME$
|
|
3557
|
-
create: create$
|
|
3556
|
+
name: RULE_NAME$6,
|
|
3557
|
+
create: create$6,
|
|
3558
3558
|
defaultOptions: []
|
|
3559
3559
|
});
|
|
3560
|
-
function create$
|
|
3560
|
+
function create$6(context) {
|
|
3561
3561
|
const { importSource } = getSettingsFromContext(context);
|
|
3562
3562
|
return { [`ImportDeclaration[source.value="${importSource}"] ImportDefaultSpecifier`](node) {
|
|
3563
3563
|
const hasOtherSpecifiers = node.parent.specifiers.length > 1;
|
|
@@ -3581,7 +3581,7 @@ function create$5(context) {
|
|
|
3581
3581
|
|
|
3582
3582
|
//#endregion
|
|
3583
3583
|
//#region src/rules/prefer-read-only-props.ts
|
|
3584
|
-
const RULE_NAME$
|
|
3584
|
+
const RULE_NAME$5 = "prefer-read-only-props";
|
|
3585
3585
|
var prefer_read_only_props_default = createRule({
|
|
3586
3586
|
meta: {
|
|
3587
3587
|
type: "problem",
|
|
@@ -3589,11 +3589,11 @@ var prefer_read_only_props_default = createRule({
|
|
|
3589
3589
|
messages: { default: "A function component's props should be read-only." },
|
|
3590
3590
|
schema: []
|
|
3591
3591
|
},
|
|
3592
|
-
name: RULE_NAME$
|
|
3593
|
-
create: create$
|
|
3592
|
+
name: RULE_NAME$5,
|
|
3593
|
+
create: create$5,
|
|
3594
3594
|
defaultOptions: []
|
|
3595
3595
|
});
|
|
3596
|
-
function create$
|
|
3596
|
+
function create$5(context) {
|
|
3597
3597
|
const services = ESLintUtils.getParserServices(context, false);
|
|
3598
3598
|
const checker = services.program.getTypeChecker();
|
|
3599
3599
|
const { ctx, visitor } = core.useComponentCollector(context);
|
|
@@ -3634,7 +3634,7 @@ function isClassOrInterfaceReadonlyLoose(checker, type) {
|
|
|
3634
3634
|
|
|
3635
3635
|
//#endregion
|
|
3636
3636
|
//#region src/rules/prefer-use-state-lazy-initialization.ts
|
|
3637
|
-
const RULE_NAME$
|
|
3637
|
+
const RULE_NAME$4 = "prefer-use-state-lazy-initialization";
|
|
3638
3638
|
const ALLOW_LIST = [
|
|
3639
3639
|
"Boolean",
|
|
3640
3640
|
"String",
|
|
@@ -3647,11 +3647,11 @@ var prefer_use_state_lazy_initialization_default = createRule({
|
|
|
3647
3647
|
messages: { default: "To prevent re-computation, consider using lazy initial state for useState calls that involve function calls. Ex: 'useState(() => getValue())'." },
|
|
3648
3648
|
schema: []
|
|
3649
3649
|
},
|
|
3650
|
-
name: RULE_NAME$
|
|
3651
|
-
create: create$
|
|
3650
|
+
name: RULE_NAME$4,
|
|
3651
|
+
create: create$4,
|
|
3652
3652
|
defaultOptions: []
|
|
3653
3653
|
});
|
|
3654
|
-
function create$
|
|
3654
|
+
function create$4(context) {
|
|
3655
3655
|
return { CallExpression(node) {
|
|
3656
3656
|
if (!core.isUseStateCall(node)) return;
|
|
3657
3657
|
const [useStateInput] = node.arguments;
|
|
@@ -3678,6 +3678,90 @@ function create$3(context) {
|
|
|
3678
3678
|
} };
|
|
3679
3679
|
}
|
|
3680
3680
|
|
|
3681
|
+
//#endregion
|
|
3682
|
+
//#region src/rules/purity.ts
|
|
3683
|
+
const RULE_NAME$3 = "purity";
|
|
3684
|
+
function isImpureMemberCall(node) {
|
|
3685
|
+
if (node.callee.type !== AST_NODE_TYPES.MemberExpression) return false;
|
|
3686
|
+
const { object, property } = node.callee;
|
|
3687
|
+
if (object.type !== AST_NODE_TYPES.Identifier) return false;
|
|
3688
|
+
if (property.type !== AST_NODE_TYPES.Identifier) return false;
|
|
3689
|
+
const methods = IMPURE_FUNCTIONS.get(object.name);
|
|
3690
|
+
if (methods == null) return false;
|
|
3691
|
+
return methods.has(property.name);
|
|
3692
|
+
}
|
|
3693
|
+
function isImpureNewExpression(node) {
|
|
3694
|
+
if (node.callee.type !== AST_NODE_TYPES.Identifier) return false;
|
|
3695
|
+
return IMPURE_CONSTRUCTORS.has(node.callee.name);
|
|
3696
|
+
}
|
|
3697
|
+
function getImpureCallName(node) {
|
|
3698
|
+
if (node.callee.type !== AST_NODE_TYPES.MemberExpression) return null;
|
|
3699
|
+
const { object, property } = node.callee;
|
|
3700
|
+
if (object.type !== AST_NODE_TYPES.Identifier) return null;
|
|
3701
|
+
if (property.type !== AST_NODE_TYPES.Identifier) return null;
|
|
3702
|
+
return `${object.name}.${property.name}()`;
|
|
3703
|
+
}
|
|
3704
|
+
function getImpureNewName(node) {
|
|
3705
|
+
if (node.callee.type !== AST_NODE_TYPES.Identifier) return null;
|
|
3706
|
+
return `new ${node.callee.name}()`;
|
|
3707
|
+
}
|
|
3708
|
+
var purity_default = createRule({
|
|
3709
|
+
meta: {
|
|
3710
|
+
type: "problem",
|
|
3711
|
+
docs: { description: "Validates that components and hooks are pure by checking that they do not call known-impure functions during render." },
|
|
3712
|
+
messages: { default: "Do not call '{{name}}' during render. Components and hooks must be pure. Move this call into an event handler, effect, or state initializer." },
|
|
3713
|
+
schema: []
|
|
3714
|
+
},
|
|
3715
|
+
name: RULE_NAME$3,
|
|
3716
|
+
create: create$3,
|
|
3717
|
+
defaultOptions: []
|
|
3718
|
+
});
|
|
3719
|
+
function create$3(context) {
|
|
3720
|
+
const hCollector = core.useHookCollector(context);
|
|
3721
|
+
const cCollector = core.useComponentCollector(context);
|
|
3722
|
+
const cExprs = [];
|
|
3723
|
+
const nExprs = [];
|
|
3724
|
+
return defineRuleListener(hCollector.visitor, cCollector.visitor, {
|
|
3725
|
+
CallExpression(node) {
|
|
3726
|
+
if (!isImpureMemberCall(node)) return;
|
|
3727
|
+
const name = getImpureCallName(node);
|
|
3728
|
+
if (name == null) return;
|
|
3729
|
+
const func = ast.findParentNode(node, ast.isFunction);
|
|
3730
|
+
if (func == null) return;
|
|
3731
|
+
cExprs.push({
|
|
3732
|
+
name,
|
|
3733
|
+
node,
|
|
3734
|
+
func
|
|
3735
|
+
});
|
|
3736
|
+
},
|
|
3737
|
+
NewExpression(node) {
|
|
3738
|
+
if (!isImpureNewExpression(node)) return;
|
|
3739
|
+
const name = getImpureNewName(node);
|
|
3740
|
+
if (name == null) return;
|
|
3741
|
+
const func = ast.findParentNode(node, ast.isFunction);
|
|
3742
|
+
if (func == null) return;
|
|
3743
|
+
nExprs.push({
|
|
3744
|
+
name,
|
|
3745
|
+
node,
|
|
3746
|
+
func
|
|
3747
|
+
});
|
|
3748
|
+
},
|
|
3749
|
+
"Program:exit"(node) {
|
|
3750
|
+
const components = cCollector.ctx.getAllComponents(node);
|
|
3751
|
+
const hooks = hCollector.ctx.getAllHooks(node);
|
|
3752
|
+
const funcs = [...components, ...hooks];
|
|
3753
|
+
for (const { name, node, func } of [...cExprs, ...nExprs]) {
|
|
3754
|
+
if (!funcs.some((f) => f.node === func)) continue;
|
|
3755
|
+
context.report({
|
|
3756
|
+
messageId: "default",
|
|
3757
|
+
node,
|
|
3758
|
+
data: { name }
|
|
3759
|
+
});
|
|
3760
|
+
}
|
|
3761
|
+
}
|
|
3762
|
+
});
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3681
3765
|
//#endregion
|
|
3682
3766
|
//#region src/rules/rules-of-hooks.ts
|
|
3683
3767
|
const RULE_NAME$2 = "rules-of-hooks";
|
|
@@ -4295,6 +4379,7 @@ const plugin = {
|
|
|
4295
4379
|
"prefer-namespace-import": prefer_namespace_import_default,
|
|
4296
4380
|
"prefer-read-only-props": prefer_read_only_props_default,
|
|
4297
4381
|
"prefer-use-state-lazy-initialization": prefer_use_state_lazy_initialization_default,
|
|
4382
|
+
purity: purity_default,
|
|
4298
4383
|
"rules-of-hooks": rules_of_hooks_default,
|
|
4299
4384
|
"set-state-in-effect": set_state_in_effect_default,
|
|
4300
4385
|
"set-state-in-render": set_state_in_render_default
|
|
@@ -4348,6 +4433,7 @@ const rules$6 = {
|
|
|
4348
4433
|
"react-x/no-use-context": "warn",
|
|
4349
4434
|
"react-x/no-useless-forward-ref": "warn",
|
|
4350
4435
|
"react-x/prefer-use-state-lazy-initialization": "warn",
|
|
4436
|
+
"react-x/purity": "warn",
|
|
4351
4437
|
"react-x/rules-of-hooks": "error",
|
|
4352
4438
|
"react-x/set-state-in-effect": "warn",
|
|
4353
4439
|
"react-x/set-state-in-render": "error"
|