@@ -3,6 +3,8 @@ import type { AST } from "svelte-eslint-parser"
3
3
import { createRule } from "../utils"
4
4
import { findAttribute , getLangValue } from "../utils/ast-utils"
5
5
6
+ const EVENTS_TYPE_NAME = "$$Events"
7
+
6
8
export default createRule ( "experimental-require-strict-events" , {
7
9
meta : {
8
10
docs : {
@@ -19,7 +21,7 @@ export default createRule("experimental-require-strict-events", {
19
21
create ( context ) {
20
22
let isTs = false
21
23
let hasAttribute = false
22
- let hasInterface = false
24
+ let hasDeclaredEvents = false
23
25
let scriptNode : AST . SvelteScriptElement
24
26
return {
25
27
SvelteScriptElement ( node ) {
@@ -29,12 +31,17 @@ export default createRule("experimental-require-strict-events", {
29
31
scriptNode = node
30
32
} ,
31
33
TSInterfaceDeclaration ( node ) {
32
- if ( node . id . name === "$$Events" ) {
33
- hasInterface = true
34
+ if ( node . id . name === EVENTS_TYPE_NAME ) {
35
+ hasDeclaredEvents = true
36
+ }
37
+ } ,
38
+ TSTypeAliasDeclaration ( node ) {
39
+ if ( node . id . name === EVENTS_TYPE_NAME ) {
40
+ hasDeclaredEvents = true
34
41
}
35
42
} ,
36
43
"Program:exit" ( ) {
37
- if ( isTs && ! hasAttribute && ! hasInterface ) {
44
+ if ( isTs && ! hasAttribute && ! hasDeclaredEvents ) {
38
45
context . report ( {
39
46
node : scriptNode ,
40
47
messageId : "missingStrictEvents" ,
0 commit comments