-
-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathindex.d.ts
123 lines (104 loc) · 2.38 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
* @author Toru Nagashima <https://github.com/mysticatea>
* @copyright 2017 Toru Nagashima. All rights reserved.
* See LICENSE file in root directory for full license.
*/
import type { Node } from "../../src/ast/index"
import type { VisitorKeys } from "eslint-visitor-keys"
export type Selector =
| AdjacentSelector
| AttributeSelector
| ChildSelector
| ClassSelector
| CompoundSelector
| DescendantSelector
| FieldSelector
| HasSelector
| IdentifierSelector
| MatchesSelector
| NotSelector
| NthChildSelector
| NthLastChildSelector
| SiblingSelector
| WildcardSelector
export type TraverseOptionFallback = (node: Node) => readonly string[]
export interface ESQueryOptions {
visitorKeys?: VisitorKeys
fallback?: TraverseOptionFallback
}
export interface AdjacentSelector {
type: "adjacent"
left: Selector
right: Selector
}
export interface AttributeSelector {
type: "attribute"
name: string
operator: string | null | undefined
value: { type: string; value: any }
}
export interface ChildSelector {
type: "child"
left: Selector
right: Selector
}
export interface ClassSelector {
type: "class"
}
export interface CompoundSelector {
type: "compound"
selectors: Selector[]
}
export interface DescendantSelector {
type: "descendant"
left: Selector
right: Selector
}
export interface FieldSelector {
type: "field"
name: string
}
export interface HasSelector {
type: "has"
selectors: Selector[]
}
export interface IdentifierSelector {
type: "identifier"
value: string
}
export interface MatchesSelector {
type: "matches"
selectors: Selector[]
}
export interface NotSelector {
type: "not"
selectors: Selector[]
}
export interface NthChildSelector {
type: "nth-child"
right: Selector
index: { type: string; value: any }
}
export interface NthLastChildSelector {
type: "nth-last-child"
right: Selector
index: { type: string; value: any }
}
export interface SiblingSelector {
type: "sibling"
left: Selector
right: Selector
}
export interface WildcardSelector {
type: "wildcard"
}
declare const esquery: {
parse(query: string): Selector
matches(
node: object,
selector: Selector,
ancestry: object[],
options?: ESQueryOptions,
): boolean
}
export default esquery