UNPKG

1.98 kBJavaScriptView Raw
1/**
2 * @typedef {import('css-selector-parser').Selector} Selector
3 * @typedef {import('css-selector-parser').Selectors} Selectors
4 * @typedef {import('css-selector-parser').RuleSet} RuleSet
5 * @typedef {import('css-selector-parser').Rule} Rule
6 * @typedef {import('css-selector-parser').RulePseudo} RulePseudo
7 * @typedef {import('css-selector-parser').AttrValueType} AttrValueType
8 * @typedef {Selector|Rule|RulePseudo} Query
9 *
10 * Fix for types.
11 * @typedef {Object} RuleAttr
12 * @property {string} name
13 * @property {string} [operator]
14 * @property {AttrValueType} [valueType]
15 * @property {string} [value]
16 *
17 * More specific type for registered selector pseudos.
18 * @typedef {Object} RulePseudoSelector
19 * @property {string} name
20 * @property {'selector'} valueType
21 * @property {Selector} value
22 *
23 * Overwrite to compile nth-checks once.
24 * @typedef {Object} RulePseudoNth
25 * @property {string} name
26 * @property {'function'} valueType
27 * @property {(index: number) => boolean} value
28 *
29 * @typedef {import('unist').Node} Node
30 * @typedef {import('unist').Parent} Parent
31 *
32 * @typedef {Object} SelectState
33 * @property {(query: Selectors|RuleSet|Rule, node: Node|undefined, state: SelectState) => Node[]} any
34 * @property {Array.<Node>} [scopeNodes]
35 * @property {SelectIterator|null|undefined} [iterator]
36 * @property {boolean} [one=false]
37 * @property {boolean} [shallow=false]
38 * @property {boolean} [index=false]
39 * @property {boolean} [found=false]
40 * @property {number} [typeIndex] Track siblings
41 * @property {number} [nodeIndex] Track siblings
42 * @property {number} [typeCount] Track siblings
43 * @property {number} [nodeCount] Track siblings
44 */
45
46/**
47 * @callback SelectIterator
48 * @param {Rule} query
49 * @param {Node} node
50 * @param {number} index
51 * @param {Parent|null} parent
52 * @param {SelectState} state
53 */
54
55/**
56 * @typedef {(
57 * ((query: Rule, node: Node, index: number|null, parent: Parent|null, state: SelectState) => void)
58 * )} Handler
59 */
60
61export {}