eslint-plugin-react-x 5.24.4 → 5.24.5

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.
Files changed (2) hide show
  1. package/dist/index.js +100 -163
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -135,7 +135,7 @@ const rules$6 = {
135
135
  //#endregion
136
136
  //#region package.json
137
137
  var name$6 = "eslint-plugin-react-x";
138
- var version = "5.24.4";
138
+ var version = "5.24.5";
139
139
  //#endregion
140
140
  //#region src/utils/create-rule.ts
141
141
  function getDocsUrl(ruleName) {
@@ -153,8 +153,7 @@ var error_boundaries_default = createRule({
153
153
  schema: []
154
154
  },
155
155
  name: "error-boundaries",
156
- create: create$50,
157
- defaultOptions: []
156
+ create: create$50
158
157
  });
159
158
  function create$50(context) {
160
159
  if (!context.sourceCode.text.includes("try")) return {};
@@ -1260,8 +1259,7 @@ var globals_default = createRule({
1260
1259
  schema: []
1261
1260
  },
1262
1261
  name: "globals",
1263
- create: create$49,
1264
- defaultOptions: []
1262
+ create: create$49
1265
1263
  });
1266
1264
  function create$49(context) {
1267
1265
  const hooks = core.getHookCollector(context);
@@ -1635,8 +1633,7 @@ var immutability_default = createRule({
1635
1633
  schema: []
1636
1634
  },
1637
1635
  name: "immutability",
1638
- create: create$48,
1639
- defaultOptions: []
1636
+ create: create$48
1640
1637
  });
1641
1638
  function create$48(context) {
1642
1639
  const hooks = core.getHookCollector(context);
@@ -1695,8 +1692,7 @@ var no_access_state_in_setstate_default = createRule({
1695
1692
  schema: []
1696
1693
  },
1697
1694
  name: "no-access-state-in-setstate",
1698
- create: create$47,
1699
- defaultOptions: []
1695
+ create: create$47
1700
1696
  });
1701
1697
  function create$47(context) {
1702
1698
  if (!context.sourceCode.text.includes("setState")) return {};
@@ -1763,8 +1759,7 @@ var no_array_index_key_default = createRule({
1763
1759
  schema: []
1764
1760
  },
1765
1761
  name: RULE_NAME$46,
1766
- create: create$46,
1767
- defaultOptions: []
1762
+ create: create$46
1768
1763
  });
1769
1764
  function create$46(context) {
1770
1765
  function isArrayIndex(node) {
@@ -1834,8 +1829,7 @@ var no_children_count_default = createRule({
1834
1829
  schema: []
1835
1830
  },
1836
1831
  name: "no-children-count",
1837
- create: create$45,
1838
- defaultOptions: []
1832
+ create: create$45
1839
1833
  });
1840
1834
  function create$45(context) {
1841
1835
  return { MemberExpression(node) {
@@ -1853,8 +1847,7 @@ var no_children_for_each_default = createRule({
1853
1847
  schema: []
1854
1848
  },
1855
1849
  name: "no-children-for-each",
1856
- create: create$44,
1857
- defaultOptions: []
1850
+ create: create$44
1858
1851
  });
1859
1852
  function create$44(context) {
1860
1853
  return { MemberExpression(node) {
@@ -1872,8 +1865,7 @@ var no_children_map_default = createRule({
1872
1865
  schema: []
1873
1866
  },
1874
1867
  name: "no-children-map",
1875
- create: create$43,
1876
- defaultOptions: []
1868
+ create: create$43
1877
1869
  });
1878
1870
  function create$43(context) {
1879
1871
  return { MemberExpression(node) {
@@ -1891,8 +1883,7 @@ var no_children_only_default = createRule({
1891
1883
  schema: []
1892
1884
  },
1893
1885
  name: "no-children-only",
1894
- create: create$42,
1895
- defaultOptions: []
1886
+ create: create$42
1896
1887
  });
1897
1888
  function create$42(context) {
1898
1889
  return { MemberExpression(node) {
@@ -1910,8 +1901,7 @@ var no_children_to_array_default = createRule({
1910
1901
  schema: []
1911
1902
  },
1912
1903
  name: "no-children-to-array",
1913
- create: create$41,
1914
- defaultOptions: []
1904
+ create: create$41
1915
1905
  });
1916
1906
  function create$41(context) {
1917
1907
  return { MemberExpression(node) {
@@ -2062,18 +2052,16 @@ var no_class_component_default = createRule({
2062
2052
  schema: []
2063
2053
  },
2064
2054
  name: "no-class-component",
2065
- create: create$40,
2066
- defaultOptions: []
2055
+ create: create$40
2067
2056
  });
2068
2057
  function create$40(context) {
2069
2058
  if (!context.sourceCode.text.includes("Component")) return {};
2070
2059
  const { api, visitor } = core.getClassComponentCollector(context);
2071
2060
  return merge(visitor, { "Program:exit"(program) {
2072
- for (const { id, name = "anonymous", node: component } of api.getAllComponents(program)) {
2061
+ for (const { id, node: component } of api.getAllComponents(program)) {
2073
2062
  if (component.body.body.some(or(core.isComponentDidCatch, core.isGetDerivedStateFromError))) continue;
2074
2063
  const classToken = context.sourceCode.getFirstToken(component, { filter: (token) => token.value === "class" });
2075
2064
  context.report({
2076
- data: { name },
2077
2065
  loc: (id ?? classToken ?? component).loc,
2078
2066
  messageId: "default",
2079
2067
  node: component
@@ -2089,8 +2077,7 @@ var no_clone_element_default = createRule({
2089
2077
  schema: []
2090
2078
  },
2091
2079
  name: "no-clone-element",
2092
- create: create$39,
2093
- defaultOptions: []
2080
+ create: create$39
2094
2081
  });
2095
2082
  function create$39(context) {
2096
2083
  return { CallExpression(node) {
@@ -2109,8 +2096,7 @@ var no_component_will_mount_default = createRule({
2109
2096
  schema: []
2110
2097
  },
2111
2098
  name: "no-component-will-mount",
2112
- create: create$38,
2113
- defaultOptions: []
2099
+ create: create$38
2114
2100
  });
2115
2101
  function create$38(context) {
2116
2102
  if (!context.sourceCode.text.includes("componentWillMount")) return {};
@@ -2138,8 +2124,7 @@ var no_component_will_receive_props_default = createRule({
2138
2124
  schema: []
2139
2125
  },
2140
2126
  name: "no-component-will-receive-props",
2141
- create: create$37,
2142
- defaultOptions: []
2127
+ create: create$37
2143
2128
  });
2144
2129
  function create$37(context) {
2145
2130
  if (!context.sourceCode.text.includes("componentWillReceiveProps")) return {};
@@ -2167,8 +2152,7 @@ var no_component_will_update_default = createRule({
2167
2152
  schema: []
2168
2153
  },
2169
2154
  name: "no-component-will-update",
2170
- create: create$36,
2171
- defaultOptions: []
2155
+ create: create$36
2172
2156
  });
2173
2157
  function create$36(context) {
2174
2158
  if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
@@ -2200,8 +2184,7 @@ var no_context_provider_default = createRule({
2200
2184
  schema: []
2201
2185
  },
2202
2186
  name: "no-context-provider",
2203
- create: create$35,
2204
- defaultOptions: []
2187
+ create: create$35
2205
2188
  });
2206
2189
  function create$35(context) {
2207
2190
  if (!context.sourceCode.text.includes("Provider")) return {};
@@ -2238,24 +2221,23 @@ var no_create_ref_default = createRule({
2238
2221
  schema: []
2239
2222
  },
2240
2223
  name: "no-create-ref",
2241
- create: create$34,
2242
- defaultOptions: []
2224
+ create: create$34
2243
2225
  });
2244
2226
  function create$34(context) {
2245
2227
  if (!context.sourceCode.text.includes("createRef")) return {};
2246
2228
  const fc = core.getFunctionComponentCollector(context);
2247
2229
  const hc = core.getHookCollector(context);
2248
- const createRefCalls = /* @__PURE__ */ new Set();
2230
+ const facts = /* @__PURE__ */ new Set();
2249
2231
  return merge(fc.visitor, hc.visitor, {
2250
2232
  CallExpression(node) {
2251
2233
  if (!core.isCreateRefCall(context, node)) return;
2252
- createRefCalls.add(node);
2234
+ facts.add(node);
2253
2235
  },
2254
2236
  "Program:exit"(node) {
2255
2237
  const comps = fc.api.getAllComponents(node);
2256
2238
  const hooks = hc.api.getAllHooks(node);
2257
2239
  const funcs = [...comps, ...hooks];
2258
- for (const call of createRefCalls) {
2240
+ for (const call of facts) {
2259
2241
  if (Traverse.findParent(call, (n) => funcs.some((f) => f.node === n)) == null) continue;
2260
2242
  context.report({
2261
2243
  messageId: "default",
@@ -2273,8 +2255,7 @@ var no_direct_mutation_state_default = createRule({
2273
2255
  schema: []
2274
2256
  },
2275
2257
  name: "no-direct-mutation-state",
2276
- create: create$33,
2277
- defaultOptions: []
2258
+ create: create$33
2278
2259
  });
2279
2260
  function isConstructorFunction(node) {
2280
2261
  return Check.isOneOf([AST_NODE_TYPES.FunctionDeclaration, AST_NODE_TYPES.FunctionExpression])(node) && Check.isPropertyOrMethod(node.parent) && Check.isIdentifier(node.parent.key, "constructor");
@@ -2309,8 +2290,7 @@ var no_duplicate_key_default = createRule({
2309
2290
  schema: []
2310
2291
  },
2311
2292
  name: "no-duplicate-key",
2312
- create: create$32,
2313
- defaultOptions: []
2293
+ create: create$32
2314
2294
  });
2315
2295
  function create$32(context) {
2316
2296
  if (!context.sourceCode.text.includes("key=")) return {};
@@ -2361,7 +2341,6 @@ function create$32(context) {
2361
2341
  for (const { hasDuplicate, keys } of keyedEntries.values()) {
2362
2342
  if (!hasDuplicate) continue;
2363
2343
  for (const key of keys) context.report({
2364
- data: { value: context.sourceCode.getText(key) },
2365
2344
  messageId: "default",
2366
2345
  node: key
2367
2346
  });
@@ -2382,8 +2361,7 @@ var no_forward_ref_default = createRule({
2382
2361
  schema: []
2383
2362
  },
2384
2363
  name: "no-forward-ref",
2385
- create: create$31,
2386
- defaultOptions: []
2364
+ create: create$31
2387
2365
  });
2388
2366
  function create$31(context) {
2389
2367
  if (!context.sourceCode.text.includes("forwardRef")) return {};
@@ -2497,8 +2475,7 @@ var no_implicit_children_default = createRule({
2497
2475
  schema: []
2498
2476
  },
2499
2477
  name: RULE_NAME$30,
2500
- create: create$30,
2501
- defaultOptions: []
2478
+ create: create$30
2502
2479
  });
2503
2480
  function create$30(context) {
2504
2481
  return createImplicitPropListener(context, {
@@ -2521,8 +2498,7 @@ var no_implicit_key_default = createRule({
2521
2498
  schema: []
2522
2499
  },
2523
2500
  name: "no-implicit-key",
2524
- create: create$29,
2525
- defaultOptions: []
2501
+ create: create$29
2526
2502
  });
2527
2503
  function create$29(context) {
2528
2504
  return createImplicitPropListener(context, {
@@ -2549,8 +2525,7 @@ var no_implicit_ref_default = createRule({
2549
2525
  schema: []
2550
2526
  },
2551
2527
  name: RULE_NAME$28,
2552
- create: create$28,
2553
- defaultOptions: []
2528
+ create: create$28
2554
2529
  });
2555
2530
  function create$28(context) {
2556
2531
  return createImplicitPropListener(context, {
@@ -2573,8 +2548,7 @@ var no_leaked_conditional_rendering_default = createRule({
2573
2548
  schema: []
2574
2549
  },
2575
2550
  name: "no-leaked-conditional-rendering",
2576
- create: create$27,
2577
- defaultOptions: []
2551
+ create: create$27
2578
2552
  });
2579
2553
  function create$27(context) {
2580
2554
  if (!context.sourceCode.text.includes("&&")) return {};
@@ -2636,8 +2610,7 @@ var no_missing_component_display_name_default = createRule({
2636
2610
  schema: []
2637
2611
  },
2638
2612
  name: "no-missing-component-display-name",
2639
- create: create$26,
2640
- defaultOptions: []
2613
+ create: create$26
2641
2614
  });
2642
2615
  function create$26(context) {
2643
2616
  if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
@@ -2667,8 +2640,7 @@ var no_missing_context_display_name_default = createRule({
2667
2640
  schema: []
2668
2641
  },
2669
2642
  name: "no-missing-context-display-name",
2670
- create: create$25,
2671
- defaultOptions: []
2643
+ create: create$25
2672
2644
  });
2673
2645
  function create$25(context) {
2674
2646
  if (!context.sourceCode.text.includes("createContext")) return {};
@@ -2747,8 +2719,7 @@ var no_missing_key_default = createRule({
2747
2719
  schema: []
2748
2720
  },
2749
2721
  name: "no-missing-key",
2750
- create: create$24,
2751
- defaultOptions: []
2722
+ create: create$24
2752
2723
  });
2753
2724
  function getIteratorCallback(node) {
2754
2725
  const callee = Extract.unwrap(node.callee);
@@ -2842,8 +2813,7 @@ var no_misused_capture_owner_stack_default = createRule({
2842
2813
  schema: []
2843
2814
  },
2844
2815
  name: "no-misused-capture-owner-stack",
2845
- create: create$23,
2846
- defaultOptions: []
2816
+ create: create$23
2847
2817
  });
2848
2818
  function create$23(context) {
2849
2819
  if (!context.sourceCode.text.includes("captureOwnerStack")) return {};
@@ -2947,8 +2917,7 @@ var no_nested_component_definitions_default = createRule({
2947
2917
  schema: []
2948
2918
  },
2949
2919
  name: "no-nested-component-definitions",
2950
- create: create$22,
2951
- defaultOptions: []
2920
+ create: create$22
2952
2921
  });
2953
2922
  function create$22(context) {
2954
2923
  const hint = core.FunctionComponentDetectionHint.DoNotIncludeJsxWithNumberValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithBooleanValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithNullValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithStringValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithUndefinedValue | core.FunctionComponentDetectionHint.RequireBothSidesOfLogicalExpressionToBeJsx | core.FunctionComponentDetectionHint.RequireBothBranchesOfConditionalExpressionToBeJsx | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayPatternElement | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayExpressionElement | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayMapCallback | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayFlatMapCallback;
@@ -2971,10 +2940,7 @@ function create$22(context) {
2971
2940
  if (name == null || !core.isFunctionComponentNameLoose(name)) continue;
2972
2941
  if (isInsideJSXAttributeValue(component)) {
2973
2942
  context.report({
2974
- data: {
2975
- name,
2976
- suggestion: "Move it to the top level or pass it as a prop."
2977
- },
2943
+ data: { suggestion: "Move it to the top level or pass it as a prop." },
2978
2944
  messageId: "default",
2979
2945
  node: component
2980
2946
  });
@@ -2982,10 +2948,7 @@ function create$22(context) {
2982
2948
  }
2983
2949
  if (core.isInsideCreateElementProps(context, component)) {
2984
2950
  context.report({
2985
- data: {
2986
- name,
2987
- suggestion: "Move it to the top level or pass it as a prop."
2988
- },
2951
+ data: { suggestion: "Move it to the top level or pass it as a prop." },
2989
2952
  messageId: "default",
2990
2953
  node: component
2991
2954
  });
@@ -2993,31 +2956,22 @@ function create$22(context) {
2993
2956
  }
2994
2957
  if (findEnclosingComponent(component) != null) {
2995
2958
  context.report({
2996
- data: {
2997
- name,
2998
- suggestion: component.parent.type === AST_NODE_TYPES.Property ? "Move it to the top level or pass it as a prop." : "Move it to the top level."
2999
- },
2959
+ data: { suggestion: component.parent.type === AST_NODE_TYPES.Property ? "Move it to the top level or pass it as a prop." : "Move it to the top level." },
3000
2960
  messageId: "default",
3001
2961
  node: component
3002
2962
  });
3003
2963
  continue;
3004
2964
  }
3005
2965
  if (isInsideRenderMethod(component)) context.report({
3006
- data: {
3007
- name,
3008
- suggestion: "Move it to the top level."
3009
- },
2966
+ data: { suggestion: "Move it to the top level." },
3010
2967
  messageId: "default",
3011
2968
  node: component
3012
2969
  });
3013
2970
  }
3014
- for (const { name = "unknown", node: component } of cComponents) {
2971
+ for (const { node: component } of cComponents) {
3015
2972
  if (findEnclosingComponent(component) == null) continue;
3016
2973
  context.report({
3017
- data: {
3018
- name,
3019
- suggestion: component.parent.type === AST_NODE_TYPES.Property ? "Move it to the top level or pass it as a prop." : "Move it to the top level."
3020
- },
2974
+ data: { suggestion: component.parent.type === AST_NODE_TYPES.Property ? "Move it to the top level or pass it as a prop." : "Move it to the top level." },
3021
2975
  messageId: "default",
3022
2976
  node: component
3023
2977
  });
@@ -3032,8 +2986,7 @@ var no_nested_lazy_component_declarations_default = createRule({
3032
2986
  schema: []
3033
2987
  },
3034
2988
  name: "no-nested-lazy-component-declarations",
3035
- create: create$21,
3036
- defaultOptions: []
2989
+ create: create$21
3037
2990
  });
3038
2991
  function create$21(context) {
3039
2992
  const fc = core.getFunctionComponentCollector(context);
@@ -3042,7 +2995,7 @@ function create$21(context) {
3042
2995
  const lazyCalls = /* @__PURE__ */ new Set();
3043
2996
  return merge(fc.visitor, cc.visitor, hc.visitor, {
3044
2997
  ImportExpression(node) {
3045
- const lazyCall = Traverse.findParent(node, (n) => core.isLazyCall(context, n));
2998
+ const lazyCall = Traverse.findParent(node, core.isLazyCall(context));
3046
2999
  if (lazyCall != null) lazyCalls.add(lazyCall);
3047
3000
  },
3048
3001
  "Program:exit"(program) {
@@ -3066,8 +3019,7 @@ var no_set_state_in_component_did_mount_default = createRule({
3066
3019
  schema: []
3067
3020
  },
3068
3021
  name: "no-set-state-in-component-did-mount",
3069
- create: create$20,
3070
- defaultOptions: []
3022
+ create: create$20
3071
3023
  });
3072
3024
  function create$20(context) {
3073
3025
  if (!context.sourceCode.text.includes("componentDidMount")) return {};
@@ -3092,8 +3044,7 @@ var no_set_state_in_component_did_update_default = createRule({
3092
3044
  schema: []
3093
3045
  },
3094
3046
  name: "no-set-state-in-component-did-update",
3095
- create: create$19,
3096
- defaultOptions: []
3047
+ create: create$19
3097
3048
  });
3098
3049
  function create$19(context) {
3099
3050
  if (!context.sourceCode.text.includes("componentDidUpdate")) return {};
@@ -3118,8 +3069,7 @@ var no_set_state_in_component_will_update_default = createRule({
3118
3069
  schema: []
3119
3070
  },
3120
3071
  name: "no-set-state-in-component-will-update",
3121
- create: create$18,
3122
- defaultOptions: []
3072
+ create: create$18
3123
3073
  });
3124
3074
  function create$18(context) {
3125
3075
  if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
@@ -3163,8 +3113,7 @@ var no_unnecessary_use_prefix_default = createRule({
3163
3113
  schema: []
3164
3114
  },
3165
3115
  name: "no-unnecessary-use-prefix",
3166
- create: create$17,
3167
- defaultOptions: []
3116
+ create: create$17
3168
3117
  });
3169
3118
  function create$17(context) {
3170
3119
  const { api, visitor } = core.getHookCollector(context);
@@ -3177,7 +3126,6 @@ function create$17(context) {
3177
3126
  if (containsUseComments(context, node)) continue;
3178
3127
  if (isInTestMock(node)) continue;
3179
3128
  context.report({
3180
- data: { name },
3181
3129
  messageId: "default",
3182
3130
  node: id ?? node
3183
3131
  });
@@ -3192,8 +3140,7 @@ var no_unsafe_component_will_mount_default = createRule({
3192
3140
  schema: []
3193
3141
  },
3194
3142
  name: "no-unsafe-component-will-mount",
3195
- create: create$16,
3196
- defaultOptions: []
3143
+ create: create$16
3197
3144
  });
3198
3145
  function create$16(context) {
3199
3146
  if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
@@ -3216,8 +3163,7 @@ var no_unsafe_component_will_receive_props_default = createRule({
3216
3163
  schema: []
3217
3164
  },
3218
3165
  name: "no-unsafe-component-will-receive-props",
3219
- create: create$15,
3220
- defaultOptions: []
3166
+ create: create$15
3221
3167
  });
3222
3168
  function create$15(context) {
3223
3169
  if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) return {};
@@ -3240,8 +3186,7 @@ var no_unsafe_component_will_update_default = createRule({
3240
3186
  schema: []
3241
3187
  },
3242
3188
  name: "no-unsafe-component-will-update",
3243
- create: create$14,
3244
- defaultOptions: []
3189
+ create: create$14
3245
3190
  });
3246
3191
  function create$14(context) {
3247
3192
  if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
@@ -3279,8 +3224,7 @@ var no_unstable_context_value_default = createRule({
3279
3224
  schema: []
3280
3225
  },
3281
3226
  name: "no-unstable-context-value",
3282
- create: create$13,
3283
- defaultOptions: []
3227
+ create: create$13
3284
3228
  });
3285
3229
  function create$13(context) {
3286
3230
  const { compilationMode, version } = getSettingsFromContext(context);
@@ -3341,23 +3285,28 @@ function getHumanReadableKind(node) {
3341
3285
  }
3342
3286
  return toLowerCase(delimiterCase(node.type, " "));
3343
3287
  }
3288
+ //#endregion
3289
+ //#region src/rules/no-unstable-default-props/no-unstable-default-props.ts
3290
+ const RULE_NAME$12 = "no-unstable-default-props";
3291
+ const defaultOptions$1 = [{ safeDefaultProps: [] }];
3292
+ const schema$1 = [{
3293
+ type: "object",
3294
+ additionalProperties: false,
3295
+ properties: { safeDefaultProps: {
3296
+ type: "array",
3297
+ items: { type: "string" }
3298
+ } }
3299
+ }];
3344
3300
  var no_unstable_default_props_default = createRule({
3345
3301
  meta: {
3346
3302
  type: "problem",
3303
+ defaultOptions: [...defaultOptions$1],
3347
3304
  docs: { description: "Prevents using referential-type values as default props in object destructuring." },
3348
3305
  messages: { default: "A/an '{{kind}}' as default prop. This could lead to potential infinite render loop in React. Use a variable instead of '{{kind}}'." },
3349
- schema: [{
3350
- type: "object",
3351
- additionalProperties: false,
3352
- properties: { safeDefaultProps: {
3353
- type: "array",
3354
- items: { type: "string" }
3355
- } }
3356
- }]
3306
+ schema: schema$1
3357
3307
  },
3358
- name: "no-unstable-default-props",
3359
- create: create$12,
3360
- defaultOptions: [{ safeDefaultProps: [] }]
3308
+ name: RULE_NAME$12,
3309
+ create: create$12
3361
3310
  });
3362
3311
  function create$12(context, [options]) {
3363
3312
  const { compilationMode } = getSettingsFromContext(context);
@@ -3440,8 +3389,7 @@ var no_unused_class_component_members_default = createRule({
3440
3389
  schema: []
3441
3390
  },
3442
3391
  name: "no-unused-class-component-members",
3443
- create: create$11,
3444
- defaultOptions: []
3392
+ create: create$11
3445
3393
  });
3446
3394
  function create$11(context) {
3447
3395
  const propertyDefs = /* @__PURE__ */ new WeakMap();
@@ -3571,8 +3519,7 @@ var no_unused_props_default = createRule({
3571
3519
  schema: []
3572
3520
  },
3573
3521
  name: "no-unused-props",
3574
- create: create$10,
3575
- defaultOptions: []
3522
+ create: create$10
3576
3523
  });
3577
3524
  function create$10(context) {
3578
3525
  const services = ESLintUtils.getParserServices(context, false);
@@ -3618,8 +3565,7 @@ var no_unused_state_default = createRule({
3618
3565
  schema: []
3619
3566
  },
3620
3567
  name: "no-unused-state",
3621
- create: create$9,
3622
- defaultOptions: []
3568
+ create: create$9
3623
3569
  });
3624
3570
  function create$9(context) {
3625
3571
  const { additionalStateHooks } = getSettingsFromContext(context);
@@ -3670,8 +3616,7 @@ var no_use_context_default = createRule({
3670
3616
  schema: []
3671
3617
  },
3672
3618
  name: "no-use-context",
3673
- create: create$8,
3674
- defaultOptions: []
3619
+ create: create$8
3675
3620
  });
3676
3621
  function create$8(context) {
3677
3622
  if (!context.sourceCode.text.includes("useContext")) return {};
@@ -4152,8 +4097,7 @@ var purity_default = createRule({
4152
4097
  schema: []
4153
4098
  },
4154
4099
  name: "purity",
4155
- create: create$7,
4156
- defaultOptions: []
4100
+ create: create$7
4157
4101
  });
4158
4102
  function create$7(context) {
4159
4103
  const hc = core.getHookCollector(context);
@@ -4785,8 +4729,7 @@ var refs_default = createRule({
4785
4729
  schema: []
4786
4730
  },
4787
4731
  name: "refs",
4788
- create: create$6,
4789
- defaultOptions: []
4732
+ create: create$6
4790
4733
  });
4791
4734
  function create$6(context) {
4792
4735
  const hooks = core.getHookCollector(context);
@@ -6803,8 +6746,7 @@ var set_state_in_effect_default = createRule({
6803
6746
  schema: []
6804
6747
  },
6805
6748
  name: "set-state-in-effect",
6806
- create: create$5,
6807
- defaultOptions: []
6749
+ create: create$5
6808
6750
  });
6809
6751
  function create$5(context) {
6810
6752
  if (!/use\w*Effect/u.test(context.sourceCode.text)) return {};
@@ -6981,8 +6923,7 @@ var set_state_in_render_default = createRule({
6981
6923
  schema: []
6982
6924
  },
6983
6925
  name: "set-state-in-render",
6984
- create: create$4,
6985
- defaultOptions: []
6926
+ create: create$4
6986
6927
  });
6987
6928
  function create$4(context) {
6988
6929
  const { additionalStateHooks } = getSettingsFromContext(context);
@@ -7117,8 +7058,7 @@ var static_components_default = createRule({
7117
7058
  schema: []
7118
7059
  },
7119
7060
  name: "static-components",
7120
- create: create$3,
7121
- defaultOptions: []
7061
+ create: create$3
7122
7062
  });
7123
7063
  function create$3(context) {
7124
7064
  const hint = core.FunctionComponentDetectionHint.DoNotIncludeJsxWithNumberValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithBooleanValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithNullValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithStringValue | core.FunctionComponentDetectionHint.DoNotIncludeJsxWithUndefinedValue | core.FunctionComponentDetectionHint.RequireBothSidesOfLogicalExpressionToBeJsx | core.FunctionComponentDetectionHint.RequireBothBranchesOfConditionalExpressionToBeJsx | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayPatternElement | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayExpressionElement | core.FunctionComponentDetectionHint.DoNotIncludeFunctionDefinedAsArrayMapCallback;
@@ -7130,14 +7070,12 @@ function create$3(context) {
7130
7070
  const reportedCreations = /* @__PURE__ */ new Set();
7131
7071
  for (const effect of inferCreatedComponents(context, facts.facts.componentUsages, isInsideRender)) {
7132
7072
  context.report({
7133
- data: { name: effect.name },
7134
7073
  messageId: "default",
7135
7074
  node: effect.node
7136
7075
  });
7137
7076
  if (effect.creationNode != null && !reportedCreations.has(effect.creationNode)) {
7138
7077
  reportedCreations.add(effect.creationNode);
7139
7078
  context.report({
7140
- data: { name: effect.name },
7141
7079
  messageId: "created-here",
7142
7080
  node: effect.creationNode
7143
7081
  });
@@ -7168,8 +7106,7 @@ var unsupported_syntax_default = createRule({
7168
7106
  schema: []
7169
7107
  },
7170
7108
  name: "unsupported-syntax",
7171
- create: create$2,
7172
- defaultOptions: []
7109
+ create: create$2
7173
7110
  });
7174
7111
  function create$2(context) {
7175
7112
  const hc = core.getHookCollector(context);
@@ -7350,8 +7287,7 @@ var use_memo_default = createRule({
7350
7287
  schema: []
7351
7288
  },
7352
7289
  name: "use-memo",
7353
- create: create$1,
7354
- defaultOptions: []
7290
+ create: create$1
7355
7291
  });
7356
7292
  function create$1(context) {
7357
7293
  if (!context.sourceCode.text.includes("useMemo")) return {};
@@ -7448,37 +7384,38 @@ const defaultOptions = [{
7448
7384
  enforceLazyInitialization: true,
7449
7385
  enforceSetterName: true
7450
7386
  }];
7387
+ const schema = [{
7388
+ type: "object",
7389
+ additionalProperties: false,
7390
+ properties: {
7391
+ enforceAssignment: {
7392
+ type: "boolean",
7393
+ default: true
7394
+ },
7395
+ enforceLazyInitialization: {
7396
+ type: "boolean",
7397
+ default: true
7398
+ },
7399
+ enforceSetterName: {
7400
+ type: "boolean",
7401
+ default: true
7402
+ }
7403
+ }
7404
+ }];
7451
7405
  var use_state_default = createRule({
7452
7406
  meta: {
7453
7407
  type: "suggestion",
7408
+ defaultOptions: [...defaultOptions],
7454
7409
  docs: { description: "Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function." },
7455
7410
  messages: {
7456
7411
  "invalid-assignment": "useState should be destructured into a value and setter pair, e.g., const [state, setState] = useState(...).",
7457
7412
  "invalid-initialization": "To prevent re-computation, consider using lazy initial state for useState calls that involve function calls. Ex: 'useState(() => getValue())'.",
7458
7413
  "invalid-setter-name": "The setter should be named 'set' followed by the capitalized state variable name, e.g., 'setState' for 'state'."
7459
7414
  },
7460
- schema: [{
7461
- type: "object",
7462
- additionalProperties: false,
7463
- properties: {
7464
- enforceAssignment: {
7465
- type: "boolean",
7466
- default: true
7467
- },
7468
- enforceLazyInitialization: {
7469
- type: "boolean",
7470
- default: true
7471
- },
7472
- enforceSetterName: {
7473
- type: "boolean",
7474
- default: true
7475
- }
7476
- }
7477
- }]
7415
+ schema
7478
7416
  },
7479
7417
  name: RULE_NAME,
7480
- create,
7481
- defaultOptions
7418
+ create
7482
7419
  });
7483
7420
  function create(context) {
7484
7421
  const { enforceAssignment = true, enforceLazyInitialization = true, enforceSetterName = true } = context.options[0] ?? defaultOptions[0];
@@ -7491,7 +7428,7 @@ function create(context) {
7491
7428
  for (const expr of getNestedNewExpressions(useStateInput)) {
7492
7429
  if (!hasProperty(expr.callee, "name")) continue;
7493
7430
  if (LAZY_INIT_ALLOW_LIST.includes(expr.callee.name)) continue;
7494
- if (Traverse.findParent(expr, (n) => core.isUseCall(context, n)) != null) continue;
7431
+ if (Traverse.findParent(expr, core.isUseCall(context)) != null) continue;
7495
7432
  context.report({
7496
7433
  messageId: "invalid-initialization",
7497
7434
  node: expr
@@ -7501,7 +7438,7 @@ function create(context) {
7501
7438
  if (!hasProperty(expr.callee, "name")) continue;
7502
7439
  if (core.isHookName(expr.callee.name)) continue;
7503
7440
  if (LAZY_INIT_ALLOW_LIST.includes(expr.callee.name)) continue;
7504
- if (Traverse.findParent(expr, (n) => core.isUseCall(context, n)) != null) continue;
7441
+ if (Traverse.findParent(expr, core.isUseCall(context)) != null) continue;
7505
7442
  context.report({
7506
7443
  messageId: "invalid-initialization",
7507
7444
  node: expr
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-x",
3
- "version": "5.24.4",
3
+ "version": "5.24.5",
4
4
  "description": "A set of composable ESLint rules for libraries and frameworks that use React as a UI runtime.",
5
5
  "keywords": [
6
6
  "react",
@@ -36,12 +36,12 @@
36
36
  "dist"
37
37
  ],
38
38
  "dependencies": {
39
- "@eslint-react/ast": "5.24.4",
40
- "@eslint-react/core": "5.24.4",
41
- "@eslint-react/eslint": "5.24.4",
42
- "@eslint-react/jsx": "5.24.4",
43
- "@eslint-react/shared": "5.24.4",
44
- "@eslint-react/var": "5.24.4",
39
+ "@eslint-react/ast": "5.24.5",
40
+ "@eslint-react/core": "5.24.5",
41
+ "@eslint-react/eslint": "5.24.5",
42
+ "@eslint-react/jsx": "5.24.5",
43
+ "@eslint-react/shared": "5.24.5",
44
+ "@eslint-react/var": "5.24.5",
45
45
  "@typescript-eslint/scope-manager": "^8.71.0",
46
46
  "@typescript-eslint/types": "^8.71.0",
47
47
  "@typescript-eslint/typescript-estree": "^8.71.0",
@@ -64,7 +64,7 @@
64
64
  "react-dom": "^19.3.0",
65
65
  "tsdown": "^0.23.0",
66
66
  "tsl": "^1.0.30",
67
- "tsl-dx": "^0.13.7",
67
+ "tsl-dx": "^0.14.0",
68
68
  "typescript": "6.0.3"
69
69
  },
70
70
  "peerDependencies": {