@@ -4,6 +4,7 @@ const { findVariable } = require('eslint-utils')
4
4
* @typedef {import('@typescript-eslint/types').TSESTree.TSInterfaceBody } TSInterfaceBody
5
5
* @typedef {import('@typescript-eslint/types').TSESTree.TSTypeLiteral } TSTypeLiteral
6
6
* @typedef {import('@typescript-eslint/types').TSESTree.Parameter } TSESTreeParameter
7
+ * @typedef {import('@typescript-eslint/types').TSESTree.Node } Node
7
8
*
8
9
*/
9
10
/**
@@ -12,10 +13,55 @@ const { findVariable } = require('eslint-utils')
12
13
*/
13
14
14
15
module . exports = {
16
+ isTypeNode,
15
17
getComponentPropsFromTypeDefine,
16
18
getComponentEmitsFromTypeDefine
17
19
}
18
20
21
+ /**
22
+ * @param {Node | ASTNode } node
23
+ * @returns {node is TypeNode }
24
+ */
25
+ function isTypeNode ( node ) {
26
+ return (
27
+ node . type === 'TSAnyKeyword' ||
28
+ node . type === 'TSArrayType' ||
29
+ node . type === 'TSBigIntKeyword' ||
30
+ node . type === 'TSBooleanKeyword' ||
31
+ node . type === 'TSConditionalType' ||
32
+ node . type === 'TSConstructorType' ||
33
+ node . type === 'TSFunctionType' ||
34
+ node . type === 'TSImportType' ||
35
+ node . type === 'TSIndexedAccessType' ||
36
+ node . type === 'TSInferType' ||
37
+ node . type === 'TSIntersectionType' ||
38
+ node . type === 'TSIntrinsicKeyword' ||
39
+ node . type === 'TSLiteralType' ||
40
+ node . type === 'TSMappedType' ||
41
+ node . type === 'TSNamedTupleMember' ||
42
+ node . type === 'TSNeverKeyword' ||
43
+ node . type === 'TSNullKeyword' ||
44
+ node . type === 'TSNumberKeyword' ||
45
+ node . type === 'TSObjectKeyword' ||
46
+ node . type === 'TSOptionalType' ||
47
+ node . type === 'TSRestType' ||
48
+ node . type === 'TSStringKeyword' ||
49
+ node . type === 'TSSymbolKeyword' ||
50
+ node . type === 'TSTemplateLiteralType' ||
51
+ node . type === 'TSThisType' ||
52
+ node . type === 'TSTupleType' ||
53
+ node . type === 'TSTypeLiteral' ||
54
+ node . type === 'TSTypeOperator' ||
55
+ node . type === 'TSTypePredicate' ||
56
+ node . type === 'TSTypeQuery' ||
57
+ node . type === 'TSTypeReference' ||
58
+ node . type === 'TSUndefinedKeyword' ||
59
+ node . type === 'TSUnionType' ||
60
+ node . type === 'TSUnknownKeyword' ||
61
+ node . type === 'TSVoidKeyword'
62
+ )
63
+ }
64
+
19
65
/**
20
66
* @param {TypeNode } node
21
67
* @returns {node is TSTypeLiteral }
0 commit comments