From bf38bf61a057bd03c50ae8c996eb42d5f933b551 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Mon, 3 Mar 2025 21:25:17 +0900 Subject: [PATCH 1/2] fix: incorrect types --- src/types/node.ts | 29 +++++++++++++++++++++++------ src/types/simple-node.ts | 13 +++++++++---- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/types/node.ts b/src/types/node.ts index 618034a..e55f88b 100644 --- a/src/types/node.ts +++ b/src/types/node.ts @@ -2,17 +2,20 @@ import { NodeTypes } from "../constants"; import { SimpleNode, CompositeNode, - PartNode, - TemplateNode, + PartNodeBase, + TemplateNodeBase, } from "./simple-node"; import { BaseNode } from "./base-node"; -export { PartNode, TemplateNode }; - export interface DocumentNode extends BaseNode { type: NodeTypes.Document; children: Array< - TextNode | TagNode | ScriptTagNode | StyleTagNode | CommentNode + | TextNode + | TagNode + | ScriptTagNode + | StyleTagNode + | CommentNode + | DoctypeNode >; } @@ -128,6 +131,16 @@ export type DoctypeAttributeWrapperStartNode = export type DoctypeAttributeWrapperEndNode = SimpleNode; +export type OpenTemplateNode = SimpleNode; + +export type CloseTemplateNode = SimpleNode; + +export type TemplateNode = TemplateNodeBase< + Exclude +>; + +export type PartNode = PartNodeBase>; + export type AnyNode = | DocumentNode | TextNode @@ -160,4 +173,8 @@ export type AnyNode = | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeAttributeWrapperStartNode - | DoctypeAttributeWrapperEndNode; + | DoctypeAttributeWrapperEndNode + | PartNode + | TemplateNode + | OpenTemplateNode + | CloseTemplateNode; diff --git a/src/types/simple-node.ts b/src/types/simple-node.ts index 3eb98ae..8ffdb35 100644 --- a/src/types/simple-node.ts +++ b/src/types/simple-node.ts @@ -6,20 +6,25 @@ export interface SimpleNode extends BaseNode { value: string; } -export interface PartNode extends BaseNode { +export interface PartNodeBase> + extends BaseNode { type: NodeTypes.Part; partOf: T; value: string; } -export interface TemplateNode extends BaseNode { +export interface TemplateNodeBase< + T extends Exclude, +> extends BaseNode { type: NodeTypes.Template; partOf: T; open?: SimpleNode; close?: SimpleNode; } -export interface CompositeNode extends BaseNode { - parts: (PartNode | TemplateNode)[]; +export interface CompositeNode< + T extends Exclude, +> extends BaseNode { + parts: (PartNodeBase | TemplateNodeBase)[]; value: string; } From f1e68cb65082ab7ed1586f60529e7c38b45fe8c3 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Mon, 3 Mar 2025 21:26:59 +0900 Subject: [PATCH 2/2] fix format --- src/types/simple-node.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types/simple-node.ts b/src/types/simple-node.ts index 8ffdb35..9a7fd8b 100644 --- a/src/types/simple-node.ts +++ b/src/types/simple-node.ts @@ -14,7 +14,7 @@ export interface PartNodeBase> } export interface TemplateNodeBase< - T extends Exclude, + T extends Exclude > extends BaseNode { type: NodeTypes.Template; partOf: T; @@ -23,7 +23,7 @@ export interface TemplateNodeBase< } export interface CompositeNode< - T extends Exclude, + T extends Exclude > extends BaseNode { parts: (PartNodeBase | TemplateNodeBase)[]; value: string;