diff --git a/packages/angular-html-parser/src/index.ts b/packages/angular-html-parser/src/index.ts index f8210308f180..1684624cdceb 100644 --- a/packages/angular-html-parser/src/index.ts +++ b/packages/angular-html-parser/src/index.ts @@ -97,3 +97,7 @@ export { ParseSourceFile, } from "../../compiler/src/parse_util.js"; export { getHtmlTagDefinition } from "../../compiler/src/ml_parser/html_tags.js"; + +// Types +export type { ParseTreeResult } from "../../compiler/src/ml_parser/parser.js"; +export type * as Ast from "../../compiler/src/ml_parser/ast.js"; diff --git a/packages/angular-html-parser/test/index_spec.ts b/packages/angular-html-parser/test/index_spec.ts index 42ddb4e07762..42c8750e2298 100644 --- a/packages/angular-html-parser/test/index_spec.ts +++ b/packages/angular-html-parser/test/index_spec.ts @@ -51,7 +51,7 @@ describe("options", () => { it("should be able to parse MJML", () => { const MJML_RAW_TAGS = new Set(["mj-style", "mj-raw"]); - const result = parse('

', { + const result = parse("

", { getTagContentType: (tagName) => MJML_RAW_TAGS.has(tagName) ? TagContentType.RAW_TEXT : undefined, }); @@ -68,15 +68,15 @@ describe("AST format", () => { const input = ` txt`; const ast = parse(input); expect(ast.rootNodes).toEqual([ - expect.objectContaining({ type: "docType" }), - expect.objectContaining({ type: "text" }), + expect.objectContaining({ kind: "docType" }), + expect.objectContaining({ kind: "text" }), expect.objectContaining({ - type: "element", - attrs: [expect.objectContaining({ type: "attribute" })], + kind: "element", + attrs: [expect.objectContaining({ kind: "attribute" })], }), - expect.objectContaining({ type: "text" }), - expect.objectContaining({ type: "comment" }), - expect.objectContaining({ type: "cdata" }), + expect.objectContaining({ kind: "text" }), + expect.objectContaining({ kind: "comment" }), + expect.objectContaining({ kind: "cdata" }), ]); }); @@ -86,23 +86,23 @@ describe("AST format", () => { expect(ast.rootNodes).toEqual([ expect.objectContaining({ name: "if", - type: "block", + kind: "block", parameters: [ expect.objectContaining({ - type: "blockParameter", + kind: "blockParameter", expression: "user.isHuman", }), ], children: [ - expect.objectContaining({ type: "text", value: " " }), + expect.objectContaining({ kind: "text", value: " " }), expect.objectContaining({ - type: "element", + kind: "element", name: "p", children: [ - expect.objectContaining({ type: "text", value: "Hello human" }), + expect.objectContaining({ kind: "text", value: "Hello human" }), ], }), - expect.objectContaining({ type: "text", value: " " }), + expect.objectContaining({ kind: "text", value: " " }), ], }), ]); @@ -114,7 +114,7 @@ describe("AST format", () => { expect(ast.rootNodes).toEqual([ expect.objectContaining({ name: "foo", - type: "letDeclaration", + kind: "letDeclaration", value: "'bar'", }), ]); @@ -129,11 +129,11 @@ describe("AST format", () => { expect(ast.rootNodes).toEqual([ expect.objectContaining({ name: "div", - type: "element", + kind: "element", directives: [ expect.objectContaining({ name: "Dir", - type: "directive", + kind: "directive", }), ], }), @@ -149,7 +149,7 @@ describe("AST format", () => { expect.objectContaining({ fullName: "MyComp", componentName: "MyComp", - type: "component", + kind: "component", }), ]); } @@ -160,7 +160,7 @@ describe("AST format", () => { expect.objectContaining({ fullName: "MyComp", componentName: "MyComp", - type: "component", + kind: "component", }), ]); } @@ -173,7 +173,7 @@ describe("AST format", () => { expect.objectContaining({ fullName: "MyComp:button", componentName: "MyComp", - type: "component", + kind: "component", }), ]); } @@ -186,7 +186,7 @@ describe("AST format", () => { expect.objectContaining({ fullName: "MyComp:svg:title", componentName: "MyComp", - type: "component", + kind: "component", }), ]); } diff --git a/packages/compiler/src/ml_parser/ast.ts b/packages/compiler/src/ml_parser/ast.ts index 8255f52d7894..04716acc4c9b 100644 --- a/packages/compiler/src/ml_parser/ast.ts +++ b/packages/compiler/src/ml_parser/ast.ts @@ -51,7 +51,7 @@ export class Text extends NodeWithI18n { override visit(visitor: Visitor, context: any): any { return visitor.visitText(this, context); } - readonly type = 'text'; + readonly kind = 'text'; } export class CDATA extends NodeWithI18n { @@ -66,7 +66,7 @@ export class CDATA extends NodeWithI18n { override visit(visitor: Visitor, context: any): any { return visitor.visitCdata(this, context); } - readonly type = 'cdata'; + readonly kind = 'cdata'; } export class Expansion extends NodeWithI18n { @@ -83,6 +83,7 @@ export class Expansion extends NodeWithI18n { override visit(visitor: Visitor, context: any): any { return visitor.visitExpansion(this, context); } + readonly kind = 'expansion'; } export class ExpansionCase implements BaseNode { @@ -98,7 +99,7 @@ export class ExpansionCase implements BaseNode { return visitor.visitExpansionCase(this, context); } - readonly type = 'expansionCase'; + readonly kind = 'expansionCase'; } export class Attribute extends NodeWithI18n { @@ -116,7 +117,7 @@ export class Attribute extends NodeWithI18n { override visit(visitor: Visitor, context: any): any { return visitor.visitAttribute(this, context); } - readonly type = 'attribute'; + readonly kind = 'attribute'; // angular-html-parser: backwards compatibility for Prettier get nameSpan() { return this.keySpan; @@ -142,7 +143,7 @@ export class Element extends NodeWithI18n { override visit(visitor: Visitor, context: any): any { return visitor.visitElement(this, context); } - readonly type = 'element'; + readonly kind = 'element'; } export class Comment implements BaseNode { @@ -153,7 +154,7 @@ export class Comment implements BaseNode { visit(visitor: Visitor, context: any): any { return visitor.visitComment(this, context); } - readonly type = 'comment'; + readonly kind = 'comment'; } export class DocType implements BaseNode { @@ -161,7 +162,7 @@ export class DocType implements BaseNode { visit(visitor: Visitor, context: any): any { return visitor.visitDocType(this, context); } - readonly type = 'docType'; + readonly kind = 'docType'; } export class Block extends NodeWithI18n { @@ -182,7 +183,7 @@ export class Block extends NodeWithI18n { return visitor.visitBlock(this, context); } - readonly type = 'block'; + readonly kind = 'block'; } export class Component extends NodeWithI18n { @@ -206,7 +207,7 @@ export class Component extends NodeWithI18n { return visitor.visitComponent(this, context); } - readonly type = 'component'; + readonly kind = 'component'; } export class Directive implements BaseNode { @@ -222,7 +223,7 @@ export class Directive implements BaseNode { return visitor.visitDirective(this, context); } - readonly type = 'directive'; + readonly kind = 'directive'; } export class BlockParameter implements BaseNode { @@ -235,7 +236,7 @@ export class BlockParameter implements BaseNode { return visitor.visitBlockParameter(this, context); } - readonly type = 'blockParameter'; + readonly kind = 'blockParameter'; readonly startSourceSpan: null = null; readonly endSourceSpan: null = null; } @@ -253,7 +254,7 @@ export class LetDeclaration implements BaseNode { return visitor.visitLetDeclaration(this, context); } - readonly type = 'letDeclaration'; + readonly kind = 'letDeclaration'; readonly startSourceSpan: null = null; readonly endSourceSpan: null = null; }