@@ -22,7 +22,7 @@ export let getCommentsBefore = ({
22
22
sourceCode,
23
23
node,
24
24
} : GetCommentsBeforeParameters ) : TSESTree . Comment [ ] => {
25
- let commentsBefore = getCommentsBeforeNodeOrToken ( sourceCode , node )
25
+ let commentsBefore = getRelevantCommentsBeforeNodeOrToken ( sourceCode , node )
26
26
let tokenBeforeNode = sourceCode . getTokenBefore ( node )
27
27
if (
28
28
commentsBefore . length > 0 ||
@@ -31,18 +31,24 @@ export let getCommentsBefore = ({
31
31
) {
32
32
return commentsBefore
33
33
}
34
- return getCommentsBeforeNodeOrToken ( sourceCode , tokenBeforeNode )
34
+ return getRelevantCommentsBeforeNodeOrToken ( sourceCode , tokenBeforeNode )
35
35
}
36
36
37
- let getCommentsBeforeNodeOrToken = (
37
+ let getRelevantCommentsBeforeNodeOrToken = (
38
38
source : TSESLint . SourceCode ,
39
39
node : TSESTree . Token | TSESTree . Node ,
40
40
) : TSESTree . Comment [ ] =>
41
- source . getCommentsBefore ( node ) . filter ( comment => {
42
- /**
43
- * `getCommentsBefore` also returns comments that are right after code,
44
- * filter those out
45
- */
46
- let tokenBeforeComment = source . getTokenBefore ( comment )
47
- return tokenBeforeComment ?. loc . end . line !== comment . loc . end . line
48
- } )
41
+ source
42
+ . getCommentsBefore ( node )
43
+ . filter ( comment => ! isShebangComment ( comment ) )
44
+ . filter ( comment => {
45
+ /**
46
+ * `getCommentsBefore` also returns comments that are right after code,
47
+ * filter those out
48
+ */
49
+ let tokenBeforeComment = source . getTokenBefore ( comment )
50
+ return tokenBeforeComment ?. loc . end . line !== comment . loc . end . line
51
+ } )
52
+
53
+ let isShebangComment = ( comment : TSESTree . Comment ) : boolean =>
54
+ comment . type === ( 'Shebang' as unknown as 'Block' )
0 commit comments