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";
22import {
33 SimpleNode ,
44 CompositeNode ,
5- PartNode ,
6- TemplateNode ,
5+ PartNodeBase ,
6+ TemplateNodeBase ,
77} from "./simple-node" ;
88import { BaseNode } from "./base-node" ;
99
10- export { PartNode , TemplateNode } ;
11-
1210export interface DocumentNode extends BaseNode {
1311 type : NodeTypes . Document ;
1412 children : Array <
15- TextNode | TagNode | ScriptTagNode | StyleTagNode | CommentNode
13+ | TextNode
14+ | TagNode
15+ | ScriptTagNode
16+ | StyleTagNode
17+ | CommentNode
18+ | DoctypeNode
1619 > ;
1720}
1821
@@ -128,6 +131,16 @@ export type DoctypeAttributeWrapperStartNode =
128131export type DoctypeAttributeWrapperEndNode =
129132 SimpleNode < NodeTypes . DoctypeAttributeWrapperEnd > ;
130133
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+
131144export type AnyNode =
132145 | DocumentNode
133146 | TextNode
@@ -160,4 +173,8 @@ export type AnyNode =
160173 | DoctypeAttributeNode
161174 | DoctypeAttributeValueNode
162175 | 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 {
66 value : string ;
77}
88
9- export interface PartNode < T extends NodeTypes > extends BaseNode {
9+ export interface PartNodeBase < T extends Exclude < NodeTypes , NodeTypes . Part > >
10+ extends BaseNode {
1011 type : NodeTypes . Part ;
1112 partOf : T ;
1213 value : string ;
1314}
1415
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 {
1619 type : NodeTypes . Template ;
1720 partOf : T ;
1821 open ?: SimpleNode < NodeTypes . OpenTemplate > ;
1922 close ?: SimpleNode < NodeTypes . CloseTemplate > ;
2023}
2124
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 > ) [ ] ;
2429 value : string ;
2530}
You can’t perform that action at this time.
0 commit comments