eslint-plugin-react-hooks-extra 1.11.0-beta.4 → 1.11.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +21 -9
- package/dist/index.mjs +22 -10
- package/package.json +12 -12
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var tsPattern = require('ts-pattern');
|
|
|
11
11
|
|
|
12
12
|
// package.json
|
|
13
13
|
var name = "eslint-plugin-react-hooks-extra";
|
|
14
|
-
var version = "1.11.0-beta.
|
|
14
|
+
var version = "1.11.0-beta.7";
|
|
15
15
|
var createRule = shared.createRuleForPlugin("hooks-extra");
|
|
16
16
|
function isFromHookCall(name2, context, settings, predicate = tools.F.constTrue) {
|
|
17
17
|
const hookAlias = settings.additionalHooks?.[name2] ?? [];
|
|
@@ -294,7 +294,7 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
294
294
|
description: "disallow direct calls to the 'set' function of 'useState' in 'useEffect'"
|
|
295
295
|
},
|
|
296
296
|
messages: {
|
|
297
|
-
noDirectSetStateInUseEffect: "Do not call the 'set' function of 'useState' directly in 'useEffect'."
|
|
297
|
+
noDirectSetStateInUseEffect: "Do not call the 'set' function '{{name}}' of 'useState' directly in 'useEffect'."
|
|
298
298
|
},
|
|
299
299
|
schema: []
|
|
300
300
|
},
|
|
@@ -363,7 +363,8 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
363
363
|
}
|
|
364
364
|
context.report({
|
|
365
365
|
messageId: "noDirectSetStateInUseEffect",
|
|
366
|
-
node
|
|
366
|
+
node,
|
|
367
|
+
data: { name: context.sourceCode.getText(node.callee) }
|
|
367
368
|
});
|
|
368
369
|
}).with("useEffect", () => {
|
|
369
370
|
const [firstArg] = node.arguments;
|
|
@@ -438,7 +439,9 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
438
439
|
context.report({
|
|
439
440
|
messageId: "noDirectSetStateInUseEffect",
|
|
440
441
|
node: setStateCall,
|
|
441
|
-
data: {
|
|
442
|
+
data: {
|
|
443
|
+
name: ast.toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
444
|
+
}
|
|
442
445
|
});
|
|
443
446
|
}
|
|
444
447
|
}
|
|
@@ -448,7 +451,9 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
448
451
|
context.report({
|
|
449
452
|
messageId: "noDirectSetStateInUseEffect",
|
|
450
453
|
node: setStateCall,
|
|
451
|
-
data: {
|
|
454
|
+
data: {
|
|
455
|
+
name: ast.toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
456
|
+
}
|
|
452
457
|
});
|
|
453
458
|
}
|
|
454
459
|
}
|
|
@@ -465,7 +470,7 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
465
470
|
description: "disallow direct calls to the 'set' function of 'useState' in 'useLayoutEffect'"
|
|
466
471
|
},
|
|
467
472
|
messages: {
|
|
468
|
-
noDirectSetStateInUseLayoutEffect: "Do not call the 'set' function of 'useState' directly in 'useLayoutEffect'."
|
|
473
|
+
noDirectSetStateInUseLayoutEffect: "Do not call the 'set' function '{{name}}' of 'useState' directly in 'useLayoutEffect'."
|
|
469
474
|
},
|
|
470
475
|
schema: []
|
|
471
476
|
},
|
|
@@ -538,7 +543,10 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
538
543
|
}
|
|
539
544
|
context.report({
|
|
540
545
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
541
|
-
node
|
|
546
|
+
node,
|
|
547
|
+
data: {
|
|
548
|
+
name: context.sourceCode.getText(node.callee)
|
|
549
|
+
}
|
|
542
550
|
});
|
|
543
551
|
}).with("useLayoutEffect", () => {
|
|
544
552
|
const [firstArg] = node.arguments;
|
|
@@ -613,7 +621,9 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
613
621
|
context.report({
|
|
614
622
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
615
623
|
node: setStateCall,
|
|
616
|
-
data: {
|
|
624
|
+
data: {
|
|
625
|
+
name: ast.toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
626
|
+
}
|
|
617
627
|
});
|
|
618
628
|
}
|
|
619
629
|
}
|
|
@@ -623,7 +633,9 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
623
633
|
context.report({
|
|
624
634
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
625
635
|
node: setStateCall,
|
|
626
|
-
data: {
|
|
636
|
+
data: {
|
|
637
|
+
name: ast.toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
638
|
+
}
|
|
627
639
|
});
|
|
628
640
|
}
|
|
629
641
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHookCollector, isReactHookCall, isUseCallbackCall, isReactHookCallWithNameLoose, isUseMemoCall, isReactHookCallWithNameAlias, isUseStateCall, isReactHookName } from '@eslint-react/core';
|
|
2
2
|
import { createRuleForPlugin, decodeSettings } from '@eslint-react/shared';
|
|
3
|
-
import { isFunction, is, traverseUpGuard, getNestedIdentifiers, getNestedCallExpressions, isFunctionOfImmediatelyInvoked } from '@eslint-react/ast';
|
|
3
|
+
import { isFunction, is, traverseUpGuard, getNestedIdentifiers, toReadableNodeName, getNestedCallExpressions, isFunctionOfImmediatelyInvoked } from '@eslint-react/ast';
|
|
4
4
|
import { F, O, MutRef } from '@eslint-react/tools';
|
|
5
5
|
import { findVariable, getVariableNode } from '@eslint-react/var';
|
|
6
6
|
import { AST_NODE_TYPES } from '@typescript-eslint/types';
|
|
@@ -9,7 +9,7 @@ import { match, isMatching } from 'ts-pattern';
|
|
|
9
9
|
|
|
10
10
|
// package.json
|
|
11
11
|
var name = "eslint-plugin-react-hooks-extra";
|
|
12
|
-
var version = "1.11.0-beta.
|
|
12
|
+
var version = "1.11.0-beta.7";
|
|
13
13
|
var createRule = createRuleForPlugin("hooks-extra");
|
|
14
14
|
function isFromHookCall(name2, context, settings, predicate = F.constTrue) {
|
|
15
15
|
const hookAlias = settings.additionalHooks?.[name2] ?? [];
|
|
@@ -292,7 +292,7 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
292
292
|
description: "disallow direct calls to the 'set' function of 'useState' in 'useEffect'"
|
|
293
293
|
},
|
|
294
294
|
messages: {
|
|
295
|
-
noDirectSetStateInUseEffect: "Do not call the 'set' function of 'useState' directly in 'useEffect'."
|
|
295
|
+
noDirectSetStateInUseEffect: "Do not call the 'set' function '{{name}}' of 'useState' directly in 'useEffect'."
|
|
296
296
|
},
|
|
297
297
|
schema: []
|
|
298
298
|
},
|
|
@@ -361,7 +361,8 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
361
361
|
}
|
|
362
362
|
context.report({
|
|
363
363
|
messageId: "noDirectSetStateInUseEffect",
|
|
364
|
-
node
|
|
364
|
+
node,
|
|
365
|
+
data: { name: context.sourceCode.getText(node.callee) }
|
|
365
366
|
});
|
|
366
367
|
}).with("useEffect", () => {
|
|
367
368
|
const [firstArg] = node.arguments;
|
|
@@ -436,7 +437,9 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
436
437
|
context.report({
|
|
437
438
|
messageId: "noDirectSetStateInUseEffect",
|
|
438
439
|
node: setStateCall,
|
|
439
|
-
data: {
|
|
440
|
+
data: {
|
|
441
|
+
name: toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
442
|
+
}
|
|
440
443
|
});
|
|
441
444
|
}
|
|
442
445
|
}
|
|
@@ -446,7 +449,9 @@ var no_direct_set_state_in_use_effect_default = createRule({
|
|
|
446
449
|
context.report({
|
|
447
450
|
messageId: "noDirectSetStateInUseEffect",
|
|
448
451
|
node: setStateCall,
|
|
449
|
-
data: {
|
|
452
|
+
data: {
|
|
453
|
+
name: toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
454
|
+
}
|
|
450
455
|
});
|
|
451
456
|
}
|
|
452
457
|
}
|
|
@@ -463,7 +468,7 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
463
468
|
description: "disallow direct calls to the 'set' function of 'useState' in 'useLayoutEffect'"
|
|
464
469
|
},
|
|
465
470
|
messages: {
|
|
466
|
-
noDirectSetStateInUseLayoutEffect: "Do not call the 'set' function of 'useState' directly in 'useLayoutEffect'."
|
|
471
|
+
noDirectSetStateInUseLayoutEffect: "Do not call the 'set' function '{{name}}' of 'useState' directly in 'useLayoutEffect'."
|
|
467
472
|
},
|
|
468
473
|
schema: []
|
|
469
474
|
},
|
|
@@ -536,7 +541,10 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
536
541
|
}
|
|
537
542
|
context.report({
|
|
538
543
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
539
|
-
node
|
|
544
|
+
node,
|
|
545
|
+
data: {
|
|
546
|
+
name: context.sourceCode.getText(node.callee)
|
|
547
|
+
}
|
|
540
548
|
});
|
|
541
549
|
}).with("useLayoutEffect", () => {
|
|
542
550
|
const [firstArg] = node.arguments;
|
|
@@ -611,7 +619,9 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
611
619
|
context.report({
|
|
612
620
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
613
621
|
node: setStateCall,
|
|
614
|
-
data: {
|
|
622
|
+
data: {
|
|
623
|
+
name: toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
624
|
+
}
|
|
615
625
|
});
|
|
616
626
|
}
|
|
617
627
|
}
|
|
@@ -621,7 +631,9 @@ var no_direct_set_state_in_use_layout_effect_default = createRule({
|
|
|
621
631
|
context.report({
|
|
622
632
|
messageId: "noDirectSetStateInUseLayoutEffect",
|
|
623
633
|
node: setStateCall,
|
|
624
|
-
data: {
|
|
634
|
+
data: {
|
|
635
|
+
name: toReadableNodeName(setStateCall, (n) => context.sourceCode.getText(n))
|
|
636
|
+
}
|
|
625
637
|
});
|
|
626
638
|
}
|
|
627
639
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-hooks-extra",
|
|
3
|
-
"version": "1.11.0-beta.
|
|
3
|
+
"version": "1.11.0-beta.7",
|
|
4
4
|
"description": "ESLint React's ESLint plugin for React Hooks related rules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -41,18 +41,18 @@
|
|
|
41
41
|
"./package.json"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@typescript-eslint/scope-manager": "^8.
|
|
45
|
-
"@typescript-eslint/type-utils": "^8.
|
|
46
|
-
"@typescript-eslint/types": "^8.
|
|
47
|
-
"@typescript-eslint/utils": "^8.
|
|
44
|
+
"@typescript-eslint/scope-manager": "^8.2.0",
|
|
45
|
+
"@typescript-eslint/type-utils": "^8.2.0",
|
|
46
|
+
"@typescript-eslint/types": "^8.2.0",
|
|
47
|
+
"@typescript-eslint/utils": "^8.2.0",
|
|
48
48
|
"ts-pattern": "^5.3.1",
|
|
49
|
-
"@eslint-react/ast": "1.11.0-beta.
|
|
50
|
-
"@eslint-react/
|
|
51
|
-
"@eslint-react/
|
|
52
|
-
"@eslint-react/
|
|
53
|
-
"@eslint-react/
|
|
54
|
-
"@eslint-react/types": "1.11.0-beta.
|
|
55
|
-
"@eslint-react/
|
|
49
|
+
"@eslint-react/ast": "1.11.0-beta.7",
|
|
50
|
+
"@eslint-react/core": "1.11.0-beta.7",
|
|
51
|
+
"@eslint-react/jsx": "1.11.0-beta.7",
|
|
52
|
+
"@eslint-react/shared": "1.11.0-beta.7",
|
|
53
|
+
"@eslint-react/tools": "1.11.0-beta.7",
|
|
54
|
+
"@eslint-react/types": "1.11.0-beta.7",
|
|
55
|
+
"@eslint-react/var": "1.11.0-beta.7"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/react": "^18.3.3",
|