@agilebot/eslint-plugin 0.2.2 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
package/lib/util/tss.js DELETED
@@ -1,109 +0,0 @@
1
- // Helper function to get the basic identifier from various node types
2
- function getBasicIdentifier(node) {
3
- if (node.type === 'Identifier') {
4
- // Return the identifier name for simple cases like classes.foo
5
- return node.name;
6
- }
7
-
8
- if (node.type === 'Literal') {
9
- // Return the literal value for cases like classes['foo']
10
- return node.value;
11
- }
12
-
13
- if (node.type === 'TemplateLiteral') {
14
- // Handle template literals, e.g., classes[`foo`]
15
- if (node.expressions.length > 0) {
16
- // Template literals with expressions, e.g., classes[`foo${bar}`]
17
- return null;
18
- }
19
- return node.quasis[0].value.raw;
20
- }
21
-
22
- // Handle other cases, e.g., classes['foo' + bar]
23
- return null;
24
- }
25
-
26
- // Helper function to recursively get the base identifier from a MemberExpression node
27
- function getBaseIdentifier(node) {
28
- switch (node.type) {
29
- case 'Identifier': {
30
- return node;
31
- }
32
- case 'CallExpression': {
33
- return getBaseIdentifier(node.callee);
34
- }
35
- case 'MemberExpression': {
36
- return getBaseIdentifier(node.object);
37
- }
38
- // No default
39
- }
40
- return null;
41
- }
42
-
43
- function getStyesObj(node) {
44
- const isMakeStyles = node.callee.name === 'makeStyles';
45
-
46
- const isModernApi =
47
- node.callee.type === 'MemberExpression' &&
48
- node.callee.property.name === 'create' &&
49
- getBaseIdentifier(node.callee.object) &&
50
- getBaseIdentifier(node.callee.object).name === 'tss';
51
-
52
- if (!isMakeStyles && !isModernApi) {
53
- return;
54
- }
55
-
56
- const styles = (() => {
57
- if (isMakeStyles) {
58
- return node.parent.arguments[0];
59
- }
60
-
61
- if (isModernApi) {
62
- return node.callee.parent.arguments[0];
63
- }
64
- })();
65
-
66
- if (!styles) {
67
- return;
68
- }
69
-
70
- switch (styles.type) {
71
- case 'ObjectExpression':
72
- return styles;
73
- case 'ArrowFunctionExpression':
74
- {
75
- const { body } = styles;
76
-
77
- switch (body.type) {
78
- case 'ObjectExpression':
79
- return body;
80
- case 'BlockStatement': {
81
- let stylesObj;
82
-
83
- body.body.forEach(bodyNode => {
84
- if (
85
- bodyNode.type === 'ReturnStatement' &&
86
- bodyNode.argument.type === 'ObjectExpression'
87
- ) {
88
- stylesObj = bodyNode.argument;
89
- }
90
- });
91
-
92
- return stylesObj;
93
- }
94
- }
95
- }
96
- break;
97
- }
98
- }
99
-
100
- function isCamelCase(value) {
101
- return /^[a-z][a-zA-Z0-9]*$/.test(value);
102
- }
103
-
104
- module.exports = {
105
- getBasicIdentifier: getBasicIdentifier,
106
- getBaseIdentifier: getBaseIdentifier,
107
- getStyesObj: getStyesObj,
108
- isCamelCase: isCamelCase
109
- };