@eslint-react/core 2.12.4-beta.0 → 2.12.4-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +10 -10
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -561,7 +561,7 @@ declare function isInsideComponentOrHook(node: TSESTree.Node | unit): boolean;
|
|
|
561
561
|
*/
|
|
562
562
|
declare function isUseEffectSetupCallback(node: TSESTree.Node | unit): boolean;
|
|
563
563
|
/**
|
|
564
|
-
* Determine if a node is the cleanup function returned by a useEffect-like hook's setup function
|
|
564
|
+
* Determine if a node is the cleanup function returned by a useEffect-like hook's setup function
|
|
565
565
|
* @param node The AST node to check
|
|
566
566
|
*/
|
|
567
567
|
declare function isUseEffectCleanupCallback(node: TSESTree.Node | unit): boolean;
|
|
@@ -901,7 +901,7 @@ declare function isInitializedFromRef(name: string, initialScope: Scope): boolea
|
|
|
901
901
|
* Get the init expression of a ref variable
|
|
902
902
|
* @param name The variable name
|
|
903
903
|
* @param initialScope The initial scope
|
|
904
|
-
* @returns The init expression node if the variable is derived from a ref, or
|
|
904
|
+
* @returns The init expression node if the variable is derived from a ref, or undefined otherwise
|
|
905
905
|
*/
|
|
906
906
|
declare function getRefInit(name: string, initialScope: Scope): TSESTree$1.Expression | unit;
|
|
907
907
|
//#endregion
|
package/dist/index.js
CHANGED
|
@@ -47,7 +47,7 @@ function isReactAPI(api) {
|
|
|
47
47
|
const func = (context, node) => {
|
|
48
48
|
if (node == null) return false;
|
|
49
49
|
const getText = (n) => context.sourceCode.getText(n);
|
|
50
|
-
const name = ast.
|
|
50
|
+
const name = ast.getFullyQualifiedName(node, getText);
|
|
51
51
|
if (name === api) return true;
|
|
52
52
|
if (name.substring(name.indexOf(".") + 1) === api) return true;
|
|
53
53
|
return false;
|
|
@@ -232,15 +232,15 @@ function isUseEffectSetupCallback(node) {
|
|
|
232
232
|
return node.parent?.type === AST_NODE_TYPES.CallExpression && node.parent.arguments.at(0) === node && isUseEffectLikeCall(node.parent);
|
|
233
233
|
}
|
|
234
234
|
/**
|
|
235
|
-
* Determine if a node is the cleanup function returned by a useEffect-like hook's setup function
|
|
235
|
+
* Determine if a node is the cleanup function returned by a useEffect-like hook's setup function
|
|
236
236
|
* @param node The AST node to check
|
|
237
237
|
*/
|
|
238
238
|
function isUseEffectCleanupCallback(node) {
|
|
239
239
|
if (node == null) return false;
|
|
240
|
-
const
|
|
241
|
-
const
|
|
242
|
-
if (
|
|
243
|
-
return isUseEffectSetupCallback(
|
|
240
|
+
const returnStatement = ast.findParentNode(node, ast.is(AST_NODE_TYPES.ReturnStatement));
|
|
241
|
+
const enclosingFunction = ast.findParentNode(node, ast.isFunction);
|
|
242
|
+
if (enclosingFunction !== ast.findParentNode(returnStatement, ast.isFunction)) return false;
|
|
243
|
+
return isUseEffectSetupCallback(enclosingFunction);
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
//#endregion
|
|
@@ -283,7 +283,7 @@ function useHookCollector(context) {
|
|
|
283
283
|
id,
|
|
284
284
|
key,
|
|
285
285
|
kind: "function",
|
|
286
|
-
name: ast.
|
|
286
|
+
name: ast.getFullyQualifiedName(id, getText),
|
|
287
287
|
node,
|
|
288
288
|
directives: [],
|
|
289
289
|
flag: 0n,
|
|
@@ -955,7 +955,7 @@ function useComponentCollector(context, options = {}) {
|
|
|
955
955
|
const isExportDefault = exp != null;
|
|
956
956
|
const isExportDefaultDeclaration = exp != null && ast.getUnderlyingExpression(exp.declaration) === node;
|
|
957
957
|
const id = getFunctionComponentId(context, node);
|
|
958
|
-
const name = id == null ? unit : ast.
|
|
958
|
+
const name = id == null ? unit : ast.getFullyQualifiedName(id, getText);
|
|
959
959
|
const initPath = ast.getFunctionInitPath(node);
|
|
960
960
|
const directives = ast.getFunctionDirectives(node);
|
|
961
961
|
const entry = {
|
|
@@ -1052,7 +1052,7 @@ function useComponentCollectorLegacy(context) {
|
|
|
1052
1052
|
if (!isClassComponent(node)) return;
|
|
1053
1053
|
const id = ast.getClassId(node);
|
|
1054
1054
|
const key = idGen.next();
|
|
1055
|
-
const name = id == null ? unit : ast.
|
|
1055
|
+
const name = id == null ? unit : ast.getFullyQualifiedName(id, getText);
|
|
1056
1056
|
const flag = isPureComponent(node) ? ComponentFlag.PureComponent : ComponentFlag.None;
|
|
1057
1057
|
components.set(key, {
|
|
1058
1058
|
id,
|
|
@@ -1274,7 +1274,7 @@ function isInitializedFromRef(name, initialScope) {
|
|
|
1274
1274
|
* Get the init expression of a ref variable
|
|
1275
1275
|
* @param name The variable name
|
|
1276
1276
|
* @param initialScope The initial scope
|
|
1277
|
-
* @returns The init expression node if the variable is derived from a ref, or
|
|
1277
|
+
* @returns The init expression node if the variable is derived from a ref, or undefined otherwise
|
|
1278
1278
|
*/
|
|
1279
1279
|
function getRefInit(name, initialScope) {
|
|
1280
1280
|
for (const { node } of findVariable(initialScope)(name)?.defs ?? []) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eslint-react/core",
|
|
3
|
-
"version": "2.12.4-beta.
|
|
3
|
+
"version": "2.12.4-beta.2",
|
|
4
4
|
"description": "ESLint React's ESLint utility module for static analysis of React core APIs and patterns.",
|
|
5
5
|
"homepage": "https://github.com/Rel1cx/eslint-react",
|
|
6
6
|
"bugs": {
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"@typescript-eslint/types": "^8.54.0",
|
|
35
35
|
"@typescript-eslint/utils": "^8.54.0",
|
|
36
36
|
"ts-pattern": "^5.9.0",
|
|
37
|
-
"@eslint-react/
|
|
38
|
-
"@eslint-react/
|
|
39
|
-
"@eslint-react/shared": "2.12.4-beta.
|
|
40
|
-
"@eslint-react/var": "2.12.4-beta.
|
|
37
|
+
"@eslint-react/ast": "2.12.4-beta.2",
|
|
38
|
+
"@eslint-react/eff": "2.12.4-beta.2",
|
|
39
|
+
"@eslint-react/shared": "2.12.4-beta.2",
|
|
40
|
+
"@eslint-react/var": "2.12.4-beta.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"tsdown": "^0.20.3",
|