Skip to content

Commit 6716718

Browse files
authored
fix: incorrect types (#30)
* fix: incorrect types * fix format
1 parent eee6062 commit 6716718

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

src/types/node.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@ import { NodeTypes } from "../constants";
22
import {
33
SimpleNode,
44
CompositeNode,
5-
PartNode,
6-
TemplateNode,
5+
PartNodeBase,
6+
TemplateNodeBase,
77
} from "./simple-node";
88
import { BaseNode } from "./base-node";
99

10-
export { PartNode, TemplateNode };
11-
1210
export 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 =
128131
export 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+
131144
export 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;

src/types/simple-node.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)