|
7 | 7 | // Imports |
8 | 8 | //------------------------------------------------------------------------------ |
9 | 9 |
|
| 10 | +import type { RuleVisitor } from "@eslint/core"; |
10 | 11 | import type { |
11 | 12 | CustomRuleDefinitionType, |
12 | 13 | CustomRuleTypeDefinitions, |
13 | | - RuleVisitor, |
14 | | -} from "@eslint/core"; |
| 14 | + CustomRuleVisitorWithExit, |
| 15 | +} from "@eslint/plugin-kit"; |
15 | 16 | import type { |
16 | 17 | DocumentNode, |
17 | 18 | MemberNode, |
@@ -44,33 +45,23 @@ export type JSONSyntaxElement = Token | AnyNode; |
44 | 45 | /** |
45 | 46 | * The visitor format returned from rules in this package. |
46 | 47 | */ |
47 | | -export interface JSONRuleVisitor extends RuleVisitor { |
48 | | - Document?(node: DocumentNode): void; |
49 | | - Member?(node: MemberNode, parent?: ObjectNode): void; |
50 | | - Element?(node: ElementNode, parent?: ArrayNode): void; |
51 | | - Object?(node: ObjectNode, parent?: ValueNodeParent): void; |
52 | | - Array?(node: ArrayNode, parent?: ValueNodeParent): void; |
53 | | - String?(node: StringNode, parent?: ValueNodeParent): void; |
54 | | - Null?(node: NullNode, parent?: ValueNodeParent): void; |
55 | | - Number?(node: NumberNode, parent?: ValueNodeParent): void; |
56 | | - Boolean?(node: BooleanNode, parent?: ValueNodeParent): void; |
57 | | - NaN?(node: NaNNode, parent?: ValueNodeParent): void; |
58 | | - Infinity?(node: InfinityNode, parent?: ValueNodeParent): void; |
59 | | - Identifier?(node: IdentifierNode, parent?: ValueNodeParent): void; |
60 | | - |
61 | | - "Document:exit"?(node: DocumentNode): void; |
62 | | - "Member:exit"?(node: MemberNode, parent?: ObjectNode): void; |
63 | | - "Element:exit"?(node: ElementNode, parent?: ArrayNode): void; |
64 | | - "Object:exit"?(node: ObjectNode, parent?: ValueNodeParent): void; |
65 | | - "Array:exit"?(node: ArrayNode, parent?: ValueNodeParent): void; |
66 | | - "String:exit"?(node: StringNode, parent?: ValueNodeParent): void; |
67 | | - "Null:exit"?(node: NullNode, parent?: ValueNodeParent): void; |
68 | | - "Number:exit"?(node: NumberNode, parent?: ValueNodeParent): void; |
69 | | - "Boolean:exit"?(node: BooleanNode, parent?: ValueNodeParent): void; |
70 | | - "NaN:exit"?(node: NaNNode, parent?: ValueNodeParent): void; |
71 | | - "Infinity:exit"?(node: InfinityNode, parent?: ValueNodeParent): void; |
72 | | - "Identifier:exit"?(node: IdentifierNode, parent?: ValueNodeParent): void; |
73 | | -} |
| 48 | +export interface JSONRuleVisitor |
| 49 | + extends |
| 50 | + RuleVisitor, |
| 51 | + CustomRuleVisitorWithExit<{ |
| 52 | + Document?(node: DocumentNode): void; |
| 53 | + Member?(node: MemberNode, parent?: ObjectNode): void; |
| 54 | + Element?(node: ElementNode, parent?: ArrayNode): void; |
| 55 | + Object?(node: ObjectNode, parent?: ValueNodeParent): void; |
| 56 | + Array?(node: ArrayNode, parent?: ValueNodeParent): void; |
| 57 | + String?(node: StringNode, parent?: ValueNodeParent): void; |
| 58 | + Null?(node: NullNode, parent?: ValueNodeParent): void; |
| 59 | + Number?(node: NumberNode, parent?: ValueNodeParent): void; |
| 60 | + Boolean?(node: BooleanNode, parent?: ValueNodeParent): void; |
| 61 | + NaN?(node: NaNNode, parent?: ValueNodeParent): void; |
| 62 | + Infinity?(node: InfinityNode, parent?: ValueNodeParent): void; |
| 63 | + Identifier?(node: IdentifierNode, parent?: ValueNodeParent): void; |
| 64 | + }> {} |
74 | 65 |
|
75 | 66 | export type JSONRuleDefinitionTypeOptions = CustomRuleTypeDefinitions; |
76 | 67 |
|
|
0 commit comments