File tree Expand file tree Collapse file tree 2 files changed +32
-10
lines changed Expand file tree Collapse file tree 2 files changed +32
-10
lines changed Original file line number Diff line number Diff line change @@ -2,17 +2,20 @@ import { NodeTypes } from "../constants";
2
2
import {
3
3
SimpleNode ,
4
4
CompositeNode ,
5
- PartNode ,
6
- TemplateNode ,
5
+ PartNodeBase ,
6
+ TemplateNodeBase ,
7
7
} from "./simple-node" ;
8
8
import { BaseNode } from "./base-node" ;
9
9
10
- export { PartNode , TemplateNode } ;
11
-
12
10
export interface DocumentNode extends BaseNode {
13
11
type : NodeTypes . Document ;
14
12
children : Array <
15
- TextNode | TagNode | ScriptTagNode | StyleTagNode | CommentNode
13
+ | TextNode
14
+ | TagNode
15
+ | ScriptTagNode
16
+ | StyleTagNode
17
+ | CommentNode
18
+ | DoctypeNode
16
19
> ;
17
20
}
18
21
@@ -128,6 +131,16 @@ export type DoctypeAttributeWrapperStartNode =
128
131
export type DoctypeAttributeWrapperEndNode =
129
132
SimpleNode < NodeTypes . DoctypeAttributeWrapperEnd > ;
130
133
134
+ export type OpenTemplateNode = SimpleNode < NodeTypes . OpenTemplate > ;
135
+
136
+ export type CloseTemplateNode = SimpleNode < NodeTypes . CloseTemplate > ;
137
+
138
+ export type TemplateNode = TemplateNodeBase <
139
+ Exclude < NodeTypes , NodeTypes . Template | NodeTypes . Part >
140
+ > ;
141
+
142
+ export type PartNode = PartNodeBase < Exclude < NodeTypes , NodeTypes . Part > > ;
143
+
131
144
export type AnyNode =
132
145
| DocumentNode
133
146
| TextNode
@@ -160,4 +173,8 @@ export type AnyNode =
160
173
| DoctypeAttributeNode
161
174
| DoctypeAttributeValueNode
162
175
| DoctypeAttributeWrapperStartNode
163
- | DoctypeAttributeWrapperEndNode ;
176
+ | DoctypeAttributeWrapperEndNode
177
+ | PartNode
178
+ | TemplateNode
179
+ | OpenTemplateNode
180
+ | CloseTemplateNode ;
Original file line number Diff line number Diff line change @@ -6,20 +6,25 @@ export interface SimpleNode<T extends NodeTypes> extends BaseNode {
6
6
value : string ;
7
7
}
8
8
9
- export interface PartNode < T extends NodeTypes > extends BaseNode {
9
+ export interface PartNodeBase < T extends Exclude < NodeTypes , NodeTypes . Part > >
10
+ extends BaseNode {
10
11
type : NodeTypes . Part ;
11
12
partOf : T ;
12
13
value : string ;
13
14
}
14
15
15
- export interface TemplateNode < T extends NodeTypes > extends BaseNode {
16
+ export interface TemplateNodeBase <
17
+ T extends Exclude < NodeTypes , NodeTypes . Template | NodeTypes . Part >
18
+ > extends BaseNode {
16
19
type : NodeTypes . Template ;
17
20
partOf : T ;
18
21
open ?: SimpleNode < NodeTypes . OpenTemplate > ;
19
22
close ?: SimpleNode < NodeTypes . CloseTemplate > ;
20
23
}
21
24
22
- export interface CompositeNode < T extends NodeTypes > extends BaseNode {
23
- parts : ( PartNode < T > | TemplateNode < T > ) [ ] ;
25
+ export interface CompositeNode <
26
+ T extends Exclude < NodeTypes , NodeTypes . Template | NodeTypes . Part >
27
+ > extends BaseNode {
28
+ parts : ( PartNodeBase < T > | TemplateNodeBase < T > ) [ ] ;
24
29
value : string ;
25
30
}
You can’t perform that action at this time.
0 commit comments