@@ -62,7 +62,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
6262 // or
6363 // const ErrorMap = Map<string, Error>
6464 // ^^^^^^^^^^^^^^^^^^
65- const typeArguments = node . typeArguments ?? node . typeParameters ;
65+ const typeArguments =
66+ node . typeArguments ??
67+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
68+ ( node as any ) . typeParameters ;
6669 if ( typeArguments ) {
6770 const firstToken = sourceCode . getFirstToken ( node ) ;
6871 offsets . setOffsetToken ( sourceCode . getFirstToken ( typeArguments ) , 1 , firstToken ) ;
@@ -254,20 +257,34 @@ export function defineVisitor(context: IndentContext): NodeListener {
254257 // {[key in foo]: bar}
255258 const leftBraceToken = sourceCode . getFirstToken ( node ) ;
256259
257- const leftBracketToken = sourceCode . getTokenBefore ( node . typeParameter ) ! ;
258- const rightBracketToken = sourceCode . getTokenAfter ( node . nameType || node . typeParameter ) ! ;
260+ const leftBracketToken = sourceCode . getTokenBefore ( node . key || node . typeParameter ) ! ;
261+ const rightBracketToken = sourceCode . getTokenAfter (
262+ node . nameType || node . constraint || node . typeParameter
263+ ) ! ;
259264 offsets . setOffsetToken (
260265 [ ...sourceCode . getTokensBetween ( leftBraceToken , leftBracketToken ) , leftBracketToken ] ,
261266 1 ,
262267 leftBraceToken
263268 ) ;
264269 offsets . setOffsetElementList (
265- [ node . typeParameter , node . nameType ] ,
270+ [ node . key , node . constraint , node . typeParameter , node . nameType ] ,
266271 leftBracketToken ,
267272 rightBracketToken ,
268273 1
269274 ) ;
270275
276+ if ( node . key && node . constraint ) {
277+ const firstToken = sourceCode . getFirstToken ( node . key ) ;
278+ offsets . setOffsetToken (
279+ [
280+ ...sourceCode . getTokensBetween ( firstToken , node . constraint ) ,
281+ sourceCode . getFirstToken ( node . constraint )
282+ ] ,
283+ 1 ,
284+ firstToken
285+ ) ;
286+ }
287+
271288 const rightBraceToken = sourceCode . getLastToken ( node ) ;
272289 if ( node . typeAnnotation ) {
273290 const typeAnnotationToken = sourceCode . getFirstToken ( node . typeAnnotation ) ;
@@ -402,7 +419,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
402419 TSClassImplements ( node : TSESTree . TSClassImplements | TSESTree . TSInterfaceHeritage ) {
403420 // class C implements T {}
404421 // ^
405- const typeArguments = node . typeArguments ?? node . typeParameters ;
422+ const typeArguments =
423+ node . typeArguments ??
424+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
425+ ( node as any ) . typeParameters ;
406426 if ( typeArguments ) {
407427 offsets . setOffsetToken (
408428 sourceCode . getFirstToken ( typeArguments ) ,
@@ -427,6 +447,14 @@ export function defineVisitor(context: IndentContext): NodeListener {
427447 const leftBraceToken = sourceCode . getTokenAfter ( idTokens . lastToken ) ! ;
428448 const rightBraceToken = sourceCode . getLastToken ( node ) ;
429449 offsets . setOffsetToken ( leftBraceToken , 0 , firstToken ) ;
450+ if ( node . members )
451+ offsets . setOffsetElementList ( node . members , leftBraceToken , rightBraceToken , 1 ) ;
452+ } ,
453+ TSEnumBody ( node : TSESTree . TSEnumBody ) {
454+ // enum E {...}
455+ // ^^^^^
456+ const leftBraceToken = sourceCode . getFirstToken ( node ) ;
457+ const rightBraceToken = sourceCode . getLastToken ( node ) ;
430458 offsets . setOffsetElementList ( node . members , leftBraceToken , rightBraceToken , 1 ) ;
431459 } ,
432460 TSModuleDeclaration ( node : TSESTree . TSModuleDeclaration ) {
@@ -677,7 +705,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
677705 } ,
678706 TSImportType ( node : TSESTree . TSImportType ) {
679707 // import('foo').B
680- const typeArguments = node . typeArguments ?? node . typeParameters ;
708+ const typeArguments =
709+ node . typeArguments ??
710+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
711+ ( node as any ) . typeParameters ;
681712 const firstToken = sourceCode . getFirstToken ( node ) ;
682713 const leftParenToken = sourceCode . getTokenAfter ( firstToken , {
683714 filter : isOpeningParenToken ,
@@ -1057,7 +1088,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
10571088 sourceCode . getFirstToken ( node . id || node )
10581089 ) ;
10591090 }
1060- const superTypeArguments = node . superTypeArguments ?? node . superTypeParameters ;
1091+ const superTypeArguments =
1092+ node . superTypeArguments ??
1093+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
1094+ ( node as any ) . superTypeParameters ;
10611095 if ( superTypeArguments != null && node . superClass != null ) {
10621096 offsets . setOffsetToken (
10631097 sourceCode . getFirstToken ( superTypeArguments ) ,
0 commit comments