@@ -3,79 +3,6 @@ import { findVariable } from './ast-utils.js';
3
3
import type { RuleContext } from '../types.js' ;
4
4
import type { AST } from 'svelte-eslint-parser' ;
5
5
6
- // Variable prefix extraction
7
-
8
- export function extractExpressionPrefixVariable (
9
- context : RuleContext ,
10
- expression : TSESTree . Expression
11
- ) : TSESTree . Identifier | null {
12
- switch ( expression . type ) {
13
- case 'BinaryExpression' :
14
- return extractBinaryExpressionPrefixVariable ( context , expression ) ;
15
- case 'Identifier' :
16
- return extractVariablePrefixVariable ( context , expression ) ;
17
- case 'MemberExpression' :
18
- return extractMemberExpressionPrefixVariable ( expression ) ;
19
- case 'TemplateLiteral' :
20
- return extractTemplateLiteralPrefixVariable ( context , expression ) ;
21
- default :
22
- return null ;
23
- }
24
- }
25
-
26
- function extractBinaryExpressionPrefixVariable (
27
- context : RuleContext ,
28
- expression : TSESTree . BinaryExpression
29
- ) : TSESTree . Identifier | null {
30
- return expression . left . type !== 'PrivateIdentifier'
31
- ? extractExpressionPrefixVariable ( context , expression . left )
32
- : null ;
33
- }
34
-
35
- function extractVariablePrefixVariable (
36
- context : RuleContext ,
37
- expression : TSESTree . Identifier
38
- ) : TSESTree . Identifier | null {
39
- const variable = findVariable ( context , expression ) ;
40
- if (
41
- variable === null ||
42
- variable . identifiers . length !== 1 ||
43
- variable . identifiers [ 0 ] . parent . type !== 'VariableDeclarator' ||
44
- variable . identifiers [ 0 ] . parent . init === null
45
- ) {
46
- return expression ;
47
- }
48
- return (
49
- extractExpressionPrefixVariable ( context , variable . identifiers [ 0 ] . parent . init ) ?? expression
50
- ) ;
51
- }
52
-
53
- function extractMemberExpressionPrefixVariable (
54
- expression : TSESTree . MemberExpression
55
- ) : TSESTree . Identifier | null {
56
- return expression . property . type === 'Identifier' ? expression . property : null ;
57
- }
58
-
59
- function extractTemplateLiteralPrefixVariable (
60
- context : RuleContext ,
61
- expression : TSESTree . TemplateLiteral
62
- ) : TSESTree . Identifier | null {
63
- const literalParts = [ ...expression . expressions , ...expression . quasis ] . sort ( ( a , b ) =>
64
- a . range [ 0 ] < b . range [ 0 ] ? - 1 : 1
65
- ) ;
66
- for ( const part of literalParts ) {
67
- if ( part . type === 'TemplateElement' && part . value . raw === '' ) {
68
- // Skip empty quasi in the begining
69
- continue ;
70
- }
71
- if ( part . type !== 'TemplateElement' ) {
72
- return extractExpressionPrefixVariable ( context , part ) ;
73
- }
74
- return null ;
75
- }
76
- return null ;
77
- }
78
-
79
6
// Literal prefix extraction
80
7
81
8
export function extractExpressionPrefixLiteral (
0 commit comments