1
- import { TSESTree } from "@typescript-eslint/types"
1
+ import type { TSESTree } from "@typescript-eslint/types"
2
2
import type { AST } from "svelte-eslint-parser"
3
3
import { createRule } from "../utils"
4
4
import { getPropertyName } from "@eslint-community/eslint-utils"
@@ -65,19 +65,17 @@ export default createRule("no-reactive-reassign", {
65
65
pathNodes ?: TSESTree . MemberExpression [ ]
66
66
}
67
67
} = {
68
- [ TSESTree . AST_NODE_TYPES . UpdateExpression ] :
68
+ UpdateExpression :
69
69
// e.g. foo ++, foo --
70
70
( { parent } ) => ( { type : "reassign" , node : parent } ) ,
71
- [ TSESTree . AST_NODE_TYPES . UnaryExpression ] : ( {
72
- parent,
73
- } : CheckContext < TSESTree . UnaryExpression > ) => {
71
+ UnaryExpression : ( { parent } : CheckContext < TSESTree . UnaryExpression > ) => {
74
72
if ( parent . operator === "delete" ) {
75
73
// e.g. delete foo.prop
76
74
return { type : "reassign" , node : parent }
77
75
}
78
76
return null
79
77
} ,
80
- [ TSESTree . AST_NODE_TYPES . AssignmentExpression ] : ( {
78
+ AssignmentExpression : ( {
81
79
node,
82
80
parent,
83
81
} : CheckContext < TSESTree . AssignmentExpression > ) => {
@@ -87,7 +85,7 @@ export default createRule("no-reactive-reassign", {
87
85
}
88
86
return null
89
87
} ,
90
- [ TSESTree . AST_NODE_TYPES . ForInStatement ] : ( {
88
+ ForInStatement : ( {
91
89
node,
92
90
parent,
93
91
} : CheckContext < TSESTree . ForInStatement > ) => {
@@ -97,7 +95,7 @@ export default createRule("no-reactive-reassign", {
97
95
}
98
96
return null
99
97
} ,
100
- [ TSESTree . AST_NODE_TYPES . ForOfStatement ] : ( {
98
+ ForOfStatement : ( {
101
99
node,
102
100
parent,
103
101
} : CheckContext < TSESTree . ForOfStatement > ) => {
@@ -107,7 +105,7 @@ export default createRule("no-reactive-reassign", {
107
105
}
108
106
return null
109
107
} ,
110
- [ TSESTree . AST_NODE_TYPES . CallExpression ] : ( {
108
+ CallExpression : ( {
111
109
node,
112
110
parent,
113
111
pathNodes,
@@ -131,7 +129,7 @@ export default createRule("no-reactive-reassign", {
131
129
}
132
130
return null
133
131
} ,
134
- [ TSESTree . AST_NODE_TYPES . MemberExpression ] : ( {
132
+ MemberExpression : ( {
135
133
node,
136
134
parent,
137
135
pathNodes,
@@ -146,14 +144,12 @@ export default createRule("no-reactive-reassign", {
146
144
}
147
145
return null
148
146
} ,
149
- [ TSESTree . AST_NODE_TYPES . ChainExpression ] : ( {
150
- parent,
151
- } : CheckContext < TSESTree . ChainExpression > ) => {
147
+ ChainExpression : ( { parent } : CheckContext < TSESTree . ChainExpression > ) => {
152
148
// e.g. `foo?.prop`
153
149
// The context to check next.
154
150
return { type : "check" , node : parent }
155
151
} ,
156
- [ TSESTree . AST_NODE_TYPES . ConditionalExpression ] : ( {
152
+ ConditionalExpression : ( {
157
153
node,
158
154
parent,
159
155
} : CheckContext < TSESTree . ConditionalExpression > ) => {
@@ -163,10 +159,7 @@ export default createRule("no-reactive-reassign", {
163
159
// The context to check next for `(test ? foo : bar).prop`.
164
160
return { type : "check" , node : parent }
165
161
} ,
166
- [ TSESTree . AST_NODE_TYPES . Property ] : ( {
167
- node,
168
- parent,
169
- } : CheckContext < TSESTree . Property > ) => {
162
+ Property : ( { node, parent } : CheckContext < TSESTree . Property > ) => {
170
163
if (
171
164
parent . value === node &&
172
165
parent . parent &&
@@ -177,20 +170,14 @@ export default createRule("no-reactive-reassign", {
177
170
}
178
171
return null
179
172
} ,
180
- [ TSESTree . AST_NODE_TYPES . ArrayPattern ] : ( {
181
- node,
182
- parent,
183
- } : CheckContext < TSESTree . ArrayPattern > ) => {
173
+ ArrayPattern : ( { node, parent } : CheckContext < TSESTree . ArrayPattern > ) => {
184
174
if ( parent . elements . includes ( node as TSESTree . DestructuringPattern ) ) {
185
175
// The context to check next for `([foo] = obj)`.
186
176
return { type : "check" , node : parent }
187
177
}
188
178
return null
189
179
} ,
190
- [ TSESTree . AST_NODE_TYPES . RestElement ] : ( {
191
- node,
192
- parent,
193
- } : CheckContext < TSESTree . RestElement > ) => {
180
+ RestElement : ( { node, parent } : CheckContext < TSESTree . RestElement > ) => {
194
181
if ( parent . argument === node && parent . parent ) {
195
182
// The context to check next for `({...foo} = obj)`.
196
183
return {
0 commit comments