Skip to content

Commit 31d0d75

Browse files
committed
feat: ignore Shebang comments
1 parent 1f28c08 commit 31d0d75

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

utils/get-comments-before.ts

+17-11
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export let getCommentsBefore = ({
2222
sourceCode,
2323
node,
2424
}: GetCommentsBeforeParameters): TSESTree.Comment[] => {
25-
let commentsBefore = getCommentsBeforeNodeOrToken(sourceCode, node)
25+
let commentsBefore = getRelevantCommentsBeforeNodeOrToken(sourceCode, node)
2626
let tokenBeforeNode = sourceCode.getTokenBefore(node)
2727
if (
2828
commentsBefore.length > 0 ||
@@ -31,18 +31,24 @@ export let getCommentsBefore = ({
3131
) {
3232
return commentsBefore
3333
}
34-
return getCommentsBeforeNodeOrToken(sourceCode, tokenBeforeNode)
34+
return getRelevantCommentsBeforeNodeOrToken(sourceCode, tokenBeforeNode)
3535
}
3636

37-
let getCommentsBeforeNodeOrToken = (
37+
let getRelevantCommentsBeforeNodeOrToken = (
3838
source: TSESLint.SourceCode,
3939
node: TSESTree.Token | TSESTree.Node,
4040
): 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

Comments
 (0)