@@ -29,6 +29,7 @@ const { isTypeNode } = require('./ts-ast-utils')
29
29
* @typedef {import('@typescript-eslint/types').TSESTree.TSImportEqualsDeclaration } TSImportEqualsDeclaration
30
30
* @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractMethodDefinition } TSAbstractMethodDefinition
31
31
* @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractPropertyDefinition } TSAbstractPropertyDefinition
32
+ * @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractAccessorProperty } TSAbstractAccessorProperty
32
33
* @typedef {import('@typescript-eslint/types').TSESTree.TSEnumMember } TSEnumMember
33
34
* @typedef {import('@typescript-eslint/types').TSESTree.TSPropertySignature } TSPropertySignature
34
35
* @typedef {import('@typescript-eslint/types').TSESTree.TSIndexSignature } TSIndexSignature
@@ -206,15 +207,16 @@ function defineVisitor({
206
207
* | TSImportEqualsDeclaration
207
208
* | TSAbstractMethodDefinition
208
209
* | TSAbstractPropertyDefinition
209
- * | TSAbstractClassProperty
210
+ * | TSAbstractAccessorProperty
210
211
* | TSEnumMember
211
- * | ClassProperty
212
212
* | TSPropertySignature
213
213
* | TSIndexSignature
214
- * | TSMethodSignature} node
214
+ * | TSMethodSignature
215
+ * | ClassProperty
216
+ * | TSAbstractClassProperty} node
215
217
*/
216
218
[ 'TSTypeAliasDeclaration, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSImportEqualsDeclaration,' +
217
- 'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSEnumMember,' +
219
+ 'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSAbstractAccessorProperty, TSEnumMember,' +
218
220
'TSPropertySignature, TSIndexSignature, TSMethodSignature,' +
219
221
// Deprecated in @typescript -eslint/parser v5
220
222
'ClassProperty, TSAbstractClassProperty' ] ( node ) {
@@ -1073,10 +1075,10 @@ function defineVisitor({
1073
1075
* // ^^^^^^^
1074
1076
* ```
1075
1077
*
1076
- * @param {TSAbstractMethodDefinition | TSAbstractPropertyDefinition | TSEnumMember | TSAbstractClassProperty | ClassProperty } node
1078
+ * @param {TSAbstractMethodDefinition | TSAbstractPropertyDefinition | TSAbstractAccessorProperty | TSEnumMember | TSAbstractClassProperty | ClassProperty } node
1077
1079
*
1078
1080
*/
1079
- [ 'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSEnumMember,' +
1081
+ [ 'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSAbstractAccessorProperty, TSEnumMember,' +
1080
1082
// Deprecated in @typescript -eslint/parser v5
1081
1083
'ClassProperty, TSAbstractClassProperty' ] ( node ) {
1082
1084
const { keyNode, valueNode } =
@@ -1335,6 +1337,42 @@ function defineVisitor({
1335
1337
setOffset ( atToken , 0 , tokenStore . getFirstToken ( decorators [ 0 ] ) )
1336
1338
}
1337
1339
} ,
1340
+ AccessorProperty ( node ) {
1341
+ const keyNode = node . key
1342
+ const valueNode = node . value
1343
+ const firstToken = tokenStore . getFirstToken ( node )
1344
+ const keyTokens = getFirstAndLastTokens ( keyNode )
1345
+ const prefixTokens = tokenStore . getTokensBetween (
1346
+ firstToken ,
1347
+ keyTokens . firstToken
1348
+ )
1349
+ if ( node . computed ) {
1350
+ prefixTokens . pop ( ) // pop [
1351
+ }
1352
+ setOffset ( prefixTokens , 0 , firstToken )
1353
+ let lastKeyToken
1354
+ if ( node . computed ) {
1355
+ const leftBracketToken = tokenStore . getTokenBefore ( keyTokens . firstToken )
1356
+ const rightBracketToken = ( lastKeyToken = tokenStore . getTokenAfter (
1357
+ keyTokens . lastToken
1358
+ ) )
1359
+ setOffset ( leftBracketToken , 0 , firstToken )
1360
+ processNodeList ( [ keyNode ] , leftBracketToken , rightBracketToken , 1 )
1361
+ } else {
1362
+ setOffset ( keyTokens . firstToken , 0 , firstToken )
1363
+ lastKeyToken = keyTokens . lastToken
1364
+ }
1365
+
1366
+ if ( valueNode != null ) {
1367
+ const initToken = tokenStore . getFirstToken ( valueNode )
1368
+ setOffset (
1369
+ [ ...tokenStore . getTokensBetween ( lastKeyToken , initToken ) , initToken ] ,
1370
+ 1 ,
1371
+ lastKeyToken
1372
+ )
1373
+ }
1374
+ processSemicolons ( node )
1375
+ } ,
1338
1376
ImportAttribute ( node ) {
1339
1377
const firstToken = tokenStore . getFirstToken ( node )
1340
1378
const keyTokens = getFirstAndLastTokens ( node . key )
0 commit comments